[tracker: 1/2] tests: compile gschemas in the build dir



commit c33c080c20dae1e609821bc60e6d3e0aefe14606
Author: Andrea Azzarone <andrea azzarone canonical com>
Date:   Fri Dec 14 11:51:44 2018 +0000

    tests: compile gschemas in the build dir
    
    Allow running tests without the need to install the gsettings schemas.
    This commit moves all the gschemas in the data directory and compiles
    them in the build directory. Tests that require gschemas need to be
    launched with the proper GSETTINGS_SCHEMA_DIR env variable.
    
    Fixes: https://gitlab.gnome.org/GNOME/tracker/issues/60

 data/meson.build                                   | 36 ++++++++++++++++++++++
 .../org.freedesktop.Tracker.DB.gschema.xml         |  0
 .../org.freedesktop.Tracker.FTS.gschema.xml        |  0
 .../org.freedesktop.Tracker.Store.gschema.xml      |  0
 .../org.freedesktop.Tracker.gschema.xml            |  0
 meson.build                                        |  1 +
 src/libtracker-data/meson.build                    |  3 --
 src/libtracker-fts/meson.build                     |  3 --
 src/tracker-store/meson.build                      | 20 ------------
 tests/functional-tests/meson.build                 |  1 +
 tests/libtracker-data/meson.build                  |  1 +
 tests/libtracker-fts/meson.build                   |  6 +++-
 tests/libtracker-miner/meson.build                 |  1 +
 tests/libtracker-sparql/meson.build                |  7 ++++-
 14 files changed, 51 insertions(+), 28 deletions(-)
---
diff --git a/data/meson.build b/data/meson.build
new file mode 100644
index 000000000..0f10dd6bd
--- /dev/null
+++ b/data/meson.build
@@ -0,0 +1,36 @@
+schemas = [
+  'org.freedesktop.Tracker.DB.gschema.xml',
+  'org.freedesktop.Tracker.FTS.gschema.xml',
+  'org.freedesktop.Tracker.gschema.xml',
+  'org.freedesktop.Tracker.Store.gschema.xml'
+]
+
+foreach schema : schemas
+  schemas = configure_file(
+    input: schema,
+    output: schema,
+    copy: true,
+    install: true,
+    install_dir: gsettings_schema_dir)
+endforeach
+
+tracker_store_settings_enums = custom_target('tracker-store-settings-enums',
+    input: '../src/libtracker-common/tracker-enums.h',
+    output: 'org.freedesktop.Tracker.enums.xml',
+    command: [glib_mkenums,
+              '--comments', '<!-- @comment@ -->',
+              '--fhead', '<schemalist>',
+              '--vhead', '<@type@ id="org.freedesktop.Tracker.@EnumName@">',
+              '--vprod', '    <value nick="@valuenick@" value="@valuenum@"/>',
+              '--vtail', '  </@type@>',
+              '--ftail', '</schemalist>', '@INPUT@'],
+    capture: true,
+    install: true,
+    install_dir: gsettings_schema_dir)
+
+# for unit tests
+custom_target('compile-schemas',
+  output: 'gschemas.compiled',
+  command: [find_program('glib-compile-schemas'), meson.current_build_dir()],
+  build_by_default: true,
+  depends: tracker_store_settings_enums)
diff --git a/src/libtracker-data/org.freedesktop.Tracker.DB.gschema.xml 
b/data/org.freedesktop.Tracker.DB.gschema.xml
similarity index 100%
rename from src/libtracker-data/org.freedesktop.Tracker.DB.gschema.xml
rename to data/org.freedesktop.Tracker.DB.gschema.xml
diff --git a/src/libtracker-fts/org.freedesktop.Tracker.FTS.gschema.xml 
b/data/org.freedesktop.Tracker.FTS.gschema.xml
similarity index 100%
rename from src/libtracker-fts/org.freedesktop.Tracker.FTS.gschema.xml
rename to data/org.freedesktop.Tracker.FTS.gschema.xml
diff --git a/src/tracker-store/org.freedesktop.Tracker.Store.gschema.xml 
b/data/org.freedesktop.Tracker.Store.gschema.xml
similarity index 100%
rename from src/tracker-store/org.freedesktop.Tracker.Store.gschema.xml
rename to data/org.freedesktop.Tracker.Store.gschema.xml
diff --git a/src/tracker-store/org.freedesktop.Tracker.gschema.xml b/data/org.freedesktop.Tracker.gschema.xml
similarity index 100%
rename from src/tracker-store/org.freedesktop.Tracker.gschema.xml
rename to data/org.freedesktop.Tracker.gschema.xml
diff --git a/meson.build b/meson.build
index e71807016..f2cde2268 100644
--- a/meson.build
+++ b/meson.build
@@ -327,6 +327,7 @@ typelib_dir = gobject_introspection.get_pkgconfig_variable('typelibdir',
                                                            define_variable:  [ 'libdir', libdir ])
 
 subdir('src')
