gh-110647: Fix signal test_stress_modifying_handlers() (#110650)

* cycle_handlers() now waits until at least one signal is received.
* num_received_signals can be equal to num_sent_signals.
This commit is contained in:
Victor Stinner 2023-10-11 01:59:43 +02:00 committed by GitHub
parent da0a68afc9
commit e07c37cd52
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 2 deletions

View file

@ -1339,7 +1339,7 @@ class StressTest(unittest.TestCase):
num_sent_signals += 1 num_sent_signals += 1
def cycle_handlers(): def cycle_handlers():
while num_sent_signals < 100: while num_sent_signals < 100 or num_received_signals < 1:
for i in range(20000): for i in range(20000):
# Cycle between a Python-defined and a non-Python handler # Cycle between a Python-defined and a non-Python handler
for handler in [custom_handler, signal.SIG_IGN]: for handler in [custom_handler, signal.SIG_IGN]:
@ -1372,7 +1372,7 @@ class StressTest(unittest.TestCase):
if not ignored: if not ignored:
# Sanity check that some signals were received, but not all # Sanity check that some signals were received, but not all
self.assertGreater(num_received_signals, 0) self.assertGreater(num_received_signals, 0)
self.assertLess(num_received_signals, num_sent_signals) self.assertLessEqual(num_received_signals, num_sent_signals)
finally: finally:
do_stop = True do_stop = True
t.join() t.join()

View file

@ -0,0 +1,2 @@
Fix test_stress_modifying_handlers() of test_signal. Patch by Victor
Stinner.