summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGregory P. Smith <greg@krypto.org>2013-08-29 20:35:27 (GMT)
committerGregory P. Smith <greg@krypto.org>2013-08-29 20:35:27 (GMT)
commitdee0434e2fb030df448770199627e87c9e06a6bf (patch)
tree7021c5c456ffc2a71570f1d937f38982b586b085
parente33d5b0bc8b4eeb2a3072757c83d6efc30e28599 (diff)
downloadcpython-dee0434e2fb030df448770199627e87c9e06a6bf.zip
cpython-dee0434e2fb030df448770199627e87c9e06a6bf.tar.gz
cpython-dee0434e2fb030df448770199627e87c9e06a6bf.tar.bz2
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.
-rw-r--r--Lib/test/test_subprocess.py26
-rw-r--r--Misc/NEWS5
2 files changed, 21 insertions, 10 deletions
diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
index f8cd1de..723845a 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 be2dc9d..4572ae6 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.