+subdir('data')
 
 if get_option('docs')
   subdir('docs')
diff --git a/src/libtracker-data/meson.build b/src/libtracker-data/meson.build
index 18f1a481e..1363228cc 100644
--- a/src/libtracker-data/meson.build
+++ b/src/libtracker-data/meson.build
@@ -85,6 +85,3 @@ tracker_data_dep = declare_dependency(
     include_directories: include_directories('.'),
     sources: enums[1],
 )
-
-install_data('org.freedesktop.Tracker.DB.gschema.xml',
-    install_dir: gsettings_schema_dir)
diff --git a/src/libtracker-fts/meson.build b/src/libtracker-fts/meson.build
index 1392699f8..5e1122243 100644
--- a/src/libtracker-fts/meson.build
+++ b/src/libtracker-fts/meson.build
@@ -21,6 +21,3 @@ tracker_fts_dep = declare_dependency(
     link_whole: libtracker_fts,
     dependencies: libtracker_fts_dependencies
 )
-
-install_data('org.freedesktop.Tracker.FTS.gschema.xml',
-    install_dir: gsettings_schema_dir)
diff --git a/src/tracker-store/meson.build b/src/tracker-store/meson.build
index 057dbb254..857070c55 100644
--- a/src/tracker-store/meson.build
+++ b/src/tracker-store/meson.build
@@ -63,25 +63,5 @@ if install_systemd_user_services
       install_dir: systemd_user_services_dir)
 endif
 
-install_data('org.freedesktop.Tracker.Store.gschema.xml',
-    install_dir: gsettings_schema_dir)
-
-install_data('org.freedesktop.Tracker.gschema.xml',
-    install_dir: gsettings_schema_dir)
-
-custom_target('tracker-store-settings-enums',
-    input: '../libtracker-common/tracker-enums.h',
-    output: 'org.freedesktop.Tracker.enums.xml',
-    command: [glib_mkenums,
-              '--comments', '<!-- @comment@ -->',
-              '--fhead', '<schemalist>',
-              '--vhead', '<@type@ id="org.freedesktop.Tracker.@EnumName@">',
-              '--vprod', '    <value nick="@valuenick@" value="@valuenum@"/>',
-              '--vtail', '  </@type@>',
-              '--ftail', '</schemalist>', '@INPUT@'],
-    capture: true,
-    install: true,
-    install_dir: gsettings_schema_dir)
-
 install_data('default.rule',
     install_dir: join_paths(get_option('datadir'), 'tracker', 'domain-ontologies'))
diff --git a/tests/functional-tests/meson.build b/tests/functional-tests/meson.build
index c08c87507..e5e1d7a6b 100644
--- a/tests/functional-tests/meson.build
+++ b/tests/functional-tests/meson.build
@@ -37,6 +37,7 @@ dconf_profile_full_path = join_paths(meson.current_source_dir(), 'trackertest')
 
 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('TRACKER_DB_ONTOLOGIES_DIR', tracker_uninstalled_nepomuk_ontologies_dir)
 test_env.set('TRACKER_FUNCTIONAL_TEST_BUILD_DIR', build_root)
diff --git a/tests/libtracker-data/meson.build b/tests/libtracker-data/meson.build
index 6ede0da47..7e87c09c9 100644
--- a/tests/libtracker-data/meson.build
+++ b/tests/libtracker-data/meson.build
@@ -13,6 +13,7 @@ libtracker_data_slow_tests = [
 
 libtracker_data_test_environment = environment()
 libtracker_data_test_environment.set('TRACKER_LANGUAGE_STOP_WORDS_DIR', 
'@0@/src/libtracker-common/stop-words'.format(source_root))
+libtracker_data_test_environment.set('GSETTINGS_SCHEMA_DIR', join_paths(meson.build_root(), 'data'))
 
 libtracker_data_test_deps = [tracker_common_dep, tracker_data_dep, tracker_sparql_dep]
 
diff --git a/tests/libtracker-fts/meson.build b/tests/libtracker-fts/meson.build
index 6d83f06cd..69f141cf9 100644
--- a/tests/libtracker-fts/meson.build
+++ b/tests/libtracker-fts/meson.build
@@ -1,7 +1,11 @@
+libtracker_fts_test_environment = environment()
+libtracker_fts_test_environment.set('GSETTINGS_SCHEMA_DIR', join_paths(meson.build_root(), 'data'))
+
 fts_test = executable('tracker-fts-test',
   'tracker-fts-test.c',
   dependencies: [tracker_common_dep, tracker_sparql_dep, tracker_data_dep, tracker_testcommon_dep],
   c_args: test_c_args
 )
 
-test('fts', fts_test)
+test('fts', fts_test,
+  env: libtracker_fts_test_environment)
diff --git a/tests/libtracker-miner/meson.build b/tests/libtracker-miner/meson.build
index d5f21136b..c0b055c6b 100644
--- a/tests/libtracker-miner/meson.build
+++ b/tests/libtracker-miner/meson.build
@@ -24,6 +24,7 @@ libtracker_miner_test_c_args = [
 
 libtracker_miner_test_environment = environment()
 libtracker_miner_test_environment.set('TRACKER_LANGUAGE_STOP_WORDS_DIR', 
'@0@/src/libtracker-common/stop-words'.format(source_root))
+libtracker_miner_test_environment.set('GSETTINGS_SCHEMA_DIR', join_paths(meson.build_root(), 'data'))
 
 libtracker_miner_test_deps = [tracker_common_dep, tracker_miner_dep, tracker_sparql_dep]
 
diff --git a/tests/libtracker-sparql/meson.build b/tests/libtracker-sparql/meson.build
index aec51fdc7..548cead7f 100644
--- a/tests/libtracker-sparql/meson.build
+++ b/tests/libtracker-sparql/meson.build
@@ -13,6 +13,10 @@ libtracker_sparql_test_deps = [
     tracker_common_dep, tracker_sparql_dep
 ]
 
+libtracker_sparql_test_environment = environment()
+libtracker_sparql_test_environment.set('TRACKER_LANGUAGE_STOP_WORDS_DIR', 
'@0@/src/libtracker-common/stop-words'.format(source_root))
+libtracker_sparql_test_environment.set('GSETTINGS_SCHEMA_DIR', join_paths(meson.build_root(), 'data'))
+
 foreach base_name: libtracker_sparql_tests
     source = 'tracker-@0@-test.c'.format(base_name)
     binary_name = 'tracker-@0@-test'.format(base_name)
@@ -22,5 +26,6 @@ foreach base_name: libtracker_sparql_tests
       dependencies: libtracker_sparql_test_deps,
       c_args: libtracker_sparql_test_c_args)
 
-    test(test_name, binary)
+    test(test_name, binary,
+      env: libtracker_sparql_test_environment)
 endforeach


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]