summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Thursfield <sam@afuera.me.uk>2014-08-02 03:27:12 +0100
committerSam Thursfield <sam@afuera.me.uk>2014-10-14 14:08:20 +0100
commit3c83acdde861a5553fdb4b9fc07efa6f99b63def (patch)
treec798b43c6ddbfab2c8a068a311353fd6bd7655e2
parent35b8f2d48eb88537830ada3b3a5931612beba6ae (diff)
downloadtracker-3c83acdde861a5553fdb4b9fc07efa6f99b63def.tar.gz
functional-tests: Remove all remaining 'wait for miner to be idle' calls
We are running against a clean data directory when run by 'test-runner.sh', so the miner should not have any initial crawling work to do. Therefore the tests don't need to wait for it to be idle before starting. Test cases should use the await_resource_inserted() and await_resource_deleted() methods as these are (in theory) reliable. Waiting for the miner to go idle and hoping this means that the desired file was crawled and extracted is not reliable at all. This should hopefully make the tests robust enough to be run continuously without random failures occuring. The tracker_miner_fs_wait_for_idle() functions are gone forever!
-rwxr-xr-xtests/functional-tests/300-miner-basic-ops.py3
-rwxr-xr-xtests/functional-tests/601-applications-sync.py4
-rw-r--r--tests/functional-tests/common/utils/helpers.py39
-rw-r--r--tests/functional-tests/common/utils/minertest.py1
-rw-r--r--tests/functional-tests/common/utils/system.py7
5 files changed, 1 insertions, 53 deletions
diff --git a/tests/functional-tests/300-miner-basic-ops.py b/tests/functional-tests/300-miner-basic-ops.py
index 31f1699da..97259976c 100755
--- a/tests/functional-tests/300-miner-basic-ops.py
+++ b/tests/functional-tests/300-miner-basic-ops.py
@@ -295,11 +295,8 @@ class MinerCrawlTest (CommonTrackerMinerTest):
self.assertIn ( uri ("test-monitored/file1.txt"), unpacked_result)
# Restore the dirs
- # Wait after each operation to be sure of the results
os.makedirs (os.path.join (MINER_TMP_DIR, "test-monitored", "dir1"))
- self.system.tracker_miner_fs_wait_for_idle ()
os.makedirs (os.path.join (MINER_TMP_DIR, "test-monitored", "dir1", "dir2"))
- self.system.tracker_miner_fs_wait_for_idle ()
for f in ["test-monitored/dir1/file2.txt",
"test-monitored/dir1/dir2/file3.txt"]:
filename = os.path.join (MINER_TMP_DIR, f)
diff --git a/tests/functional-tests/601-applications-sync.py b/tests/functional-tests/601-applications-sync.py
index 2dc753ca3..26dad9558 100755
--- a/tests/functional-tests/601-applications-sync.py
+++ b/tests/functional-tests/601-applications-sync.py
@@ -36,7 +36,6 @@ import unittest2 as ut
from common.utils.applicationstest import CommonTrackerApplicationTest as CommonTrackerApplicationTest
from common.utils.helpers import log
-MINER_FS_IDLE_TIMEOUT = 30
class TrackerSyncApplicationTests (CommonTrackerApplicationTest):
@@ -91,13 +90,12 @@ class TrackerSyncApplicationTests (CommonTrackerApplicationTest):
# Copy the image to the dest path
self.slowcopy_file (origin_filepath, dest_filepath)
assert os.path.exists (dest_filepath)
- self.system.tracker_miner_fs_wait_for_idle (MINER_FS_IDLE_TIMEOUT)
+ self.tracker.await_resource_inserted ('nmm:MusicPiece', url=dest_fileuri)
self.assertEquals (self.get_urn_count_by_url (dest_fileuri), 1)
# Clean the new file so the test directory is as before
log ("Remove and wait")
os.remove (dest_filepath)
- self.system.tracker_miner_fs_wait_for_idle (MINER_FS_IDLE_TIMEOUT)
self.assertEquals (self.get_urn_count_by_url (dest_fileuri), 0)
if __name__ == "__main__":
diff --git a/tests/functional-tests/common/utils/helpers.py b/tests/functional-tests/common/utils/helpers.py
index 607efdbe5..8dd9b95ba 100644
--- a/tests/functional-tests/common/utils/helpers.py
+++ b/tests/functional-tests/common/utils/helpers.py
@@ -579,24 +579,9 @@ class MinerFsHelper (Helper):
return False
- def _minerfs_status_cb (self, status, progress, remaining_time):
- if (status == "Idle"):
- self.loop.quit ()
-
def start (self):
Helper.start (self)
- self.status_match = self.bus.add_signal_receiver (self._minerfs_status_cb,
- signal_name="Progress",
- path=cfg.MINERFS_OBJ_PATH,
- dbus_interface=cfg.MINER_IFACE)
-
- # It should step out of this loop after progress changes to "Idle"
- self.timeout_id = GLib.timeout_add_seconds (REASONABLE_TIMEOUT, self._timeout_on_idle_cb)
- self.loop.run ()
- if self.timeout_id is not None:
- GLib.source_remove (self.timeout_id)
-
bus_object = self.bus.get_object (cfg.MINERFS_BUSNAME,
cfg.MINERFS_OBJ_PATH)
self.miner_fs = dbus.Interface (bus_object,
@@ -605,33 +590,9 @@ class MinerFsHelper (Helper):
def stop (self):
Helper.stop (self)
- self.bus._clean_up_signal_match (self.status_match)
-
def ignore (self, filelist):
self.miner_fs.IgnoreNextUpdate (filelist)
- def wait_for_idle (self, timeout=REASONABLE_TIMEOUT):
- """
- Block until the miner has finished crawling and its status becomes "Idle"
- """
- status = self.miner_fs.GetStatus()
- log ('Current miner FS status: %s' % status)
-
- if status == 'Idle':
- return
-
- self.status_match = self.bus.add_signal_receiver (self._minerfs_status_cb,
- signal_name="Progress",
- path=cfg.MINERFS_OBJ_PATH,
- dbus_interface=cfg.MINER_IFACE)
- self.timeout_id = GLib.timeout_add_seconds (REASONABLE_TIMEOUT, self._timeout_on_idle_cb)
-
- self.loop.run ()
-
- if self.timeout_id is not None:
- GLib.source_remove (self.timeout_id)
- self.bus._clean_up_signal_match (self.status_match)
-
class ExtractorHelper (Helper):
diff --git a/tests/functional-tests/common/utils/minertest.py b/tests/functional-tests/common/utils/minertest.py
index 7111d8656..82e2b8546 100644
--- a/tests/functional-tests/common/utils/minertest.py
+++ b/tests/functional-tests/common/utils/minertest.py
@@ -102,7 +102,6 @@ class CommonTrackerMinerTest (ut.TestCase):
confdir = os.path.join (cfg.DATADIR, "tracker-tests",
"test-configurations", "miner-basic-ops")
self.system.tracker_miner_fs_testing_start (CONF_OPTIONS)
- self.system.tracker_miner_fs_wait_for_idle ()
self.tracker = self.system.store
@classmethod
diff --git a/tests/functional-tests/common/utils/system.py b/tests/functional-tests/common/utils/system.py
index 8759750a3..16540c7e4 100644
--- a/tests/functional-tests/common/utils/system.py
+++ b/tests/functional-tests/common/utils/system.py
@@ -178,13 +178,6 @@ class TrackerSystemAbstraction:
self.miner_fs = helpers.MinerFsHelper ()
self.miner_fs.start ()
- def tracker_miner_fs_wait_for_idle (self, timeout=REASONABLE_TIMEOUT):
- """
- Copy the files physically in the filesyste and wait for the miner to complete the work
- """
- self.miner_fs.wait_for_idle (timeout)
-
-
def tracker_miner_fs_testing_stop (self):
"""
Stops the miner-fs and store running and unset all the XDG_*_HOME vars