[WIN32]Fix path problems prevneting test-backend-dbi from working.

pull/2119/head
John Ralls 9 months ago
parent 54664359dc
commit 4c81bc3ea3

@ -39,9 +39,24 @@ if (WITH_SQL)
gnc_add_test(test-backend-dbi "${test_dbi_backend_SOURCES}"
BACKEND_DBI_TEST_INCLUDE_DIRS BACKEND_DBI_TEST_LIBS
)
if (DEFINED ENV{TMPDIR})
set(temp_dir "$ENV{TMPDIR}")
elseif (DEFINED ENV{TMP})
set(temp_dir "$ENV{TMP}")
elseif (DEFINED ENV{TEMP})
set(temp_dir "$ENV{TEMP}")
else()
set(temp_dir "${CMAKE_TOP_BUILD_DIR}/tmp")
file(MAKE_DIRECTORY ${temp_dir})
endif()
if (MINGW64)
string(REGEX REPLACE "\\\\" "/" temp_dir ${temp_dir})
endif()
target_compile_definitions(test-backend-dbi PRIVATE
DBI_TEST_XML_FILENAME=\"${CMAKE_CURRENT_SOURCE_DIR}/test-dbi.xml\"
TEMPDIR=\"${temp_dir}\"
G_LOG_DOMAIN=\"gnc.backend.dbi\"
)
endif()

@ -83,6 +83,17 @@ typedef struct
GSList* hdlrs;
} Fixture;
static char*
normalize_path(char* path)
{
g_return_val_if_fail(path, nullptr);
auto rv = gnc_uri_normalize_uri (path, FALSE);
g_free (path);
return rv;
}
static void
setup (Fixture* fixture, gconstpointer pData)
{
@ -94,14 +105,17 @@ setup (Fixture* fixture, gconstpointer pData)
* prevents creating the lock file. Force the session to get
* around that.
*/
qof_session_begin (fixture->session, DBI_TEST_XML_FILENAME,
qof_session_begin (fixture->session,
normalize_path (g_strdup (DBI_TEST_XML_FILENAME)),
SESSION_BREAK_LOCK);
g_assert_cmpint (qof_session_get_error (fixture->session), == ,
ERR_BACKEND_NO_ERR);
qof_session_load (fixture->session, NULL);
if (g_strcmp0 (url, "sqlite3") == 0)
fixture->filename = g_strdup_printf ("/tmp/test-sqlite-%d", getpid ());
fixture->filename =
normalize_path (g_strdup_printf (TEMPDIR "/test-sqlite-%d",
getpid ()));
else
fixture->filename = NULL;
}
@ -158,7 +172,9 @@ setup_memory (Fixture* fixture, gconstpointer pData)
fixture->session = session;
if (g_strcmp0 (url, "sqlite3") == 0)
fixture->filename = g_strdup_printf ("/tmp/test-sqlite-%d", getpid ());
fixture->filename =
normalize_path (g_strdup_printf (TEMPDIR "/test-sqlite-%d",
getpid ()));
else
fixture->filename = NULL;
}
@ -237,7 +253,9 @@ setup_business (Fixture* fixture, gconstpointer pData)
fixture->session = session;
if (g_strcmp0 (url, "sqlite3") == 0)
fixture->filename = g_strdup_printf ("/tmp/test-sqlite-%d", getpid ());
fixture->filename =
normalize_path (g_strdup_printf (TEMPDIR "/test-sqlite-%d",
getpid ()));
else
fixture->filename = NULL;
}

Loading…
Cancel
Save