From: Gregory P. Smith Date: Thu, 29 Aug 2013 20:35:27 +0000 (-0700) Subject: Fixes issue #15507: test_subprocess's test_send_signal could fail if the test X-Git-Tag: v3.4.0a2~77^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=dee0434e2fb030df448770199627e87c9e06a6bf;p=thirdparty%2FPython%2Fcpython.git Fixes issue #15507: test_subprocess's test_send_signal could fail if the test runner were run in an environment where the process inherited an ignore setting for SIGINT. Restore the SIGINT handler to the desired KeyboardInterrupt raising one during that test. --- diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py index f8cd1de32589..723845a13f30 100644 --- a/Lib/test/test_subprocess.py +++ b/Lib/test/test_subprocess.py @@ -1398,16 +1398,22 @@ class POSIXProcessTestCase(BaseTestCase): def _kill_process(self, method, *args): # Do not inherit file handles from the parent. # It should fix failures on some platforms. - p = subprocess.Popen([sys.executable, "-c", """if 1: - import sys, time - sys.stdout.write('x\\n') - sys.stdout.flush() - time.sleep(30) - """], - close_fds=True, - stdin=subprocess.PIPE, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) + # Also set the SIGINT handler to the default to make sure it's not + # being ignored (some tests rely on that.) + old_handler = signal.signal(signal.SIGINT, signal.default_int_handler) + try: + p = subprocess.Popen([sys.executable, "-c", """if 1: + import sys, time + sys.stdout.write('x\\n') + sys.stdout.flush() + time.sleep(30) + """], + close_fds=True, + stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + finally: + signal.signal(signal.SIGINT, old_handler) # Wait for the interpreter to be completely initialized before # sending any signal. p.stdout.read(1) diff --git a/Misc/NEWS b/Misc/NEWS index be2dc9dde816..4572ae6c379f 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -309,6 +309,11 @@ IDLE Tests ----- +- Issue #15507: test_subprocess's test_send_signal could fail if the test + runner were run in an environment where the process inherited an ignore + setting for SIGINT. Restore the SIGINT handler to the desired + KeyboardInterrupt raising one during that test. + - Issue #18792: Use "127.0.0.1" or "::1" instead of "localhost" as much as possible, since "localhost" goes through a DNS lookup under recent Windows versions.