summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_binop.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2016-09-25 17:36:23 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2016-09-25 17:36:23 (GMT)
commitb02f8fc3afe6a8632f8898b990615e51244e23af (patch)
treefd03da0087983104cfcaf9b5b1c34d25cdb1d1c1 /Lib/test/test_binop.py
parente6f0199c190754cf0da60f98f85e2503109e692d (diff)
downloadcpython-b02f8fc3afe6a8632f8898b990615e51244e23af.zip
cpython-b02f8fc3afe6a8632f8898b990615e51244e23af.tar.gz
cpython-b02f8fc3afe6a8632f8898b990615e51244e23af.tar.bz2
Issue #11957: Restored re tests for passing count and maxsplit as positional
arguments.
Diffstat (limited to 'Lib/test/test_binop.py')
0 files changed, 0 insertions, 0 deletions
nal on %s" % sys.platform process_pid = os.getpid() signalled_all=thread.allocate_lock() def registerSignals((for_usr1, for_usr2, for_alrm)): usr1 = signal.signal(signal.SIGUSR1, for_usr1) usr2 = signal.signal(signal.SIGUSR2, for_usr2) alrm = signal.signal(signal.SIGALRM, for_alrm) return usr1, usr2, alrm # The signal handler. Just note that the signal occured and # from who. def handle_signals(sig,frame): signal_blackboard[sig]['tripped'] += 1 signal_blackboard[sig]['tripped_by'] = thread.get_ident() # a function that will be spawned as a separate thread. def send_signals(): os.kill(process_pid, signal.SIGUSR1) os.kill(process_pid, signal.SIGUSR2) signalled_all.release() class ThreadSignals(unittest.TestCase): """Test signal handling semantics of threads. We spawn a thread, have the thread send two signals, and wait for it to finish. Check that we got both signals and that they were run by the main thread. """ def test_signals(self): signalled_all.acquire() self.spawnSignallingThread() signalled_all.acquire() # the signals that we asked the kernel to send # will come back, but we don't know when. # (it might even be after the thread exits # and might be out of order.) If we haven't seen # the signals yet, send yet another signal and # wait for it return. if signal_blackboard[signal.SIGUSR2]['tripped'] == 0 \ or signal_blackboard[signal.SIGUSR2]['tripped'] == 0: signal.alarm(1) signal.pause() signal.alarm(0) self.assertEqual( signal_blackboard[signal.SIGUSR1]['tripped'], 1) self.assertEqual( signal_blackboard[signal.SIGUSR1]['tripped_by'], thread.get_ident()) self.assertEqual( signal_blackboard[signal.SIGUSR2]['tripped'], 1) self.assertEqual( signal_blackboard[signal.SIGUSR2]['tripped_by'], thread.get_ident()) signalled_all.release() def spawnSignallingThread(self): thread.start_new_thread(send_signals, ()) def test_main(): global signal_blackboard signal_blackboard = { signal.SIGUSR1 : {'tripped': 0, 'tripped_by': 0 }, signal.SIGUSR2 : {'tripped': 0, 'tripped_by': 0 }, signal.SIGALRM : {'tripped': 0, 'tripped_by': 0 } } oldsigs = registerSignals((handle_signals, handle_signals, handle_signals)) try: run_unittest(ThreadSignals) finally: registerSignals(oldsigs) if __name__ == '__main__': test_main()