]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
test signal module
authorGuido van Rossum <guido@python.org>
Thu, 16 Mar 1995 15:07:38 +0000 (15:07 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 16 Mar 1995 15:07:38 +0000 (15:07 +0000)
Lib/test/test_signal.py [new file with mode: 0644]

diff --git a/Lib/test/test_signal.py b/Lib/test/test_signal.py
new file mode 100644 (file)
index 0000000..bfcf517
--- /dev/null
@@ -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)"