mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-01-18 12:52:44 +01:00
dist: add testrunner shared pexpect code
This commit is contained in:
parent
ee05aca342
commit
819dfacccc
35
dist/tools/testrunner/testrunner.py
vendored
Executable file
35
dist/tools/testrunner/testrunner.py
vendored
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
# Copyright (C) 2016 Kaspar Schleiser <kaspar@schleiser.de>
|
||||||
|
# 2014 Martine Lenders <mlenders@inf.fu-berlin.de>
|
||||||
|
#
|
||||||
|
# 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 os, signal, sys, subprocess
|
||||||
|
from pexpect import spawnu, TIMEOUT, EOF
|
||||||
|
|
||||||
|
def run(testfunc, timeout=5, echo=True):
|
||||||
|
env = os.environ.copy()
|
||||||
|
child = spawnu("make term", env=env, timeout=timeout)
|
||||||
|
if echo:
|
||||||
|
child.logfile = sys.stdout
|
||||||
|
|
||||||
|
try:
|
||||||
|
subprocess.check_output(('make', 'reset'), env=env,
|
||||||
|
stderr=subprocess.PIPE)
|
||||||
|
except subprocess.CalledProcessError:
|
||||||
|
# make reset yields error on some boards even if successful
|
||||||
|
pass
|
||||||
|
try:
|
||||||
|
testfunc(child)
|
||||||
|
except TIMEOUT:
|
||||||
|
print("Timeout in expect script")
|
||||||
|
return 1
|
||||||
|
finally:
|
||||||
|
print("")
|
||||||
|
child.kill(signal.SIGKILL)
|
||||||
|
child.close()
|
||||||
|
|
||||||
|
return 0
|
Loading…
Reference in New Issue
Block a user