From 39a8fc63bc9150e3a70bf754c3798f98040c041c Mon Sep 17 00:00:00 2001 From: Dave Potts Date: Sun, 2 Sep 2018 10:00:46 +0100 Subject: [PATCH] Fixing #73 - sleep to actually sleep for the duration passed --- lib/sleep.py | 6 ++++-- lib/test_sleep.py | 8 ++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/sleep.py b/lib/sleep.py index 4da57f4..d653872 100644 --- a/lib/sleep.py +++ b/lib/sleep.py @@ -9,8 +9,10 @@ def sleep_ms(duration): time.sleep_ms(duration) def sleep(duration): - # todo: deepsleep? - time.sleep(duration) + start_time = time.ticks_ms() + end_time = start_time + duration * 1000 + while time.ticks_ms() < end_time: + wfi() def wfi(): # todo: this is fake diff --git a/lib/test_sleep.py b/lib/test_sleep.py index 977b667..b653f92 100644 --- a/lib/test_sleep.py +++ b/lib/test_sleep.py @@ -3,12 +3,16 @@ ___license___ = "MIT" ___dependencies___ = ["upip:unittest", "sleep"] -import unittest, sleep +import unittest, sleep, time class TestSleep(unittest.TestCase): def test_sleep(self): - sleep.sleep_ms(100) + sleep_secs = 5 + time_before = time.ticks_ms() + time_after = time_before + 1000 * sleep_secs + sleep.sleep(sleep_secs) + self.assertTrue(time.ticks_ms() >= time_after) if __name__ == '__main__': unittest.main()