[tracker-miners] functional-tests: Don't depend on GSettings schemas from the host
- From: Sam Thursfield <sthursfield src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker-miners] functional-tests: Don't depend on GSettings schemas from the host
- Date: Wed, 1 May 2019 10:36:06 +0000 (UTC)
commit ad6640497c9d21d223567fb374028acdbb35d160
Author: Sam Thursfield <sam afuera me uk>
Date: Wed May 1 12:03:10 2019 +0200
functional-tests: Don't depend on GSettings schemas from the host
If tracker-miners is configured with the `-Dtracker_core=subproject` option,
it should use GSettings schemas from the ./subprojects/tracker build
tree. We weren't doing that, which meant that if you ran `dnf remove
tracker` on your test image and then ran the test, you would see
failures like this in the functional-tests:
(process:8450): GLib-GIO-ERROR **: 09:43:34.625: Settings schema 'org.freedesktop.Tracker.Store' is
not installed
This fix is part of https://gitlab.gnome.org/GNOME/tracker/issues/24
data/meson.build | 27 ++++++++++++++++++++++++++-
meson.build | 3 +++
tests/functional-tests/meson.build | 2 +-
3 files changed, 30 insertions(+), 2 deletions(-)
---
diff --git a/data/meson.build b/data/meson.build
index 246c3fa25..9b4cd0aa4 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -27,9 +27,34 @@ tracker_miners_settings_enums = custom_target('tracker-miners-common-settings-en
install: true,
install_dir: gsettings_schema_dir)
-# for unit tests
+
+# Compile schemas locally so that the functional-tests can use them without
+# them being installed into /usr.
+#
+if get_option('tracker_core') == 'subproject'
+ # Here we do an ugly dance to place GSettings schemas from tracker
+ # and tracker-miners into the same directory. The `glib-compile-schemas`
+ # tool cannot combine schemas from multiple directories, and the
+ # GSETTINGS_SCHEMA_DIR environment variable cannot point to multiple
+ # directories, so this appears to be our only option.
+
+ foreach schema : tracker_gsettings_schemas
+ target = configure_file(
+ input: schema,
+ output: '@PLAINNAME@',
+ copy: true)
+ endforeach
+
+ target = configure_file(
+ input: tracker_store_settings_enums.full_path(),
+ output: '@PLAINNAME@',
+ copy: true)
+endif
+
custom_target('tracker-miners-compile-schemas',
output: 'gschemas.compiled',
command: [find_program('glib-compile-schemas'), meson.current_build_dir()],
build_by_default: true,
depends: tracker_miners_settings_enums)
+
+tracker_miners_uninstalled_gsettings_schema_dir = meson.current_build_dir()
diff --git a/meson.build b/meson.build
index 75134dc70..ac3cfd96c 100644
--- a/meson.build
+++ b/meson.build
@@ -55,6 +55,9 @@ else
tracker_uninstalled_domain_rule = tracker_subproject.get_variable('tracker_uninstalled_domain_rule')
tracker_uninstalled_nepomuk_ontologies_dir =
tracker_subproject.get_variable('tracker_uninstalled_nepomuk_ontologies_dir')
tracker_uninstalled_stop_words_dir = tracker_subproject.get_variable('tracker_uninstalled_stop_words_dir')
+
+ tracker_gsettings_schemas = tracker_subproject.get_variable('tracker_gsettings_schemas')
+ tracker_store_settings_enums = tracker_subproject.get_variable('tracker_store_settings_enums')
endif
avcodec = dependency('libavcodec', version: '>= 0.8.4', required: false)
diff --git a/tests/functional-tests/meson.build b/tests/functional-tests/meson.build
index 355d4bd66..9e458552e 100644
--- a/tests/functional-tests/meson.build
+++ b/tests/functional-tests/meson.build
@@ -69,7 +69,7 @@ tracker_extractors_dir = join_paths(meson.current_build_dir(), '..', '..', 'src'
test_env = environment()
test_env.set('DCONF_PROFILE', dconf_profile_full_path)
-test_env.set('GSETTINGS_SCHEMA_DIR', join_paths(meson.build_root(), 'data'))
+test_env.set('GSETTINGS_SCHEMA_DIR', tracker_miners_uninstalled_gsettings_schema_dir)
test_env.set('TRACKER_DB_ONTOLOGIES_DIR', tracker_uninstalled_nepomuk_ontologies_dir)
test_env.set('TRACKER_EXTRACTORS_DIR', tracker_extractors_dir)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]