Browse Source

autotest: use builtin rover model for autotest

master
Andrew Tridgell 10 years ago
parent
commit
209896afc7
  1. 21
      Tools/autotest/apmrover2.py
  2. 7
      Tools/autotest/autotest.py
  3. 12
      Tools/autotest/pysim/util.py

21
Tools/autotest/apmrover2.py

@ -83,16 +83,10 @@ def drive_APMrover2(viewerip=None, map=False): @@ -83,16 +83,10 @@ def drive_APMrover2(viewerip=None, map=False):
if map:
options += ' --map'
sim_cmd = util.reltopdir('Tools/autotest/pysim/sim_wrapper.py') + ' --frame=rover --rate=200 --speedup=100 --home=%f,%f,%u,%u' % (
HOME.lat, HOME.lng, HOME.alt, HOME.heading)
sil = util.start_SIL('APMrover2', wipe=True)
home = "%f,%f,%u,%u" % (HOME.lat, HOME.lng, HOME.alt, HOME.heading)
sil = util.start_SIL('APMrover2', wipe=True, model='rover', home=home, speedup=10)
mavproxy = util.start_MAVProxy_SIL('APMrover2', options=options)
runsim = pexpect.spawn(sim_cmd, logfile=sys.stdout, timeout=10)
runsim.delaybeforesend = 0
runsim.expect('Starting at lat')
print("WAITING FOR PARAMETERS")
mavproxy.expect('Received [0-9]+ parameters')
@ -103,9 +97,8 @@ def drive_APMrover2(viewerip=None, map=False): @@ -103,9 +97,8 @@ def drive_APMrover2(viewerip=None, map=False):
# restart with new parms
util.pexpect_close(mavproxy)
util.pexpect_close(sil)
util.pexpect_close(runsim)
sil = util.start_SIL('APMrover2')
sil = util.start_SIL('APMrover2', model='rover', home=home, speedup=10)
mavproxy = util.start_MAVProxy_SIL('APMrover2', options=options)
mavproxy.expect('Logging to (\S+)')
logfile = mavproxy.match.group(1)
@ -114,11 +107,6 @@ def drive_APMrover2(viewerip=None, map=False): @@ -114,11 +107,6 @@ def drive_APMrover2(viewerip=None, map=False):
sim_cmd = util.reltopdir('Tools/autotest/pysim/sim_wrapper.py') + ' --frame=rover --rate=200 --speedup=100 --home=%f,%f,%u,%u' % (
HOME.lat, HOME.lng, HOME.alt, HOME.heading)
runsim = pexpect.spawn(sim_cmd, logfile=sys.stdout, timeout=10)
runsim.delaybeforesend = 0
util.pexpect_autoclose(runsim)
runsim.expect('Starting at lat')
buildlog = util.reltopdir("../buildlogs/APMrover2-test.tlog")
print("buildlog=%s" % buildlog)
if os.path.exists(buildlog):
@ -133,7 +121,7 @@ def drive_APMrover2(viewerip=None, map=False): @@ -133,7 +121,7 @@ def drive_APMrover2(viewerip=None, map=False):
util.expect_setup_callback(mavproxy, expect_callback)
expect_list_clear()
expect_list_extend([runsim, sil, mavproxy])
expect_list_extend([sil, mavproxy])
print("Started simulator")
@ -176,7 +164,6 @@ def drive_APMrover2(viewerip=None, map=False): @@ -176,7 +164,6 @@ def drive_APMrover2(viewerip=None, map=False):
mav.close()
util.pexpect_close(mavproxy)
util.pexpect_close(sil)
util.pexpect_close(runsim)
if os.path.exists('APMrover2-valgrind.log'):
os.chmod('APMrover2-valgrind.log', 0644)

7
Tools/autotest/autotest.py

@ -144,6 +144,7 @@ parser.add_option("--viewerip", default=None, help='IP address to send MAVLink a @@ -144,6 +144,7 @@ parser.add_option("--viewerip", default=None, help='IP address to send MAVLink a
parser.add_option("--map", action='store_true', default=False, help='show map')
parser.add_option("--experimental", default=False, action='store_true', help='enable experimental tests')
parser.add_option("--timeout", default=3000, type='int', help='maximum runtime in seconds')
parser.add_option("-j", default=1, type='int', help='build CPUs')
opts, args = parser.parse_args()
@ -201,13 +202,13 @@ def run_step(step): @@ -201,13 +202,13 @@ def run_step(step):
return test_prerequisites()
if step == 'build.ArduPlane':
return util.build_SIL('ArduPlane')
return util.build_SIL('ArduPlane', j=opts.j)
if step == 'build.APMrover2':
return util.build_SIL('APMrover2')
return util.build_SIL('APMrover2', j=opts.j)
if step == 'build.ArduCopter':
return util.build_SIL('ArduCopter')
return util.build_SIL('ArduCopter', j=opts.j)
if step == 'defaults.ArduPlane':
return get_default_params('ArduPlane')

12
Tools/autotest/pysim/util.py

@ -58,12 +58,12 @@ def deltree(path): @@ -58,12 +58,12 @@ def deltree(path):
def build_SIL(atype, target='sitl'):
def build_SIL(atype, target='sitl', j=1):
'''build desktop SIL'''
run_cmd("make clean",
dir=reltopdir(atype),
checkfail=True)
run_cmd("make %s" % target,
run_cmd("make -j%u %s" % (j, target),
dir=reltopdir(atype),
checkfail=True)
return True
@ -105,7 +105,7 @@ def pexpect_drain(p): @@ -105,7 +105,7 @@ def pexpect_drain(p):
except pexpect.TIMEOUT:
pass
def start_SIL(atype, valgrind=False, wipe=False, height=None, synthetic_clock=True):
def start_SIL(atype, valgrind=False, wipe=False, height=None, synthetic_clock=True, home=None, model=None, speedup=1):
'''launch a SIL instance'''
import pexpect
cmd=""
@ -121,6 +121,12 @@ def start_SIL(atype, valgrind=False, wipe=False, height=None, synthetic_clock=Tr @@ -121,6 +121,12 @@ def start_SIL(atype, valgrind=False, wipe=False, height=None, synthetic_clock=Tr
cmd += ' -H %u' % height
if synthetic_clock:
cmd += ' -S'
if home is not None:
cmd += ' --home=%s' % home
if model is not None:
cmd += ' --model=%s' % model
if speedup != 1:
cmd += ' --speedup=%f' % speedup
ret = pexpect.spawn(cmd, logfile=sys.stdout, timeout=5)
ret.delaybeforesend = 0
pexpect_autoclose(ret)

Loading…
Cancel
Save