1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

tests/periph_timer_periodic: add error tolerance in timings

On a lot of platforms the peripheral timer fires in advance, adding a precision factor of 15% makes the test more reliable
This commit is contained in:
Alexandre Abadie 2021-02-10 18:20:46 +01:00
parent cb87c418f4
commit ca26a8fe6a
No known key found for this signature in database
GPG Key ID: 1C919A403CAE1405

View File

@ -6,19 +6,24 @@
# General Public License v2.1. See the file LICENSE in the top level
# directory for more details.
import os
import sys
import time
from testrunner import run
PRECISION = float(os.getenv("TEST_PERIPH_TIMER_PERIODIC_PRECISION", "0"))
def testfunc(child):
child.expect_exact('TEST START')
start = time.time()
child.expect_exact('TEST SUCCEEDED')
end = time.time()
# test should run 10 cycles with 25ms each
assert (end - start) > 0.25
assert (end - start) < 0.40
elapsed = end - start
assert elapsed > 0.25 * (1 - PRECISION), "=< 0.25s ({})".format(elapsed)
assert elapsed < 0.40 * (1 + PRECISION), "=> 0.40s ({})".format(elapsed)
if __name__ == "__main__":