Commit cf969d23 authored by Antoine Pitrou's avatar Antoine Pitrou

Make test_threadsignals more lax, and add notes

parent 6a156f48
...@@ -142,6 +142,9 @@ class ThreadSignals(unittest.TestCase): ...@@ -142,6 +142,9 @@ class ThreadSignals(unittest.TestCase):
# receive a signal. Check this by repeatedly interrupting a lock # receive a signal. Check this by repeatedly interrupting a lock
# acquire in the main thread, and make sure that the lock acquire times # acquire in the main thread, and make sure that the lock acquire times
# out after the right amount of time. # out after the right amount of time.
# NOTE: this test only behaves as expected if C signals get delivered
# to the main thread. Otherwise lock.acquire() itself doesn't get
# interrupted and the test trivially succeeds.
self.start = None self.start = None
self.end = None self.end = None
self.sigs_recvd = 0 self.sigs_recvd = 0
...@@ -159,7 +162,7 @@ class ThreadSignals(unittest.TestCase): ...@@ -159,7 +162,7 @@ class ThreadSignals(unittest.TestCase):
self.end = time.time() self.end = time.time()
def send_signals(): def send_signals():
for _ in range(40): for _ in range(40):
time.sleep(0.05) time.sleep(0.02)
os.kill(process_pid, signal.SIGUSR1) os.kill(process_pid, signal.SIGUSR1)
done.release() done.release()
...@@ -172,7 +175,9 @@ class ThreadSignals(unittest.TestCase): ...@@ -172,7 +175,9 @@ class ThreadSignals(unittest.TestCase):
# This allows for some timing and scheduling imprecision # This allows for some timing and scheduling imprecision
self.assertLess(self.end - self.start, 2.0) self.assertLess(self.end - self.start, 2.0)
self.assertGreater(self.end - self.start, 0.3) self.assertGreater(self.end - self.start, 0.3)
self.assertEqual(40, self.sigs_recvd) # If the signal is received several times before PyErr_CheckSignals()
# is called, the handler will get called less than 40 times.
self.assertGreater(self.sigs_recvd, 20)
finally: finally:
signal.signal(signal.SIGUSR1, old_handler) signal.signal(signal.SIGUSR1, old_handler)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment