def check_logs(step): """Check for log files from a step.""" print("check step: ", step) if step.startswith('fly.'): vehicle = step[4:] elif step.startswith('drive.'): vehicle = step[6:] else: return logs = glob.glob("logs/*.BIN") for log in logs: bname = os.path.basename(log) newname = buildlogs_path("%s-%s" % (vehicle, bname)) print("Renaming %s to %s" % (log, newname)) shutil.move(log, newname) corefile = "core" if os.path.exists(corefile): newname = buildlogs_path("%s.core" % vehicle) print("Renaming %s to %s" % (corefile, newname)) shutil.move(corefile, newname) try: util.run_cmd('/bin/cp build/sitl/bin/* %s' % buildlogs_dirpath(), directory=util.reltopdir('.')) except Exception: print("Unable to save binary")
def build_all(): """Run the build_all.sh script.""" print("Running build_all.sh") if util.run_cmd(util.reltopdir('Tools/scripts/build_all.sh'), directory=util.reltopdir('.')) != 0: print("Failed build_all.sh") return False return True
def build_parameters(): """Run the param_parse.py script.""" print("Running param_parse.py") if util.run_cmd(util.reltopdir('Tools/autotest/param_metadata/param_parse.py'), directory=util.reltopdir('.')) != 0: print("Failed param_parse.py") return False return True
def __init__(self): self.date = time.asctime() self.githash = util.run_cmd('git rev-parse HEAD', output=True, directory=util.reltopdir('.')).strip() self.tests = [] self.files = [] self.images = []
def build_works(self): self.progress("Building") autotest = util.reltopdir("Tools/autotest/autotest.py") try: ret = util.run_cmd([autotest, self.autotest_build]) except subprocess.CalledProcessError: return False return ret == 0
def build_parameters(): """Run the param_parse.py script.""" print("Running param_parse.py") for vehicle in 'ArduPlane', 'ArduCopter', 'ArduSub', 'APMrover2', 'AntennaTracker': if util.run_cmd([util.reltopdir('Tools/autotest/param_metadata/param_parse.py'), '--vehicle', vehicle], directory=util.reltopdir('.')) != 0: print("Failed param_parse.py (%s)" % vehicle) return False return True
def run_clang_scan_build(): """Run Clang Scan-build utility.""" if util.run_cmd("scan-build python waf configure", directory=util.reltopdir('.')) != 0: print("Failed scan-build-configure") return False if util.run_cmd("scan-build python waf clean", directory=util.reltopdir('.')) != 0: print("Failed scan-build-clean") return False if util.run_cmd("scan-build python waf build", directory=util.reltopdir('.')) != 0: print("Failed scan-build-build") return False return True
def build_parameters(): """Run the param_parse.py script.""" print("Running param_parse.py") for vehicle in all_vehicles(): if util.run_cmd([param_parse_filepath(), '--vehicle', vehicle], directory=util.reltopdir('.')) != 0: print("Failed param_parse.py (%s)" % vehicle) return False return True
def build_parameters(): """Run the param_parse.py script.""" print("Running param_parse.py") if util.run_cmd( util.reltopdir('Tools/autotest/param_metadata/param_parse.py'), directory=util.reltopdir('.')) != 0: print("Failed param_parse.py") return False return True
def convert_gpx(): """Convert any tlog files to GPX and KML.""" mavlog = glob.glob(buildlogs_path("*.tlog")) for m in mavlog: util.run_cmd(util.reltopdir("modules/mavlink/pymavlink/tools/mavtogpx.py") + " --nofixcheck " + m) gpx = m + '.gpx' kml = m + '.kml' util.run_cmd('gpsbabel -i gpx -f %s -o kml,units=m,floating=1,extrude=1 -F %s' % (gpx, kml), checkfail=False) util.run_cmd('zip %s.kmz %s.kml' % (m, m), checkfail=False) util.run_cmd("mavflightview.py --imagefile=%s.png %s" % (m, m)) return True
def __init__(self): self.date = time.asctime() self.githash = util.run_cmd('git rev-parse HEAD', output=True, directory=util.reltopdir('.')).strip() if sys.version_info.major >= 3: self.githash = self.githash.decode('utf-8') self.tests = [] self.files = [] self.images = []
def build_works(self): self.progress("Building") if self.autotest: return self.build_works_autotest() try: ret = util.run_cmd(["./waf", "configure", "--board", self.board]) except subprocess.CalledProcessError: return False if ret != 0: return False try: ret = util.run_cmd(["./waf", "build", "--target", self.target_binary]) except subprocess.CalledProcessError: return False if ret != 0: return False return True
def build_parameters(): """Run the param_parse.py script.""" print("Running param_parse.py") for vehicle in 'ArduPlane', 'ArduCopter', 'ArduSub', 'APMrover2', 'AntennaTracker': if util.run_cmd([ util.reltopdir('Tools/autotest/param_metadata/param_parse.py'), '--vehicle', vehicle ], directory=util.reltopdir('.')) != 0: print("Failed param_parse.py (%s)" % vehicle) return False return True
def build_devrelease(): """Run the build_devrelease.sh script.""" print("Running build_devrelease.sh") # copy the script as it changes git branch, which can change the script while running orig = util.reltopdir('Tools/scripts/build_devrelease.sh') copy = util.reltopdir('./build_devrelease.sh') shutil.copy2(orig, copy) if util.run_cmd(copy, directory=util.reltopdir('.')) != 0: print("Failed build_devrelease.sh") return False return True
def build_binaries(): """Run the build_binaries.sh script.""" print("Running build_binaries.sh") import shutil # copy the script as it changes git branch, which can change the script while running orig = util.reltopdir('Tools/scripts/build_binaries.sh') copy = util.reltopdir('./build_binaries.sh') shutil.copyfile(orig, copy) shutil.copymode(orig, copy) if util.run_cmd(copy, directory=util.reltopdir('.')) != 0: print("Failed build_binaries.sh") return False return True
def check_logs(step): """Check for log files from a step.""" print("check step: ", step) if step.startswith('fly.'): vehicle = step[4:] elif step.startswith('drive.'): vehicle = step[6:] else: return logs = glob.glob("logs/*.BIN") for log in logs: bname = os.path.basename(log) newname = util.reltopdir("../buildlogs/%s-%s" % (vehicle, bname)) print("Renaming %s to %s" % (log, newname)) os.rename(log, newname) corefile = "core" if os.path.exists(corefile): newname = util.reltopdir("../buildlogs/%s.core" % vehicle) print("Renaming %s to %s" % (corefile, newname)) os.rename(corefile, newname) util.run_cmd('/bin/cp A*/A*.elf ../buildlogs', directory=util.reltopdir('.'))
def build_binaries(): """Run the build_binaries.py script.""" print("Running build_binaries.py") # copy the script (and various libraries used by the script) as it # changes git branch, which can change the script while running for thing in "build_binaries.py", "generate_manifest.py", "gen_stable.py", "build_binaries_history.py": orig = util.reltopdir('Tools/scripts/%s' % thing) copy = util.reltopdir('./%s' % thing) shutil.copy2(orig, copy) if util.run_cmd("./build_binaries.py", directory=util.reltopdir('.')) != 0: print("Failed build_binaries.py") return False return True
def check_logs(step): """Check for log files from a step.""" print("check step: ", step) if step.startswith('test.'): vehicle = step[5:] else: return logs = glob.glob("logs/*.BIN") for log in logs: bname = os.path.basename(log) newname = buildlogs_path("%s-%s" % (vehicle, bname)) print("Renaming %s to %s" % (log, newname)) shutil.move(log, newname) corefile = "core" if os.path.exists(corefile): newname = buildlogs_path("%s.core" % vehicle) print("Renaming %s to %s" % (corefile, newname)) shutil.move(corefile, newname) try: util.run_cmd('/bin/cp build/sitl/bin/* %s' % buildlogs_dirpath(), directory=util.reltopdir('.')) except Exception: print("Unable to save binary")
def build_binaries(): """Run the build_binaries.py script.""" print("Running build_binaries.py") # copy the script as it changes git branch, which can change the script while running orig = util.reltopdir('Tools/scripts/build_binaries.py') copy = util.reltopdir('./build_binaries.py') shutil.copy2(orig, copy) # also copy generate_manifest library: orig_gm = util.reltopdir('Tools/scripts/generate_manifest.py') copy_gm = util.reltopdir('./generate_manifest.py') shutil.copy2(orig_gm, copy_gm) if util.run_cmd(copy, directory=util.reltopdir('.')) != 0: print("Failed build_binaries.py") return False return True
def convert_gpx(): """Convert any tlog files to GPX and KML.""" mavlog = glob.glob(buildlogs_path("*.tlog")) passed = True for m in mavlog: util.run_cmd(mavtogpx_filepath() + " --nofixcheck " + m) gpx = m + '.gpx' kml = m + '.kml' try: util.run_cmd('gpsbabel -i gpx -f %s ' '-o kml,units=m,floating=1,extrude=1 -F %s' % (gpx, kml)) except subprocess.CalledProcessError as e: passed = False try: util.run_cmd('zip %s.kmz %s.kml' % (m, m)) except subprocess.CalledProcessError as e: passed = False util.run_cmd("mavflightview.py --imagefile=%s.png %s" % (m, m)) return passed
def convert_gpx(): """Convert any tlog files to GPX and KML.""" mavlog = glob.glob(buildlogs_path("*.tlog")) passed = True for m in mavlog: util.run_cmd(mavtogpx_filepath() + " --nofixcheck " + m) gpx = m + '.gpx' kml = m + '.kml' try: util.run_cmd('gpsbabel -i gpx -f %s ' '-o kml,units=m,floating=1,extrude=1 -F %s' % (gpx, kml)) except subprocess.CalledProcessError: passed = False try: util.run_cmd('zip %s.kmz %s.kml' % (m, m)) except subprocess.CalledProcessError: passed = False util.run_cmd("mavflightview.py --imagefile=%s.png %s" % (m, m)) return passed
def run_step(step): """Run one step.""" # remove old logs util.run_cmd('/bin/rm -f logs/*.BIN logs/LASTLOG.TXT') if step == "prerequisites": return test_prerequisites() build_opts = { "j": opts.j, "debug": opts.debug, "clean": not opts.no_clean, "configure": not opts.no_configure, "extra_configure_args": opts.waf_configure_args, } vehicle_binary = None if step == 'build.ArduPlane': vehicle_binary = 'bin/arduplane' if step == 'build.APMrover2': vehicle_binary = 'bin/ardurover' if step == 'build.ArduCopter': vehicle_binary = 'bin/arducopter' if step == 'build.AntennaTracker': vehicle_binary = 'bin/antennatracker' if step == 'build.Helicopter': vehicle_binary = 'bin/arducopter-heli' if step == 'build.ArduSub': vehicle_binary = 'bin/ardusub' if vehicle_binary is not None: return util.build_SITL(vehicle_binary, **build_opts) binary = binary_path(step, debug=opts.debug) if step.startswith("defaults"): vehicle = step[9:] return get_default_params(vehicle, binary) fly_opts = { "viewerip": opts.viewerip, "use_map": opts.map, "valgrind": opts.valgrind, "gdb": opts.gdb, "gdbserver": opts.gdbserver, "breakpoints": opts.breakpoint, "frame": opts.frame, } if opts.speedup is not None: fly_opts["speedup"] = opts.speedup if step == 'fly.ArduCopter': tester = arducopter.AutoTestCopter(binary, **fly_opts) return tester.autotest() if step == 'fly.CopterAVC': tester = arducopter.AutoTestHeli(binary, **fly_opts) return tester.autotest() if step == 'fly.ArduPlane': tester = arduplane.AutoTestPlane(binary, **fly_opts) return tester.autotest() if step == 'fly.QuadPlane': tester = quadplane.AutoTestQuadPlane(binary, **fly_opts) return tester.autotest() if step == 'drive.APMrover2': tester = apmrover2.AutoTestRover(binary, **fly_opts) return tester.autotest() if step == 'drive.balancebot': tester = balancebot.AutoTestBalanceBot(binary, **fly_opts) return tester.autotest() if step == 'dive.ArduSub': tester = ardusub.AutoTestSub(binary, **fly_opts) return tester.autotest() specific_test_to_run = find_specific_test_to_run(step) if specific_test_to_run is not None: return run_specific_test(specific_test_to_run, binary, **fly_opts) if step == 'build.All': return build_all() if step == 'build.Binaries': return build_binaries() if step == 'build.examples': return build_examples() if step == 'run.examples': return examples.run_examples(debug=opts.debug, valgrind=False, gdb=False) if step == 'build.Parameters': return build_parameters() if step == 'convertgpx': return convert_gpx() if step == 'build.unit_tests': return build_unit_tests() if step == 'run.unit_tests': return run_unit_tests() raise RuntimeError("Unknown step %s" % step)
def run_step(step): """Run one step.""" # remove old logs util.run_cmd('/bin/rm -f logs/*.BIN logs/LASTLOG.TXT') if step == "prerequisites": return test_prerequisites() build_opts = { "j": opts.j, "debug": opts.debug, "clean": not opts.no_clean, "configure": not opts.no_configure, } if step == 'build.ArduPlane': return util.build_SITL('bin/arduplane', **build_opts) if step == 'build.APMrover2': return util.build_SITL('bin/ardurover', **build_opts) if step == 'build.ArduCopter': return util.build_SITL('bin/arducopter', **build_opts) if step == 'build.AntennaTracker': return util.build_SITL('bin/antennatracker', **build_opts) if step == 'build.Helicopter': return util.build_SITL('bin/arducopter-heli', **build_opts) if step == 'build.ArduSub': return util.build_SITL('bin/ardusub', **build_opts) binary = binary_path(step, debug=opts.debug) if step.startswith("default"): vehicle = step[8:] return get_default_params(vehicle, binary) fly_opts = { "viewerip": opts.viewerip, "use_map": opts.map, "valgrind": opts.valgrind, "gdb": opts.gdb, "gdbserver": opts.gdbserver, } if opts.speedup is not None: fly_opts["speedup"] = opts.speedup if step == 'fly.ArduCopter': return arducopter.fly_ArduCopter(binary, frame=opts.frame, **fly_opts) if step == 'fly.CopterAVC': return arducopter.fly_CopterAVC(binary, **fly_opts) if step == 'fly.ArduPlane': return arduplane.fly_ArduPlane(binary, **fly_opts) if step == 'fly.QuadPlane': return quadplane.fly_QuadPlane(binary, **fly_opts) if step == 'drive.APMrover2': return apmrover2.drive_APMrover2(binary, frame=opts.frame, **fly_opts) if step == 'dive.ArduSub': return ardusub.dive_ArduSub(binary, **fly_opts) if step == 'build.All': return build_all() if step == 'build.Binaries': return build_binaries() if step == 'build.DevRelease': return build_devrelease() if step == 'build.Examples': return build_examples() if step == 'build.Parameters': return build_parameters() if step == 'convertgpx': return convert_gpx() raise RuntimeError("Unknown step %s" % step)
def run_step(step): """Run one step.""" # remove old logs util.run_cmd('/bin/rm -f logs/*.BIN logs/LASTLOG.TXT') if step == "prerequisites": return test_prerequisites() if step == 'build.ArduPlane': return util.build_SITL('bin/arduplane', j=opts.j, debug=opts.debug) if step == 'build.APMrover2': return util.build_SITL('bin/ardurover', j=opts.j, debug=opts.debug) if step == 'build.ArduCopter': return util.build_SITL('bin/arducopter', j=opts.j, debug=opts.debug) if step == 'build.AntennaTracker': return util.build_SITL('bin/antennatracker', j=opts.j, debug=opts.debug) if step == 'build.Helicopter': return util.build_SITL('bin/arducopter-heli', j=opts.j, debug=opts.debug) if step == 'build.ArduSub': return util.build_SITL('bin/ardusub', j=opts.j, debug=opts.debug) binary = binary_path(step, debug=opts.debug) if step.startswith("default"): vehicle = step[8:] return get_default_params(vehicle, binary) if step == 'fly.ArduCopter': return arducopter.fly_ArduCopter(binary, viewerip=opts.viewerip, use_map=opts.map, valgrind=opts.valgrind, gdb=opts.gdb, frame=opts.frame, gdbserver=opts.gdbserver) if step == 'fly.CopterAVC': return arducopter.fly_CopterAVC(binary, viewerip=opts.viewerip, use_map=opts.map, valgrind=opts.valgrind, gdb=opts.gdb, frame=opts.frame, gdbserver=opts.gdbserver) if step == 'fly.ArduPlane': return arduplane.fly_ArduPlane(binary, viewerip=opts.viewerip, use_map=opts.map, valgrind=opts.valgrind, gdb=opts.gdb, gdbserver=opts.gdbserver) if step == 'fly.QuadPlane': return quadplane.fly_QuadPlane(binary, viewerip=opts.viewerip, use_map=opts.map, valgrind=opts.valgrind, gdb=opts.gdb, gdbserver=opts.gdbserver) if step == 'drive.APMrover2': return apmrover2.drive_APMrover2(binary, viewerip=opts.viewerip, use_map=opts.map, valgrind=opts.valgrind, gdb=opts.gdb, frame=opts.frame, gdbserver=opts.gdbserver) if step == 'dive.ArduSub': return ardusub.dive_ArduSub(binary, viewerip=opts.viewerip, use_map=opts.map, valgrind=opts.valgrind, gdb=opts.gdb, gdbserver=opts.gdbserver) if step == 'build.All': return build_all() if step == 'build.Binaries': return build_binaries() if step == 'build.DevRelease': return build_devrelease() if step == 'build.Examples': return build_examples() if step == 'build.Parameters': return build_parameters() if step == 'convertgpx': return convert_gpx() raise RuntimeError("Unknown step %s" % step)
def run_step(step): """Run one step.""" # remove old logs util.run_cmd('/bin/rm -f logs/*.BIN logs/LASTLOG.TXT') if step == "prerequisites": return test_prerequisites() build_opts = { "j": opts.j, "debug": opts.debug, "clean": not opts.no_clean, "configure": not opts.no_configure, "extra_configure_args": opts.waf_configure_args, } vehicle_binary = None if step == 'build.Plane': vehicle_binary = 'bin/arduplane' if step == 'build.Rover': vehicle_binary = 'bin/ardurover' if step == 'build.Copter': vehicle_binary = 'bin/arducopter' if step == 'build.Tracker': vehicle_binary = 'bin/antennatracker' if step == 'build.Helicopter': vehicle_binary = 'bin/arducopter-heli' if step == 'build.Sub': vehicle_binary = 'bin/ardusub' if vehicle_binary is not None: return util.build_SITL(vehicle_binary, **build_opts) binary = binary_path(step, debug=opts.debug) if step.startswith("defaults"): vehicle = step[9:] return get_default_params(vehicle, binary) fly_opts = { "viewerip": opts.viewerip, "use_map": opts.map, "valgrind": opts.valgrind, "gdb": opts.gdb, "lldb": opts.lldb, "gdbserver": opts.gdbserver, "breakpoints": opts.breakpoint, "disable_breakpoints": opts.disable_breakpoints, "frame": opts.frame, "_show_test_timings": opts.show_test_timings, } if opts.speedup is not None: fly_opts["speedup"] = opts.speedup # handle "test.Copter" etc: if step in tester_class_map: t = tester_class_map[step](binary, **fly_opts) return (t.autotest(), t) specific_test_to_run = find_specific_test_to_run(step) if specific_test_to_run is not None: return run_specific_test(specific_test_to_run, binary, **fly_opts) if step == 'build.All': return build_all() if step == 'build.Binaries': return build_binaries() if step == 'build.examples': return build_examples() if step == 'run.examples': return examples.run_examples(debug=opts.debug, valgrind=False, gdb=False) if step == 'build.Parameters': return build_parameters() if step == 'convertgpx': return convert_gpx() if step == 'build.unit_tests': return build_unit_tests() if step == 'run.unit_tests': return run_unit_tests() raise RuntimeError("Unknown step %s" % step)
def run_step(step): """Run one step.""" # remove old logs util.run_cmd('/bin/rm -f logs/*.BIN logs/LASTLOG.TXT') if step == "prerequisites": return test_prerequisites() build_opts = { "j": opts.j, "debug": opts.debug, "clean": not opts.no_clean, "configure": not opts.no_configure, "extra_configure_args": opts.waf_configure_args, } vehicle_binary = None if step == 'build.ArduPlane': vehicle_binary = 'bin/arduplane' if step == 'build.APMrover2': vehicle_binary = 'bin/ardurover' if step == 'build.ArduCopter': vehicle_binary = 'bin/arducopter' if step == 'build.AntennaTracker': vehicle_binary = 'bin/antennatracker' if step == 'build.Helicopter': vehicle_binary = 'bin/arducopter-heli' if step == 'build.ArduSub': vehicle_binary = 'bin/ardusub' if vehicle_binary is not None: return util.build_SITL(vehicle_binary, **build_opts) binary = binary_path(step, debug=opts.debug) if step.startswith("defaults"): vehicle = step[9:] return get_default_params(vehicle, binary) fly_opts = { "viewerip": opts.viewerip, "use_map": opts.map, "valgrind": opts.valgrind, "gdb": opts.gdb, "gdbserver": opts.gdbserver, "breakpoints": opts.breakpoint, "frame": opts.frame, "_show_test_timings": opts.show_test_timings, } if opts.speedup is not None: fly_opts["speedup"] = opts.speedup if step == 'fly.ArduCopter': tester = arducopter.AutoTestCopter(binary, **fly_opts) return tester.autotest() if step == 'fly.CopterAVC': tester = arducopter.AutoTestHeli(binary, **fly_opts) return tester.autotest() if step == 'fly.ArduPlane': tester = arduplane.AutoTestPlane(binary, **fly_opts) return tester.autotest() if step == 'fly.QuadPlane': tester = quadplane.AutoTestQuadPlane(binary, **fly_opts) return tester.autotest() if step == 'drive.APMrover2': tester = apmrover2.AutoTestRover(binary, **fly_opts) return tester.autotest() if step == 'drive.balancebot': tester = balancebot.AutoTestBalanceBot(binary, **fly_opts) return tester.autotest() if step == 'dive.ArduSub': tester = ardusub.AutoTestSub(binary, **fly_opts) return tester.autotest() specific_test_to_run = find_specific_test_to_run(step) if specific_test_to_run is not None: return run_specific_test(specific_test_to_run, binary, **fly_opts) if step == 'build.All': return build_all() if step == 'build.Binaries': return build_binaries() if step == 'build.examples': return build_examples() if step == 'run.examples': return examples.run_examples(debug=opts.debug, valgrind=False, gdb=False) if step == 'build.Parameters': return build_parameters() if step == 'convertgpx': return convert_gpx() if step == 'build.unit_tests': return build_unit_tests() if step == 'run.unit_tests': return run_unit_tests() raise RuntimeError("Unknown step %s" % step)
def run_step(step): """Run one step.""" # remove old logs util.run_cmd('/bin/rm -f logs/*.BIN logs/LASTLOG.TXT') if step == "prerequisites": return test_prerequisites() build_opts = { "j": opts.j, "debug": opts.debug, "clean": not opts.no_clean, "configure": not opts.no_configure, "math_check_indexes": opts.math_check_indexes, "extra_configure_args": opts.waf_configure_args, } if opts.Werror: build_opts['extra_configure_args'].append("--Werror") vehicle_binary = None if step == 'build.Plane': vehicle_binary = 'bin/arduplane' if step == 'build.Rover': vehicle_binary = 'bin/ardurover' if step == 'build.Copter': vehicle_binary = 'bin/arducopter' if step == 'build.Tracker': vehicle_binary = 'bin/antennatracker' if step == 'build.Helicopter': vehicle_binary = 'bin/arducopter-heli' if step == 'build.Sub': vehicle_binary = 'bin/ardusub' if step == 'build.SITLPeriphGPS': vehicle_binary = 'sitl_periph_gps.bin/AP_Periph' if step == 'build.Replay': return util.build_replay(board='SITL') if vehicle_binary is not None: if len(vehicle_binary.split(".")) == 1: return util.build_SITL(vehicle_binary, **build_opts) else: return util.build_SITL(vehicle_binary.split(".")[1], board=vehicle_binary.split(".")[0], **build_opts) binary = binary_path(step, debug=opts.debug) if step.startswith("defaults"): vehicle = step[9:] return get_default_params(vehicle, binary) supplementary_binaries = [] if step in suplementary_test_binary_map: for supplementary_test_binary in suplementary_test_binary_map[step]: config_name = supplementary_test_binary.split('.')[0] binary_name = supplementary_test_binary.split('.')[1] instance_num = 0 if len(supplementary_test_binary.split('.')) >= 3: instance_num = int(supplementary_test_binary.split('.')[2]) supplementary_binaries.append([ util.reltopdir( os.path.join('build', config_name, 'bin', binary_name)), '-I {}'.format(instance_num) ]) # we are running in conjunction with a supplementary app # can't have speedup opts.speedup = 1.0 else: supplementary_binaries = [] fly_opts = { "viewerip": opts.viewerip, "use_map": opts.map, "valgrind": opts.valgrind, "gdb": opts.gdb, "lldb": opts.lldb, "gdbserver": opts.gdbserver, "breakpoints": opts.breakpoint, "disable_breakpoints": opts.disable_breakpoints, "frame": opts.frame, "_show_test_timings": opts.show_test_timings, "force_ahrs_type": opts.force_ahrs_type, "logs_dir": buildlogs_dirpath(), "sup_binaries": supplementary_binaries, } if opts.speedup is not None: fly_opts["speedup"] = opts.speedup # handle "test.Copter" etc: if step in tester_class_map: # create an instance of the tester class: global tester tester = tester_class_map[step](binary, **fly_opts) # run the test and return its result and the tester itself return (tester.autotest(), tester) # handle "test.Copter.CPUFailsafe" etc: specific_test_to_run = find_specific_test_to_run(step) if specific_test_to_run is not None: return run_specific_test(specific_test_to_run, binary, **fly_opts) if step == 'build.All': return build_all() if step == 'build.Binaries': return build_binaries() if step == 'build.examples': return build_examples() if step == 'run.examples': return examples.run_examples(debug=opts.debug, valgrind=False, gdb=False) if step == 'build.Parameters': return build_parameters() if step == 'convertgpx': return convert_gpx() if step == 'build.unit_tests': return build_unit_tests() if step == 'run.unit_tests': return run_unit_tests() if step == 'clang-scan-build': return run_clang_scan_build() raise RuntimeError("Unknown step %s" % step)
def run_step(step): """Run one step.""" # remove old logs util.run_cmd('/bin/rm -f logs/*.BIN logs/LASTLOG.TXT') if step == "prerequisites": return test_prerequisites() build_opts = { "j": opts.j, "debug": opts.debug, "clean": not opts.no_clean, "configure": not opts.no_configure, } vehicle_binary = None if step == 'build.ArduPlane': vehicle_binary = 'bin/arduplane' if step == 'build.APMrover2': vehicle_binary = 'bin/ardurover' if step == 'build.ArduCopter': vehicle_binary = 'bin/arducopter' if step == 'build.AntennaTracker': vehicle_binary = 'bin/antennatracker' if step == 'build.Helicopter': vehicle_binary = 'bin/arducopter-heli' if step == 'build.ArduSub': vehicle_binary = 'bin/ardusub' if vehicle_binary is not None: return util.build_SITL(vehicle_binary, **build_opts) binary = binary_path(step, debug=opts.debug) if step.startswith("defaults"): vehicle = step[9:] return get_default_params(vehicle, binary) fly_opts = { "viewerip": opts.viewerip, "use_map": opts.map, "valgrind": opts.valgrind, "gdb": opts.gdb, "gdbserver": opts.gdbserver, } if opts.speedup is not None: fly_opts["speedup"] = opts.speedup if step == 'fly.ArduCopter': arducopter = AutoTestCopter(binary, frame=opts.frame, **fly_opts) return arducopter.autotest() if step == 'fly.CopterAVC': arducopter = AutoTestCopter(binary, **fly_opts) return arducopter.autotest_heli() if step == 'fly.ArduPlane': arduplane = AutoTestPlane(binary, **fly_opts) return arduplane.autotest() if step == 'fly.QuadPlane': quadplane = AutoTestQuadPlane(binary, **fly_opts) return quadplane.autotest() if step == 'drive.APMrover2': apmrover2 = AutoTestRover(binary, frame=opts.frame, **fly_opts) return apmrover2.autotest() if step == 'dive.ArduSub': ardusub = AutoTestSub(binary, **fly_opts) return ardusub.autotest() if step == 'build.All': return build_all() if step == 'build.Binaries': return build_binaries() if step == 'build.DevRelease': return build_devrelease() if step == 'build.Examples': return build_examples() if step == 'build.Parameters': return build_parameters() if step == 'convertgpx': return convert_gpx() raise RuntimeError("Unknown step %s" % step)
def run_step(step): """Run one step.""" # remove old logs util.run_cmd('/bin/rm -f logs/*.BIN logs/LASTLOG.TXT') if step == "prerequisites": return test_prerequisites() if step == 'build.ArduPlane': return util.build_SITL('bin/arduplane', j=opts.j, debug=opts.debug) if step == 'build.APMrover2': return util.build_SITL('bin/ardurover', j=opts.j, debug=opts.debug) if step == 'build.ArduCopter': return util.build_SITL('bin/arducopter', j=opts.j, debug=opts.debug) if step == 'build.AntennaTracker': return util.build_SITL('bin/antennatracker', j=opts.j, debug=opts.debug) if step == 'build.Helicopter': return util.build_SITL('bin/arducopter-heli', j=opts.j, debug=opts.debug) binary = binary_path(step, debug=opts.debug) if step == 'defaults.ArduPlane': return get_default_params('ArduPlane', binary) if step == 'defaults.ArduCopter': return get_default_params('ArduCopter', binary) if step == 'defaults.APMrover2': return get_default_params('APMrover2', binary) if step == 'fly.ArduCopter': return arducopter.fly_ArduCopter(binary, viewerip=opts.viewerip, use_map=opts.map, valgrind=opts.valgrind, gdb=opts.gdb) if step == 'fly.CopterAVC': return arducopter.fly_CopterAVC(binary, viewerip=opts.viewerip, use_map=opts.map, valgrind=opts.valgrind, gdb=opts.gdb) if step == 'fly.ArduPlane': return arduplane.fly_ArduPlane(binary, viewerip=opts.viewerip, use_map=opts.map, valgrind=opts.valgrind, gdb=opts.gdb) if step == 'fly.QuadPlane': return quadplane.fly_QuadPlane(binary, viewerip=opts.viewerip, use_map=opts.map, valgrind=opts.valgrind, gdb=opts.gdb) if step == 'drive.APMrover2': return apmrover2.drive_APMrover2(binary, viewerip=opts.viewerip, use_map=opts.map, valgrind=opts.valgrind, gdb=opts.gdb) if step == 'build.All': return build_all() if step == 'build.Binaries': return build_binaries() if step == 'build.DevRelease': return build_devrelease() if step == 'build.Examples': return build_examples() if step == 'build.Parameters': return build_parameters() if step == 'convertgpx': return convert_gpx() raise RuntimeError("Unknown step %s" % step)