Use monotonic clock for measuring intervals in tests. (#19659)
This way we won't get spurious timeouts from clock changes.
diff --git a/scripts/tests/chiptest/test_definition.py b/scripts/tests/chiptest/test_definition.py
index e672f07..548ca72 100644
--- a/scripts/tests/chiptest/test_definition.py
+++ b/scripts/tests/chiptest/test_definition.py
@@ -119,7 +119,7 @@
def __waitFor(self, waitForString, server_process, outpipe):
logging.debug('Waiting for %s' % waitForString)
- start_time = time.time()
+ start_time = time.monotonic()
ready, self.lastLogIndex = outpipe.CapturedLogContains(
waitForString, self.lastLogIndex)
while not ready:
@@ -128,7 +128,7 @@
(waitForString, server_process.returncode))
logging.error(died_str)
raise Exception(died_str)
- if time.time() - start_time > 10:
+ if time.monotonic() - start_time > 10:
raise Exception('Timeout while waiting for %s' % waitForString)
time.sleep(0.1)
ready, self.lastLogIndex = outpipe.CapturedLogContains(
diff --git a/scripts/tests/run_test_suite.py b/scripts/tests/run_test_suite.py
index 5dc802c..5983f50 100755
--- a/scripts/tests/run_test_suite.py
+++ b/scripts/tests/run_test_suite.py
@@ -235,14 +235,14 @@
for i in range(iterations):
logging.info("Starting iteration %d" % (i+1))
for test in context.obj.tests:
- test_start = time.time()
+ test_start = time.monotonic()
try:
test.Run(runner, apps_register, paths, pics_file)
- test_end = time.time()
+ test_end = time.monotonic()
logging.info('%-20s - Completed in %0.2f seconds' %
(test.name, (test_end - test_start)))
except Exception:
- test_end = time.time()
+ test_end = time.monotonic()
logging.exception('%s - FAILED in %0.2f seconds' %
(test.name, (test_end - test_start)))
apps_register.uninit()