test: Export G_TEST_BUILDDIR, G_TEST_SRCDIR

These environment variables are used by GLib's g_test_build_filename()
and related convenience functions, which make it easier for unit tests
to find data files in a way that works for both build-time tests and
"as-installed" tests. During "as-installed" testing, both variables
will normally be unset, and GLib uses the directory containing the
executable. In most cases that results in the right thing happening, and
this will also be true for dbus, since we install the test executables
in ${libexecdir}/installed-tests, helper executables in the same place,
and test data in ${libexecdir}/installed-tests/data.

Signed-off-by: Simon McVittie <smcv@collabora.com>
(cherry picked from commit 37e0125943)
[backport to 1.14.x: discard Meson build system updates]
(cherry picked from commit bbf5ef008a)
[backport to 1.12.x: resolve conflicts in CMake build system]
This commit is contained in:
Simon McVittie 2022-09-12 13:24:28 +01:00
parent b9f914fa27
commit 9f675abd3f
2 changed files with 4 additions and 0 deletions

View file

@ -54,6 +54,8 @@ macro(add_test_executable _target _source)
list(APPEND _env "DBUS_TEST_EXEC=${PREFIX}${DBUS_TEST_EXEC}")
list(APPEND _env "DBUS_TEST_HOMEDIR=${PREFIX}${CMAKE_BINARY_DIR}/dbus")
list(APPEND _env "DBUS_TEST_UNINSTALLED=1")
list(APPEND _env "G_TEST_BUILDDIR=${Z_DRIVE_IF_WINE}${PROJECT_BINARY_DIR}/test")
list(APPEND _env "G_TEST_SRCDIR=${Z_DRIVE_IF_WINE}${PROJECT_SOURCE_DIR}/test")
set_tests_properties(${_target} PROPERTIES ENVIRONMENT "${_env}")
endmacro(add_test_executable)

View file

@ -273,6 +273,8 @@ AM_TESTS_ENVIRONMENT = \
export DBUS_TEST_EXEC=@abs_top_builddir@/test; \
export DBUS_TEST_HOMEDIR=@abs_top_builddir@/dbus; \
export DBUS_TEST_UNINSTALLED=1; \
export G_TEST_BUILDDIR=@abs_builddir@; \
export G_TEST_SRCDIR=@abs_srcdir@; \
export HOME=@abs_top_builddir@/dbus; \
$(NULL)