Commit 129226d4 authored by Florent Xicluna's avatar Florent Xicluna

Merged revisions 78671 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78671 | florent.xicluna | 2010-03-05 01:47:40 +0100 (ven, 05 mar 2010) | 3 lines

  Workaround #3137: Retry SIGINT if it is not received the first time.
  test_send_signal should not hang anymore on various Linux distributions.
........
parent 16e7a584
...@@ -652,9 +652,20 @@ class POSIXProcessTestCase(unittest.TestCase): ...@@ -652,9 +652,20 @@ class POSIXProcessTestCase(unittest.TestCase):
p = subprocess.Popen([sys.executable, "-c", "input()"]) p = subprocess.Popen([sys.executable, "-c", "input()"])
# Let the process initialize correctly (Issue #3137) # Let the process initialize correctly (Issue #3137)
time.sleep(.1) time.sleep(0.1)
self.assertIs(p.poll(), None) self.assertIs(p.poll(), None)
p.send_signal(signal.SIGINT) count, maxcount = 0, 3
# Retry if the process do not receive the SIGINT signal.
while count < maxcount and p.poll() is None:
p.send_signal(signal.SIGINT)
time.sleep(0.1)
count += 1
if p.poll() is None:
raise support.TestFailed("the subprocess did not receive "
"the signal SIGINT")
elif count > 1:
print("p.send_signal(SIGINT) succeeded "
"after {} attempts".format(count), file=sys.stderr)
self.assertNotEqual(p.wait(), 0) self.assertNotEqual(p.wait(), 0)
def test_kill(self): def test_kill(self):
...@@ -839,6 +850,7 @@ def test_main(): ...@@ -839,6 +850,7 @@ def test_main():
ProcessTestCaseNoPoll, ProcessTestCaseNoPoll,
HelperFunctionTests) HelperFunctionTests)
unit_tests = (POSIXProcessTestCase,)
support.run_unittest(*unit_tests) support.run_unittest(*unit_tests)
support.reap_children() support.reap_children()
......
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