diff options
author | Jenkins <jenkins@review.openstack.org> | 2013-01-05 00:47:33 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2013-01-05 00:47:33 +0000 |
commit | 193803bd4a812b75d92d7365e75a5f71606de549 (patch) | |
tree | af947f1dda3921f97d2de0941163c9f387597fa8 | |
parent | aefdd01621c7e43ba93c91f9db852caf2a08935b (diff) | |
parent | 29e58dabc9e50eca68a54cb345d4cd2a77c0ba55 (diff) | |
download | oslo-193803bd4a812b75d92d7365e75a5f71606de549.tar.gz oslo-193803bd4a812b75d92d7365e75a5f71606de549.tar.xz oslo-193803bd4a812b75d92d7365e75a5f71606de549.zip |
Merge "Fix test cases in tests.unit.test_service"
-rw-r--r-- | tests/unit/test_service.py | 54 |
1 files changed, 26 insertions, 28 deletions
diff --git a/tests/unit/test_service.py b/tests/unit/test_service.py index 59f3145..c7455e0 100644 --- a/tests/unit/test_service.py +++ b/tests/unit/test_service.py @@ -97,18 +97,24 @@ class ServiceLauncherTest(utils.BaseTestCase): self.pid = pid - # Wait for up to a second for workers to get started - start = time.time() - while time.time() - start < 1: - workers = self._get_workers() - if len(workers) == self.workers: - break - - time.sleep(.1) + # Wait at most 10 seconds to spawn workers + cond = lambda: self.workers == len(self._get_workers()) + timeout = 10 + self._wait(cond, timeout) + workers = self._get_workers() self.assertEqual(len(workers), self.workers) return workers + def _wait(self, cond, timeout): + start = time.time() + while True: + if cond(): + break + if time.time() - start > timeout: + break + time.sleep(.1) + def setUp(self): super(ServiceLauncherTest, self).setUp() # FIXME(markmc): Ugly hack to workaround bug #1073732 @@ -149,18 +155,14 @@ class ServiceLauncherTest(utils.BaseTestCase): LOG.info('pid of first child is %s' % start_workers[0]) os.kill(start_workers[0], signal.SIGTERM) - # loop and check if new worker is spawned (for 1 second max) - start = time.time() - while time.time() - start < 1: - end_workers = self._get_workers() - LOG.info('workers: %r' % end_workers) - - if start_workers != end_workers: - break - - time.sleep(.1) + # Wait at most 5 seconds to respawn a worker + cond = lambda: start_workers != self._get_workers() + timeout = 5 + self._wait(cond, timeout) # Make sure worker pids don't match + end_workers = self._get_workers() + LOG.info('workers: %r' % end_workers) self.assertNotEqual(start_workers, end_workers) def _terminate_with_signal(self, sig): @@ -168,17 +170,13 @@ class ServiceLauncherTest(utils.BaseTestCase): os.kill(self.pid, sig) - # loop and check if all processes are killed (for 1 second max) - start = time.time() - while time.time() - start < 1: - workers = self._get_workers() - LOG.info('workers: %r' % workers) - - if not workers: - break - - time.sleep(.1) + # Wait at most 5 seconds to kill all workers + cond = lambda: not self._get_workers() + timeout = 5 + self._wait(cond, timeout) + workers = self._get_workers() + LOG.info('workers: %r' % workers) self.assertFalse(workers, 'No OS processes left.') def test_terminate_sigkill(self): |