From: Gregory P. Smith Date: Sun, 24 Jun 2012 06:46:37 +0000 (-0700) Subject: Speed up test_io by >2x by reducing the sleep time using setitimer instead of X-Git-Tag: v3.3.0b1~90^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8150492f11f17e2a09f7deb7af706536bc326c98;p=python Speed up test_io by >2x by reducing the sleep time using setitimer instead of alarm for the signal tests. --- diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py index 95ecd90a8e..28b4f060ec 100644 --- a/Lib/test/test_io.py +++ b/Lib/test/test_io.py @@ -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)