[Python-Dev] signal.alarm(3) in trunk test_socketserver.py

Trent Nelson tnelson at onresolve.com
Wed Mar 5 04:25:15 CET 2008


> r61099 added the following to trunk/Lib/test/test_socketserver.py:
>> if __name__ == "__main__":
> test_main()
> + signal.alarm(3) # Shutdown shouldn't take more than 3 seconds.
>
Actually, signal.alarm() was introduced all over the place in that revision. I understand the intent of this commit was to speed up the runtime of this test (something like 28s -> 0.3s was quoted in the commit log). FWIW, runtime of the test with the following patch on Windows is 0.125s:
Index: test_socketserver.py
===================================================================
--- test_socketserver.py (revision 61233)
+++ test_socketserver.py (working copy)
@@ -28,6 +28,9 @@
 HAVE_UNIX_SOCKETS = hasattr(socket, "AF_UNIX")
 HAVE_FORKING = hasattr(os, "fork") and os.name != "os2"
+def signal_alarm(n):
+ if hasattr(signal, 'alarm'):
+ signal.alarm(n)
 def receive(sock, n, timeout=20):
 r, w, x = select.select([sock], [], [], timeout)
@@ -99,7 +102,7 @@
 """Test all socket servers."""
 def setUp(self):
- signal.alarm(20) # Kill deadlocks after 20 seconds.
+ signal_alarm(20) # Kill deadlocks after 20 seconds.
 self.port_seed = 0
 self.test_files = []
@@ -112,7 +115,7 @@
 except os.error:
 pass
 self.test_files[:] = []
- signal.alarm(0) # Didn't deadlock.
+ signal_alarm(0) # Didn't deadlock.
 def pickaddr(self, proto):
 if proto == socket.AF_INET:
@@ -267,4 +270,4 @@
 if __name__ == "__main__":
 test_main()
- signal.alarm(3) # Shutdown shouldn't take more than 3 seconds.
+ signal_alarm(3) # Shutdown shouldn't take more than 3 seconds.


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /