]> granicus.if.org Git - python/commitdiff
test_bsddb3 tolerates smaller timeout on Windows (#2840)
authorVictor Stinner <victor.stinner@gmail.com>
Mon, 24 Jul 2017 11:01:59 +0000 (13:01 +0200)
committerGitHub <noreply@github.com>
Mon, 24 Jul 2017 11:01:59 +0000 (13:01 +0200)
bpo-30850: On Windows, test04_lock_timeout2() now tolerates 50 ms
whereas 100 ms is expected. The lock sometimes times out after only
58 ms. Windows clocks have a bad resolution and bad accuracy.

Lib/bsddb/test/test_lock.py

index 0b08aa105a1db6137179d3e0d017a16d021c6ac3..22bf8cde7b7fc9d2e433ed6c8f38fc268a444006 100644 (file)
@@ -2,6 +2,7 @@
 TestCases for testing the locking sub-system.
 """
 
+import sys
 import time
 
 import unittest
@@ -10,7 +11,6 @@ from test_all import db, test_support, verbose, have_threads, \
 
 if have_threads :
     from threading import Thread
-    import sys
     if sys.version_info[0] < 3 :
         from threading import currentThread
     else :
@@ -129,7 +129,14 @@ class LockingTestCase(unittest.TestCase):
         end_time=time.time()
         deadlock_detection.end=True
         # Floating point rounding
-        self.assertGreaterEqual(end_time-start_time, 0.0999)
+        if sys.platform == 'win32':
+            # bpo-30850: On Windows, tolerate 50 ms whereas 100 ms is expected.
+            # The lock sometimes times out after only 58 ms. Windows clocks
+            # have a bad resolution and bad accuracy.
+            min_dt = 0.050
+        else:
+            min_dt = 0.0999
+        self.assertGreaterEqual(end_time-start_time, min_dt)
         self.env.lock_put(lock)
         t.join()