summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <smcv@collabora.com>2022-09-12 13:24:28 +0100
committerSimon McVittie <smcv@collabora.com>2022-10-05 10:24:24 +0100
commit37e01259435a28b11a087867ea199cd09f0a5cff (patch)
tree0bd90c99191cab543b70036ea7ddb4584de3910b
parentd633016f7340f83142f19f4bcac08c57e1f2fd2f (diff)
downloaddbus-37e01259435a28b11a087867ea199cd09f0a5cff.tar.gz
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>
-rw-r--r--cmake/modules/Macros.cmake2
-rw-r--r--test/Makefile.am2
-rw-r--r--test/meson.build2
3 files changed, 6 insertions, 0 deletions
diff --git a/cmake/modules/Macros.cmake b/cmake/modules/Macros.cmake
index d4c26460..044e2a70 100644
--- a/cmake/modules/Macros.cmake
+++ b/cmake/modules/Macros.cmake
@@ -65,6 +65,8 @@ macro(add_unit_test _name _target)
list(APPEND _env "DBUS_TEST_EXEC=${DBUS_TEST_EXEC}")
list(APPEND _env "DBUS_TEST_HOMEDIR=${DBUS_TEST_HOMEDIR}")
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")
list(APPEND _env ${__ENV})
set_tests_properties(${_name} PROPERTIES ENVIRONMENT "${_env}")
endmacro()
diff --git a/test/Makefile.am b/test/Makefile.am
index 11642211..659aead3 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -439,6 +439,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)
diff --git a/test/meson.build b/test/meson.build
index 6de67035..2a3c346d 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -43,12 +43,14 @@ test_env = environment()
test_env.set('DBUS_TOP_SRCDIR', meson.project_source_root())
test_env.set('DBUS_TEST_SRCDIR', meson.current_source_dir())
+test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
test_env.set('DBUS_TOP_BUILDDIR', meson.project_build_root())
test_env.set('DBUS_TEST_HOMEDIR', meson.project_build_root() / 'dbus')
test_env.set('HOME', meson.project_build_root() / 'dbus')
# Tests in bus/config-parser.c rely on this specific value
test_env.set('DBUS_TEST_BUILDDIR', meson.current_build_dir())
+test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
test_env.set('DBUS_TEST_EXEC', meson.current_build_dir())
test_env.set('DBUS_TEST_DATA', meson.current_build_dir() / 'data')