]> granicus.if.org Git - python/commitdiff
Make test_multiprocessing more lenient about another timeout check
authorRichard Oudkerk <shibturn@gmail.com>
Sun, 6 May 2012 15:46:36 +0000 (16:46 +0100)
committerRichard Oudkerk <shibturn@gmail.com>
Sun, 6 May 2012 15:46:36 +0000 (16:46 +0100)
Lib/test/test_multiprocessing.py

index 5e471f161359e22553724b29c82f1caed1567989..4496f396cdaf1ba3beca0fa9c7338149947ad75e 100644 (file)
@@ -922,7 +922,8 @@ class _TestCondition(BaseTestCase):
         self.assertEqual(p.exitcode, 0)
 
     @classmethod
-    def _test_waitfor_timeout_f(cls, cond, state, success):
+    def _test_waitfor_timeout_f(cls, cond, state, success, sem):
+        sem.release()
         with cond:
             expected = 0.1
             dt = time.time()
@@ -938,11 +939,13 @@ class _TestCondition(BaseTestCase):
         cond = self.Condition()
         state = self.Value('i', 0)
         success = self.Value('i', False)
+        sem = self.Semaphore(0)
 
         p = self.Process(target=self._test_waitfor_timeout_f,
-                         args=(cond, state, success))
+                         args=(cond, state, success, sem))
         p.daemon = True
         p.start()
+        self.assertTrue(sem.acquire(timeout=10))
 
         # Only increment 3 times, so state == 4 is never reached.
         for i in range(3):
@@ -2723,8 +2726,8 @@ class TestWait(unittest.TestCase):
         delta = time.time() - start
 
         self.assertEqual(res, [])
-        self.assertLess(delta, expected + 1)
-        self.assertGreater(delta, expected - 1)
+        self.assertLess(delta, expected * 2)
+        self.assertGreater(delta, expected * 0.5)
 
         b.send(None)