tests/periph_rtt: add automatic testing script
This commit is contained in:
parent
aee4771a42
commit
6a570f3a82
37
tests/periph_rtt/tests/01-run.py
Executable file
37
tests/periph_rtt/tests/01-run.py
Executable file
@ -0,0 +1,37 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
# Copyright (C) 2019 Inria
|
||||||
|
#
|
||||||
|
# This file is subject to the terms and conditions of the GNU Lesser
|
||||||
|
# General Public License v2.1. See the file LICENSE in the top level
|
||||||
|
# directory for more details.
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
from testrunner import run
|
||||||
|
|
||||||
|
|
||||||
|
PRECISION = 0.05 # 5%
|
||||||
|
MAX_HELLOS = 5
|
||||||
|
|
||||||
|
|
||||||
|
def testfunc(child):
|
||||||
|
child.expect(r'This test will display \'Hello\' every (\d+) seconds')
|
||||||
|
period = int(child.match[1])
|
||||||
|
child.expect_exact('Initializing the RTT driver')
|
||||||
|
child.expect(r'RTT now: \d+')
|
||||||
|
child.expect(r'Setting initial alarm to now \+ {} s \(\d+\)'
|
||||||
|
.format(period))
|
||||||
|
child.expect_exact('Done setting up the RTT, wait for many Hellos')
|
||||||
|
start = time.time()
|
||||||
|
for _ in range(MAX_HELLOS):
|
||||||
|
child.expect_exact('Hello\r\n', timeout=period + 1)
|
||||||
|
|
||||||
|
# Verify timings
|
||||||
|
elapsed = time.time() - start
|
||||||
|
assert elapsed > (MAX_HELLOS * period * (1 - PRECISION))
|
||||||
|
assert elapsed < (MAX_HELLOS * period * (1 + PRECISION))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
sys.exit(run(testfunc))
|
||||||
Loading…
x
Reference in New Issue
Block a user