]> granicus.if.org Git - python/commitdiff
Speed up test_io by >2x by reducing the sleep time using setitimer instead of
authorGregory P. Smith <greg@krypto.org>
Sun, 24 Jun 2012 06:46:37 +0000 (23:46 -0700)
committerGregory P. Smith <greg@krypto.org>
Sun, 24 Jun 2012 06:46:37 +0000 (23:46 -0700)
alarm for the signal tests.

Lib/test/test_io.py

index 95ecd90a8ecf8fcceb510bd767e4d1d1b656cc49..28b4f060eccd1dae48b3fcd572a453145a07c5e2 100644 (file)
@@ -2868,7 +2868,7 @@ class SignalsTest(unittest.TestCase):
         try:
             wio = self.io.open(w, **fdopen_kwargs)
             t.start()
-            signal.alarm(1)
+            signal.setitimer(signal.ITIMER_REAL, 0.1)
             # Fill the pipe enough that the write will be blocking.
             # It will be interrupted by the timer armed above.  Since the
             # other thread has read one byte, the low-level write will
@@ -2912,7 +2912,7 @@ class SignalsTest(unittest.TestCase):
         r, w = os.pipe()
         wio = self.io.open(w, **fdopen_kwargs)
         try:
-            signal.alarm(1)
+            signal.setitimer(signal.ITIMER_REAL, 0.1)
             # Either the reentrant call to wio.write() fails with RuntimeError,
             # or the signal handler raises ZeroDivisionError.
             with self.assertRaises((ZeroDivisionError, RuntimeError)) as cm:
@@ -2947,7 +2947,7 @@ class SignalsTest(unittest.TestCase):
         try:
             rio = self.io.open(r, **fdopen_kwargs)
             os.write(w, b"foo")
-            signal.alarm(1)
+            signal.setitimer(signal.ITIMER_REAL, 0.1)
             # Expected behaviour:
             # - first raw read() returns partial b"foo"
             # - second raw read() returns EINTR
@@ -2991,13 +2991,13 @@ class SignalsTest(unittest.TestCase):
         t.daemon = True
         def alarm1(sig, frame):
             signal.signal(signal.SIGALRM, alarm2)
-            signal.alarm(1)
+            signal.setitimer(signal.ITIMER_REAL, 0.1)
         def alarm2(sig, frame):
             t.start()
         signal.signal(signal.SIGALRM, alarm1)
         try:
             wio = self.io.open(w, **fdopen_kwargs)
-            signal.alarm(1)
+            signal.setitimer(signal.ITIMER_REAL, 0.1)
             # Expected behaviour:
             # - first raw write() is partial (because of the limited pipe buffer
             #   and the first alarm)