[tracker-miners/sam/meson-subproject: 4/6] Allow running the functional tests without installing them
- From: Sam Thursfield <sthursfield src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker-miners/sam/meson-subproject: 4/6] Allow running the functional tests without installing them
- Date: Thu, 2 Nov 2017 11:33:29 +0000 (UTC)
commit d112ca8f3818465496323c823cbdee81c16d6598
Author: Sam Thursfield <sam thursfield codethink co uk>
Date: Wed Nov 1 12:13:54 2017 +0000
Allow running the functional tests without installing them
This is needed so that `meson test` passes, which in turn is needed if
we want to use `meson dist` to make releases.
This involves some hackery of course, but it seems to work.
tests/functional-tests/01-insertion.py | 2 +-
tests/functional-tests/02-sparql-bugs.py | 2 +-
tests/functional-tests/04-group-concat.py | 2 +-
tests/functional-tests/05-coalesce.py | 2 +-
tests/functional-tests/06-distance.py | 2 +-
tests/functional-tests/07-graph.py | 2 +-
tests/functional-tests/08-unique-insertions.py | 2 +-
tests/functional-tests/09-concurrent-query.py | 2 +-
tests/functional-tests/12-transactions.py | 2 +-
tests/functional-tests/13-threaded-store.py | 2 +-
tests/functional-tests/14-signals.py | 2 +-
tests/functional-tests/15-statistics.py | 2 +-
tests/functional-tests/16-collation.py | 2 +-
tests/functional-tests/17-ontology-changes.py | 2 +-
tests/functional-tests/200-backup-restore.py | 2 +-
.../functional-tests/301-miner-resource-removal.py | 2 +-
tests/functional-tests/400-extractor-metadata.py | 2 +-
tests/functional-tests/601-applications-sync.py | 2 +-
tests/functional-tests/common/utils/.gitignore | 1 -
.../common/utils/applicationstest.py | 2 +-
.../common/utils/configuration.py.in | 95 --------------------
tests/functional-tests/common/utils/extractor.py | 2 +-
tests/functional-tests/common/utils/helpers.py | 19 ++++-
tests/functional-tests/common/utils/minertest.py | 2 +-
tests/functional-tests/common/utils/storetest.py | 2 +-
tests/functional-tests/common/utils/system.py | 3 +-
.../functional-tests/common/utils/writebacktest.py | 2 +-
tests/functional-tests/configuration/meson.build | 5 +
tests/functional-tests/meson.build | 13 +++
29 files changed, 60 insertions(+), 122 deletions(-)
---
diff --git a/tests/functional-tests/01-insertion.py b/tests/functional-tests/01-insertion.py
index dba85a4..e51f7dd 100755
--- a/tests/functional-tests/01-insertion.py
+++ b/tests/functional-tests/01-insertion.py
@@ -29,7 +29,7 @@ import random
import string
import datetime
-from common.utils import configuration as cfg
+import configuration as cfg
import unittest2 as ut
#import unittest as ut
from common.utils.storetest import CommonTrackerStoreTest as CommonTrackerStoreTest
diff --git a/tests/functional-tests/02-sparql-bugs.py b/tests/functional-tests/02-sparql-bugs.py
index f4f541e..7e0ea85 100755
--- a/tests/functional-tests/02-sparql-bugs.py
+++ b/tests/functional-tests/02-sparql-bugs.py
@@ -31,7 +31,7 @@ import random
import string
import datetime
-from common.utils import configuration as cfg
+import configuration as cfg
import unittest2 as ut
#import unittest as ut
from common.utils.storetest import CommonTrackerStoreTest as CommonTrackerStoreTest
diff --git a/tests/functional-tests/04-group-concat.py b/tests/functional-tests/04-group-concat.py
index 5d9bcd1..5eb9414 100755
--- a/tests/functional-tests/04-group-concat.py
+++ b/tests/functional-tests/04-group-concat.py
@@ -23,7 +23,7 @@ Test the GROUP_CONCAT function in Sparql. Only requires the store.
import unittest
import random
-from common.utils import configuration as cfg
+import configuration as cfg
import unittest2 as ut
#import unittest as ut
from common.utils.storetest import CommonTrackerStoreTest as CommonTrackerStoreTest
diff --git a/tests/functional-tests/05-coalesce.py b/tests/functional-tests/05-coalesce.py
index 6463cbd..60187a7 100755
--- a/tests/functional-tests/05-coalesce.py
+++ b/tests/functional-tests/05-coalesce.py
@@ -24,7 +24,7 @@ import unittest
import random
-from common.utils import configuration as cfg
+import configuration as cfg
import unittest2 as ut
#import unittest as ut
from common.utils.storetest import CommonTrackerStoreTest as CommonTrackerStoreTest
diff --git a/tests/functional-tests/06-distance.py b/tests/functional-tests/06-distance.py
index 04239fb..503cb73 100755
--- a/tests/functional-tests/06-distance.py
+++ b/tests/functional-tests/06-distance.py
@@ -23,7 +23,7 @@ Test the distance-calculation functions in Sparql. Only requires the Store
import unittest
import random
-from common.utils import configuration as cfg
+import configuration as cfg
import unittest2 as ut
#import unittest as ut
from common.utils.storetest import CommonTrackerStoreTest as CommonTrackerStoreTest
diff --git a/tests/functional-tests/07-graph.py b/tests/functional-tests/07-graph.py
index 3999977..a572309 100755
--- a/tests/functional-tests/07-graph.py
+++ b/tests/functional-tests/07-graph.py
@@ -23,7 +23,7 @@ Tests graphs in Sparql. Only requires the store.
import unittest
import random
-from common.utils import configuration as cfg
+import configuration as cfg
import unittest2 as ut
#import unittest as ut
from common.utils.storetest import CommonTrackerStoreTest as CommonTrackerStoreTest
diff --git a/tests/functional-tests/08-unique-insertions.py b/tests/functional-tests/08-unique-insertions.py
index 04909a4..ba84f56 100755
--- a/tests/functional-tests/08-unique-insertions.py
+++ b/tests/functional-tests/08-unique-insertions.py
@@ -23,7 +23,7 @@ Replicate the behaviour of the miner inserting information in the store.
import unittest
import random
-from common.utils import configuration as cfg
+import configuration as cfg
import unittest2 as ut
#import unittest as ut
from common.utils.storetest import CommonTrackerStoreTest as CommonTrackerStoreTest
diff --git a/tests/functional-tests/09-concurrent-query.py b/tests/functional-tests/09-concurrent-query.py
index 53352bf..1520cc3 100755
--- a/tests/functional-tests/09-concurrent-query.py
+++ b/tests/functional-tests/09-concurrent-query.py
@@ -28,7 +28,7 @@ import commands
import signal
from gi.repository import GObject
-from common.utils import configuration as cfg
+import configuration as cfg
import unittest2 as ut
#import unittest as ut
from common.utils.storetest import CommonTrackerStoreTest as CommonTrackerStoreTest
diff --git a/tests/functional-tests/12-transactions.py b/tests/functional-tests/12-transactions.py
index a3c19f4..82b562c 100755
--- a/tests/functional-tests/12-transactions.py
+++ b/tests/functional-tests/12-transactions.py
@@ -22,7 +22,7 @@ Make sure that when COMMIT returns, the data is in the DB
"""
import time
-from common.utils import configuration as cfg
+import configuration as cfg
from common.utils.helpers import StoreHelper as StoreHelper
import unittest2 as ut
#import unittest as ut
diff --git a/tests/functional-tests/13-threaded-store.py b/tests/functional-tests/13-threaded-store.py
index 32c2c44..61d4674 100755
--- a/tests/functional-tests/13-threaded-store.py
+++ b/tests/functional-tests/13-threaded-store.py
@@ -27,7 +27,7 @@ from gi.repository import GLib
import time
from dbus.mainloop.glib import DBusGMainLoop
-from common.utils import configuration as cfg
+import configuration as cfg
import unittest2 as ut
#import unittest as ut
from common.utils.storetest import CommonTrackerStoreTest as CommonTrackerStoreTest
diff --git a/tests/functional-tests/14-signals.py b/tests/functional-tests/14-signals.py
index 6524f7b..ec68142 100755
--- a/tests/functional-tests/14-signals.py
+++ b/tests/functional-tests/14-signals.py
@@ -25,7 +25,7 @@ are tested)
import unittest2 as ut
from common.utils.storetest import CommonTrackerStoreTest as CommonTrackerStoreTest
-from common.utils import configuration as cfg
+import configuration as cfg
from gi.repository import Gio
from gi.repository import GObject
diff --git a/tests/functional-tests/15-statistics.py b/tests/functional-tests/15-statistics.py
index 89efc3d..7008df3 100755
--- a/tests/functional-tests/15-statistics.py
+++ b/tests/functional-tests/15-statistics.py
@@ -24,7 +24,7 @@ are updated when different operations are executed on the store
"""
import time
-from common.utils import configuration as cfg
+import configuration as cfg
import unittest2 as ut
#import unittest as ut
from common.utils.storetest import CommonTrackerStoreTest as CommonTrackerStoreTest
diff --git a/tests/functional-tests/16-collation.py b/tests/functional-tests/16-collation.py
index 1d2dff2..e78c7cf 100755
--- a/tests/functional-tests/16-collation.py
+++ b/tests/functional-tests/16-collation.py
@@ -26,7 +26,7 @@ import time
import random
import locale
-from common.utils import configuration as cfg
+import configuration as cfg
import unittest2 as ut
#import unittest as ut
from common.utils.storetest import CommonTrackerStoreTest as CommonTrackerStoreTest
diff --git a/tests/functional-tests/17-ontology-changes.py b/tests/functional-tests/17-ontology-changes.py
index 8665a5d..8ef26b6 100755
--- a/tests/functional-tests/17-ontology-changes.py
+++ b/tests/functional-tests/17-ontology-changes.py
@@ -28,7 +28,7 @@ from gi.repository import GLib
import time
import os
-from common.utils import configuration as cfg
+import configuration as cfg
import unittest2 as ut
#import unittest as ut
from common.utils.system import TrackerSystemAbstraction as TrackerSystemAbstraction
diff --git a/tests/functional-tests/200-backup-restore.py b/tests/functional-tests/200-backup-restore.py
index cbbb06e..6922ea6 100755
--- a/tests/functional-tests/200-backup-restore.py
+++ b/tests/functional-tests/200-backup-restore.py
@@ -23,7 +23,7 @@ import os
from common.utils.system import TrackerSystemAbstraction
from common.utils.helpers import StoreHelper
-from common.utils import configuration as cfg
+import configuration as cfg
from common.utils.storetest import CommonTrackerStoreTest as CommonTrackerStoreTest
from common.utils.expectedFailure import expectedFailureBug, expectedFailureJournal
import unittest2 as ut
diff --git a/tests/functional-tests/301-miner-resource-removal.py
b/tests/functional-tests/301-miner-resource-removal.py
index 9c2acbc..4fe6fac 100755
--- a/tests/functional-tests/301-miner-resource-removal.py
+++ b/tests/functional-tests/301-miner-resource-removal.py
@@ -22,7 +22,7 @@ Test that resource removal does not leave debris or clobber too much,
especially in the case where nie:InformationElement != nie:DataObject
"""
-from common.utils import configuration as cfg
+import configuration as cfg
from common.utils.minertest import CommonTrackerMinerTest, path, uri
from gi.repository import GLib
diff --git a/tests/functional-tests/400-extractor-metadata.py
b/tests/functional-tests/400-extractor-metadata.py
index fc1604e..40ac619 100755
--- a/tests/functional-tests/400-extractor-metadata.py
+++ b/tests/functional-tests/400-extractor-metadata.py
@@ -23,7 +23,7 @@ metadata is extracted. Load dynamically the test information from a data
directory (containing xxx.expected files)
"""
-from common.utils import configuration as cfg
+import configuration as cfg
from common.utils.extractor import get_tracker_extract_output
import unittest2 as ut
import os
diff --git a/tests/functional-tests/601-applications-sync.py b/tests/functional-tests/601-applications-sync.py
index 2b32a72..dd8d204 100755
--- a/tests/functional-tests/601-applications-sync.py
+++ b/tests/functional-tests/601-applications-sync.py
@@ -31,7 +31,7 @@ import datetime
import shutil
import fcntl
-from common.utils import configuration as cfg
+import configuration as cfg
import unittest2 as ut
from common.utils.applicationstest import CommonTrackerApplicationTest as CommonTrackerApplicationTest
from common.utils.helpers import log
diff --git a/tests/functional-tests/common/utils/applicationstest.py
b/tests/functional-tests/common/utils/applicationstest.py
index 72a8b84..91320b7 100644
--- a/tests/functional-tests/common/utils/applicationstest.py
+++ b/tests/functional-tests/common/utils/applicationstest.py
@@ -17,7 +17,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
#
-from common.utils import configuration as cfg
+import configuration as cfg
from common.utils.system import TrackerSystemAbstraction
from common.utils.helpers import log
import unittest2 as ut
diff --git a/tests/functional-tests/common/utils/extractor.py
b/tests/functional-tests/common/utils/extractor.py
index 8dd0560..e225071 100644
--- a/tests/functional-tests/common/utils/extractor.py
+++ b/tests/functional-tests/common/utils/extractor.py
@@ -18,7 +18,7 @@
# 02110-1301, USA.
#
-from common.utils import configuration as cfg
+import configuration as cfg
from common.utils.helpers import log
import os
import re
diff --git a/tests/functional-tests/common/utils/helpers.py b/tests/functional-tests/common/utils/helpers.py
index 23394f3..4c738bd 100644
--- a/tests/functional-tests/common/utils/helpers.py
+++ b/tests/functional-tests/common/utils/helpers.py
@@ -32,6 +32,8 @@ import options
class NoMetadataException (Exception):
pass
+BUILD_DIR = os.environ.get('TRACKER_FUNCTIONAL_TEST_BUILD_DIR')
+
REASONABLE_TIMEOUT = 30
def log (message):
@@ -93,7 +95,11 @@ class Helper:
command = [path] + flags
log ("Starting %s" % ' '.join(command))
- return subprocess.Popen ([path] + flags, **kws)
+ try:
+ process = subprocess.Popen (command, **kws)
+ except OSError as e:
+ raise RuntimeError("Unable to start %s: %s" % (' '.join(command), e))
+ return process
def _bus_name_appeared(self, name, owner, data):
log ("[%s] appeared in the bus as %s" % (self.PROCESS_NAME, owner))
@@ -214,6 +220,11 @@ class StoreHelper (Helper):
PROCESS_NAME = "tracker-store"
BUS_NAME = cfg.TRACKER_BUSNAME
+ if BUILD_DIR:
+ PROCESS_PATH = os.path.join (BUILD_DIR, "subprojects", "tracker", "src", "tracker-store",
"tracker-store")
+ else:
+ PROCESS_PATH = os.path.join (cfg.EXEC_PREFIX, "tracker-store")
+
graph_updated_handler_id = 0
def start (self):
@@ -542,11 +553,15 @@ class StoreHelper (Helper):
class MinerFsHelper (Helper):
PROCESS_NAME = 'tracker-miner-fs'
- PROCESS_PATH = os.path.join (cfg.EXEC_PREFIX, "tracker-miner-fs")
BUS_NAME = cfg.MINERFS_BUSNAME
FLAGS = ['--initial-sleep=0']
+ if BUILD_DIR:
+ PROCESS_PATH = os.path.join (BUILD_DIR, "src", "miners", "fs", "tracker-miner-fs")
+ else:
+ PROCESS_PATH = os.path.join (cfg.EXEC_PREFIX, "tracker-miner-fs")
+
def start (self):
Helper.start (self)
diff --git a/tests/functional-tests/common/utils/minertest.py
b/tests/functional-tests/common/utils/minertest.py
index 5aae50f..fc84e2e 100644
--- a/tests/functional-tests/common/utils/minertest.py
+++ b/tests/functional-tests/common/utils/minertest.py
@@ -17,7 +17,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
#
-from common.utils import configuration as cfg
+import configuration as cfg
from common.utils.system import TrackerSystemAbstraction
import unittest2 as ut
diff --git a/tests/functional-tests/common/utils/storetest.py
b/tests/functional-tests/common/utils/storetest.py
index be16b6c..75e3a10 100644
--- a/tests/functional-tests/common/utils/storetest.py
+++ b/tests/functional-tests/common/utils/storetest.py
@@ -23,7 +23,7 @@ import time
from common.utils.system import TrackerSystemAbstraction
from common.utils.helpers import StoreHelper
-from common.utils import configuration as cfg
+import configuration as cfg
import unittest2 as ut
#import unittest as ut
diff --git a/tests/functional-tests/common/utils/system.py b/tests/functional-tests/common/utils/system.py
index 177f551..b72d69d 100644
--- a/tests/functional-tests/common/utils/system.py
+++ b/tests/functional-tests/common/utils/system.py
@@ -23,7 +23,7 @@ TEST_ENV_VARS = { "LC_COLLATE": "en_GB.utf8",
"DCONF_PROFILE": os.path.join (cfg.DATADIR, "tracker-tests",
"trackertest") }
-EXTRA_DIRS = [os.path.join (cfg.TEST_TMP_DIR, "data", "tracker"),
+EXTRA_DIRS = [os.path.join (cfg.TEST_TMP_DIR, "data", "tracker", "data"),
os.path.join (cfg.TEST_TMP_DIR, "cache", "tracker")]
REASONABLE_TIMEOUT = 5
@@ -186,6 +186,7 @@ class TrackerSystemAbstraction (object):
self.tracker_writeback_testing_stop ()
def __recreate_directory (self, directory):
+ print("CREATING: %s" % directory)
if (os.path.exists (directory)):
shutil.rmtree (directory)
os.makedirs (directory)
diff --git a/tests/functional-tests/common/utils/writebacktest.py
b/tests/functional-tests/common/utils/writebacktest.py
index 63c3ef7..65a6ef1 100644
--- a/tests/functional-tests/common/utils/writebacktest.py
+++ b/tests/functional-tests/common/utils/writebacktest.py
@@ -24,7 +24,7 @@ from common.utils.system import TrackerSystemAbstraction
import shutil
import unittest2 as ut
import os
-from common.utils import configuration as cfg
+import configuration as cfg
from common.utils.helpers import log
import time
diff --git a/tests/functional-tests/configuration/meson.build
b/tests/functional-tests/configuration/meson.build
new file mode 100644
index 0000000..fb5d7a0
--- /dev/null
+++ b/tests/functional-tests/configuration/meson.build
@@ -0,0 +1,5 @@
+configure_file(
+ input: '__init__.py.in',
+ output: '__init__.py',
+ configuration: conf
+)
diff --git a/tests/functional-tests/meson.build b/tests/functional-tests/meson.build
index 063842d..f28dec0 100644
--- a/tests/functional-tests/meson.build
+++ b/tests/functional-tests/meson.build
@@ -1,3 +1,5 @@
+subdir('configuration')
+
test_runner = find_program('test-runner.sh')
functional_tests = [
@@ -28,9 +30,20 @@ functional_tests = [
'601-applications-sync',
]
+tracker_miners_top_build_dir = join_paths(meson.current_build_dir(), '..', '..')
+
+tracker_nepomuk_ontologies = join_paths(meson.current_source_dir(), '..', '..', 'subprojects', 'tracker',
'src', 'ontologies', 'nepomuk')
+tracker_test_domain_ontology = join_paths(meson.current_source_dir(), '..', '..', 'subprojects', 'tracker',
'src', 'tracker-store', 'default.rule')
+
foreach t: functional_tests
test('functional-' + t, test_runner,
args: './' + t + '.py',
+ env: [
+ 'PYTHONPATH=@0@'.format(meson.current_build_dir()),
+ 'TRACKER_FUNCTIONAL_TEST_BUILD_DIR=@0@'.format(tracker_miners_top_build_dir),
+ 'TRACKER_DB_ONTOLOGIES_DIR=@0@'.format(tracker_nepomuk_ontologies),
+ 'TRACKER_TEST_DOMAIN_ONTOLOGY_RULE=@0@'.format(tracker_test_domain_ontology),
+ ],
workdir: meson.current_source_dir(),
# FIXME: these tests are all too slow
timeout: 180)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]