mirror of
https://github.com/python/cpython.git
synced 2025-09-28 11:15:17 +00:00
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. ........
This commit is contained in:
parent
16e7a58472
commit
129226d4eb
1 changed files with 14 additions and 2 deletions
|
@ -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)
|
||||||
|
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)
|
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():
|
||||||
ProcessTestCaseNoPoll,
|
ProcessTestCaseNoPoll,
|
||||||
HelperFunctionTests)
|
HelperFunctionTests)
|
||||||
|
|
||||||
|
unit_tests = (POSIXProcessTestCase,)
|
||||||
support.run_unittest(*unit_tests)
|
support.run_unittest(*unit_tests)
|
||||||
support.reap_children()
|
support.reap_children()
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue