diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2015-03-12 15:19:01 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2015-03-12 15:19:01 (GMT) |
commit | 945c82eea3072b41c09dd7c9cdc75a1f24e0ce59 (patch) | |
tree | b4b9df22ef99c26908dc9d1003f74325a4d5d9fd /Lib | |
parent | f7cc3fccadae5f2bb764b16808806b7d1849871b (diff) | |
download | cpython-945c82eea3072b41c09dd7c9cdc75a1f24e0ce59.zip cpython-945c82eea3072b41c09dd7c9cdc75a1f24e0ce59.tar.gz cpython-945c82eea3072b41c09dd7c9cdc75a1f24e0ce59.tar.bz2 |
test
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/eintrdata/eintr_tester.py | 17 | ||||
-rw-r--r-- | Lib/test/test_signal.py | 17 |
2 files changed, 26 insertions, 8 deletions
diff --git a/Lib/test/eintrdata/eintr_tester.py b/Lib/test/eintrdata/eintr_tester.py index 40dca84..8547576 100644 --- a/Lib/test/eintrdata/eintr_tester.py +++ b/Lib/test/eintrdata/eintr_tester.py @@ -252,8 +252,23 @@ class SocketEINTRTest(EINTRBaseTest): lambda path: os.close(os.open(path, os.O_WRONLY))) +@unittest.skipUnless(hasattr(signal, "setitimer"), "requires setitimer()") +class TimeEINTRTest(EINTRBaseTest): + """ EINTR tests for the time module. """ + + def test_sleep(self): + t0 = time.monotonic() + time.sleep(2) + signal.alarm(0) + dt = time.monotonic() - t0 + self.assertGreaterEqual(dt, 1.9) + + def test_main(): - support.run_unittest(OSEINTRTest, SocketEINTRTest) + support.run_unittest( + OSEINTRTest, + SocketEINTRTest, + TimeEINTRTest) if __name__ == "__main__": diff --git a/Lib/test/test_signal.py b/Lib/test/test_signal.py index 774fc80..6ecff9e 100644 --- a/Lib/test/test_signal.py +++ b/Lib/test/test_signal.py @@ -419,17 +419,20 @@ class WakeupSignalTests(unittest.TestCase): TIMEOUT_HALF = 5 signal.alarm(1) - before_time = time.time() + # We attempt to get a signal during the sleep, # before select is called - time.sleep(TIMEOUT_FULL) - mid_time = time.time() - dt = mid_time - before_time - if dt >= TIMEOUT_HALF: - raise Exception("%s >= %s" % (dt, TIMEOUT_HALF)) + try: + select.select([], [], [], TIMEOUT_FULL) + except InterruptedError: + pass + else: + raise Exception("select() was not interrupted") + + before_time = time.time() select.select([read], [], [], TIMEOUT_FULL) after_time = time.time() - dt = after_time - mid_time + dt = after_time - before_time if dt >= TIMEOUT_HALF: raise Exception("%s >= %s" % (dt, TIMEOUT_HALF)) """, signal.SIGALRM) |