diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2014-07-24 20:51:05 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2014-07-24 20:51:05 (GMT) |
commit | 1d8948e02385a6a2431b3ca782cc64eb39bc8a26 (patch) | |
tree | e4017426e09abcf1fd5e4fbe2778fe126415f10d /Lib/test/test_signal.py | |
parent | 31f1a360b8aa3b80c0f23ce0d3dee592d1afefd9 (diff) | |
download | cpython-1d8948e02385a6a2431b3ca782cc64eb39bc8a26.zip cpython-1d8948e02385a6a2431b3ca782cc64eb39bc8a26.tar.gz cpython-1d8948e02385a6a2431b3ca782cc64eb39bc8a26.tar.bz2 |
Backout 42ced0d023cd: oops, i didn't want to push this changeset :-/
Diffstat (limited to 'Lib/test/test_signal.py')
-rw-r--r-- | Lib/test/test_signal.py | 130 |
1 files changed, 11 insertions, 119 deletions
diff --git a/Lib/test/test_signal.py b/Lib/test/test_signal.py index 28bb4d6..56ab631 100644 --- a/Lib/test/test_signal.py +++ b/Lib/test/test_signal.py @@ -6,7 +6,6 @@ import gc import pickle import select import signal -import socket import struct import subprocess import traceback @@ -252,43 +251,21 @@ class WindowsSignalTests(unittest.TestCase): class WakeupFDTests(unittest.TestCase): def test_invalid_fd(self): - if sys.platform == "win32": - sock = socket.socket() - fd = sock.fileno() - sock.close() - else: - fd = support.make_bad_fd() + fd = support.make_bad_fd() self.assertRaises((ValueError, OSError), signal.set_wakeup_fd, fd) - @unittest.skipUnless(sys.platform == "win32", 'test specific to Windows') - def test_only_socket(self): - # set_wakeup_fd() expects a socket on Windows - with open(support.TESTFN, 'wb') as fp: - self.addCleanup(support.unlink, support.TESTFN) - self.assertRaises(ValueError, - signal.set_wakeup_fd, fp.fileno()) - def test_set_wakeup_fd_result(self): - if sys.platform == 'win32': - sock1 = socket.socket() - self.addCleanup(sock1.close) - fd1 = sock1.fileno() - - sock2 = socket.socket() - self.addCleanup(sock2.close) - fd2 = sock2.fileno() - else: - r1, fd1 = os.pipe() - self.addCleanup(os.close, r1) - self.addCleanup(os.close, fd1) - r2, fd2 = os.pipe() - self.addCleanup(os.close, r2) - self.addCleanup(os.close, fd2) - - signal.set_wakeup_fd(fd1) - self.assertIs(signal.set_wakeup_fd(fd2), fd1) - self.assertIs(signal.set_wakeup_fd(-1), fd2) + r1, w1 = os.pipe() + self.addCleanup(os.close, r1) + self.addCleanup(os.close, w1) + r2, w2 = os.pipe() + self.addCleanup(os.close, r2) + self.addCleanup(os.close, w2) + + signal.set_wakeup_fd(w1) + self.assertIs(signal.set_wakeup_fd(w2), w1) + self.assertIs(signal.set_wakeup_fd(-1), w2) self.assertIs(signal.set_wakeup_fd(-1), -1) @@ -464,90 +441,6 @@ class WakeupSignalTests(unittest.TestCase): """, signal.SIGUSR1, signal.SIGUSR2, ordered=False) -@unittest.skipUnless(hasattr(socket, 'socketpair'), 'need socket.socketpair') -class WakeupSocketSignalTests(unittest.TestCase): - - @unittest.skipIf(_testcapi is None, 'need _testcapi') - def test_socket(self): - # use a subprocess to have only one thread - code = """if 1: - import signal - import socket - import struct - import _testcapi - - signum = signal.SIGINT - signals = (signum,) - - def handler(signum, frame): - pass - - signal.signal(signum, handler) - - read, write = socket.socketpair() - read.setblocking(False) - write.setblocking(False) - signal.set_wakeup_fd(write.fileno()) - - _testcapi.raise_signal(signum) - - data = read.recv(1) - if not data: - raise Exception("no signum written") - raised = struct.unpack('B', data) - if raised != signals: - raise Exception("%r != %r" % (raised, signals)) - - read.close() - write.close() - """ - - assert_python_ok('-c', code) - - @unittest.skipIf(_testcapi is None, 'need _testcapi') - def test_send_error(self): - # Use a subprocess to have only one thread. - if os.name == 'nt': - action = 'send' - else: - action = 'write' - code = """if 1: - import errno - import signal - import socket - import sys - import time - import _testcapi - from test.support import captured_stderr - - signum = signal.SIGINT - - def handler(signum, frame): - pass - - signal.signal(signum, handler) - - read, write = socket.socketpair() - read.setblocking(False) - write.setblocking(False) - - signal.set_wakeup_fd(write.fileno()) - - # Close sockets: send() will fail - read.close() - write.close() - - with captured_stderr() as err: - _testcapi.raise_signal(signum) - - err = err.getvalue() - if ('Exception ignored when trying to {action} to the signal wakeup fd' - not in err): - raise AssertionError(err) - """.format(action=action) - assert_python_ok('-c', code) - - @unittest.skipIf(sys.platform == "win32", "Not valid on Windows") class SiginterruptTest(unittest.TestCase): @@ -1097,7 +990,6 @@ def test_main(): try: support.run_unittest(GenericTests, PosixTests, InterProcessSignalTests, WakeupFDTests, WakeupSignalTests, - WakeupSocketSignalTests, SiginterruptTest, ItimerTest, WindowsSignalTests, PendingSignalsTests) finally: |