You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.3 KiB
44 lines
1.3 KiB
from __future__ import print_function |
|
|
|
import os |
|
import subprocess |
|
import time |
|
|
|
from pysim import util |
|
|
|
def run_example(filepath, valgrind=False, gdb=False): |
|
cmd = [] |
|
if valgrind: |
|
cmd.append("valgrind") |
|
if gdb: |
|
cmd.append("gdb") |
|
cmd.append(filepath) |
|
print("Running: (%s)" % str(cmd)) |
|
bob = subprocess.Popen(cmd, stdin=None, close_fds=True) |
|
time.sleep(10) |
|
bob.kill() |
|
bob.wait() |
|
if bob.returncode is None: |
|
raise ValueError("Unable to kill subprocess") |
|
print("returncode: %u" % (bob.returncode)) |
|
if bob.returncode != -9: |
|
raise ValueError("Process exitted before I got to kill it (exit code=%u)" % bob.returncode) |
|
print("returncode2: %u" % (bob.returncode)) |
|
|
|
def run_examples(debug=False, valgrind=False, gdb=False): |
|
dirpath = util.reltopdir(os.path.join('build', 'linux', 'examples')) |
|
|
|
skip = { |
|
"BARO_generic": "Most linux computers don't have baros...", |
|
"RCProtocolDecoder": "This assumes specific hardware is connected", |
|
} |
|
for afile in os.listdir(dirpath): |
|
if afile in skip: |
|
print("Skipping %s: %s" % (afile, skip[afile])) |
|
continue |
|
filepath = os.path.join(dirpath, afile) |
|
if not os.path.isfile(filepath): |
|
continue |
|
run_example(filepath, valgrind=valgrind, gdb=gdb) |
|
|
|
return True
|
|
|