diff options
author | Guido van Rossum <guido@python.org> | 1995-03-16 15:07:38 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1995-03-16 15:07:38 (GMT) |
commit | 4f17e3e2f94f334965f304aa65056af3fcdbbca3 (patch) | |
tree | 9edd8549f6ecfd8611afd7634c2942838fdd335e | |
parent | a54754719d5f44a898b549ae8ad6940f5a04ed42 (diff) | |
download | cpython-4f17e3e2f94f334965f304aa65056af3fcdbbca3.zip cpython-4f17e3e2f94f334965f304aa65056af3fcdbbca3.tar.gz cpython-4f17e3e2f94f334965f304aa65056af3fcdbbca3.tar.bz2 |
test signal module
-rw-r--r-- | Lib/test/test_signal.py | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/Lib/test/test_signal.py b/Lib/test/test_signal.py new file mode 100644 index 0000000..bfcf517 --- /dev/null +++ b/Lib/test/test_signal.py @@ -0,0 +1,50 @@ +# Test the signal module + +import signal +import os + + +pid = os.getpid() + +# Shell script that will send us asynchronous signals +script = """ +( + set -x + sleep 2 + kill -5 %(pid)d + sleep 2 + kill -2 %(pid)d + sleep 2 + kill -3 %(pid)d +) & +""" % vars() + +def handlerA(*args): + print "handlerA", args + +HandlerBCalled = "HandlerBCalled" # Exception + +def handlerB(*args): + print "handlerB", args + raise HandlerBCalled, args + +signal.alarm(20) # Entire test lasts at most 20 sec. +signal.signal(5, handlerA) +signal.signal(2, handlerB) +signal.signal(3, signal.SIG_IGN) +signal.signal(signal.SIGALRM, signal.default_int_handler) + +os.system(script) + +print "starting pause() loop..." + +try: + while 1: + print "call pause()..." + try: + signal.pause() + print "pause() returned" + except HandlerBCalled: + print "HandlerBCalled exception caught" +except KeyboardInterrupt: + print "KeyboardInterrupt (assume the alarm() went off)" |