diff options
author | Sam Thursfield <sam@afuera.me.uk> | 2015-08-10 15:24:52 +0200 |
---|---|---|
committer | Sam Thursfield <sam@afuera.me.uk> | 2015-08-11 20:57:11 +0200 |
commit | 2765bd12c12f7929aebb6519e511259833d2c4c9 (patch) | |
tree | 118bcc9ad1936fa7cfaa2363b2bff7b349e1da77 | |
parent | b1804146a01c2a4ab9f74ff8be9a9e69c611b18b (diff) | |
download | tracker-2765bd12c12f7929aebb6519e511259833d2c4c9.tar.gz |
functional-tests: Improve 'manual start' mode
This mode now allows you to run the tests against already-running
Tracker processes. A lot of tests depend on specific miner-fs
configuration so they might not work, but it can be useful.
You can still start the test and then manually start the Tracker process
if you want.
Note that enabling manual start on the commandline probably doesn't
work (commandline options for these tests are pretty broken) so just
change the options.is_manual_start() function to 'return True' if you
want to use this mode.
-rw-r--r-- | tests/functional-tests/common/utils/helpers.py | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/tests/functional-tests/common/utils/helpers.py b/tests/functional-tests/common/utils/helpers.py index b34c3d728..556f11f5f 100644 --- a/tests/functional-tests/common/utils/helpers.py +++ b/tests/functional-tests/common/utils/helpers.py @@ -97,18 +97,15 @@ class Helper: "FLAGS", []) - if options.is_manual_start (): - print ("Start %s manually" % self.PROCESS_NAME) - else: - kws = {} + kws = {} - if not options.is_verbose (): - FNULL = open ('/dev/null', 'w') - kws = { 'stdout': FNULL, 'stderr': FNULL } + if not options.is_verbose (): + FNULL = open ('/dev/null', 'w') + kws = { 'stdout': FNULL, 'stderr': FNULL } - command = [path] + flags - log ("Starting %s" % ' '.join(command)) - return subprocess.Popen ([path] + flags, **kws) + command = [path] + flags + log ("Starting %s" % ' '.join(command)) + return subprocess.Popen ([path] + flags, **kws) def _name_owner_changed_cb (self, name, old_owner, new_owner): if name == self.BUS_NAME: @@ -148,18 +145,29 @@ class Helper: self._get_bus () - if (self.bus_admin.NameHasOwner (self.BUS_NAME)): - raise Exception ("Unable to start test instance of %s: already running" % self.PROCESS_NAME) + if self.bus_admin.NameHasOwner(self.BUS_NAME): + if options.is_manual_start(): + self.available = True + log ("Found existing %s process (D-Bus name %s)" % + (self.PROCESS_NAME, self.BUS_NAME)) + return + else: + raise Exception ("Unable to start test instance of %s: " + "already running" % self.PROCESS_NAME) + else: + log ("Name %s does not have an owner." % self.BUS_NAME) self.name_owner_match = self.bus.add_signal_receiver (self._name_owner_changed_cb, signal_name="NameOwnerChanged", path="/org/freedesktop/DBus", dbus_interface="org.freedesktop.DBus") - self.process = self._start_process () - log ('[%s] Started process %i' % (self.PROCESS_NAME, self.process.pid)) - - self.process_watch_timeout = GLib.timeout_add (200, self._process_watch_cb) + if options.is_manual_start(): + print ("Start %s manually" % self.PROCESS_NAME) + else: + self.process = self._start_process () + log ('[%s] Started process %i' % (self.PROCESS_NAME, self.process.pid)) + self.process_watch_timeout = GLib.timeout_add (200, self._process_watch_cb) self.abort_if_process_exits_with_status_0 = True |