summaryrefslogtreecommitdiff
path: root/Lib/test/test_time.py
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2013-11-23 00:15:27 +0100
committerVictor Stinner <victor.stinner@gmail.com>2013-11-23 00:15:27 +0100
commit7bc9783a1b7ddfd8c79581164b83b1cdbc221a04 (patch)
tree15acf0000474e2532335667aa55e500af19f5b6d /Lib/test/test_time.py
parenteca52db63911789809b2449648d37fa7c1795596 (diff)
downloadcpython-7bc9783a1b7ddfd8c79581164b83b1cdbc221a04.tar.gz
Issue #19715: Ensure that consecutive calls to monotonic() are monotonic
Diffstat (limited to 'Lib/test/test_time.py')
-rw-r--r--Lib/test/test_time.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/Lib/test/test_time.py b/Lib/test/test_time.py
index faf9779a47..f3643b63ff 100644
--- a/Lib/test/test_time.py
+++ b/Lib/test/test_time.py
@@ -367,6 +367,14 @@ class TimeTestCase(unittest.TestCase):
@unittest.skipUnless(hasattr(time, 'monotonic'),
'need time.monotonic')
def test_monotonic(self):
+ # monotonic() should not go backward
+ times = [time.monotonic() for n in range(100)]
+ t1 = times[0]
+ for t2 in times[1:]:
+ self.assertGreaterEqual(t2, t1, "times=%s" % times)
+ t1 = t2
+
+ # monotonic() includes time elapsed during a sleep
t1 = time.monotonic()
time.sleep(0.5)
t2 = time.monotonic()
@@ -374,6 +382,7 @@ class TimeTestCase(unittest.TestCase):
self.assertGreater(t2, t1)
self.assertAlmostEqual(dt, 0.5, delta=0.2)
+ # monotonic() is a monotonic but non adjustable clock
info = time.get_clock_info('monotonic')
self.assertTrue(info.monotonic)
self.assertFalse(info.adjustable)