Tools: Autotest.py: Allow autotest subtests completion
This commit is contained in:
parent
4535e749e1
commit
1fa6138ca1
@ -609,17 +609,37 @@ def run_tests(steps):
|
||||
|
||||
return passed
|
||||
|
||||
def list_subtests(*args, **kwargs):
|
||||
for vehicle in sorted(['Sub', 'Copter', 'Plane', 'Tracker', 'Rover', 'QuadPlane', 'BalanceBot', 'Helicopter']):
|
||||
|
||||
vehicle_list = ['Sub', 'Copter', 'Plane', 'Tracker', 'Rover', 'QuadPlane', 'BalanceBot', 'Helicopter']
|
||||
|
||||
|
||||
def list_subtests():
|
||||
"""Print the list of tests and tests description for each vehicle."""
|
||||
for vehicle in sorted(vehicle_list):
|
||||
tester_class = tester_class_map["test.%s" % vehicle]
|
||||
tester = tester_class("/bin/true", None)
|
||||
subtests = tester.tests()
|
||||
print("%s:" % vehicle)
|
||||
for subtest in sorted(subtests, key=lambda x : x[0]):
|
||||
for subtest in sorted(subtests, key=lambda x: x[0]):
|
||||
(name, description, function) = subtest
|
||||
print(" %s: %s" % (name, description))
|
||||
print("")
|
||||
|
||||
|
||||
def list_subtests_for_vehicle(vehicle_type):
|
||||
"""Print the list of tests for a vehicle."""
|
||||
# Check that we aren't in a sub test
|
||||
if "Test" in vehicle_type:
|
||||
vehicle_type = re.findall('[A-Z][a-z0-9]*', vehicle_type)[0]
|
||||
if vehicle_type in vehicle_list:
|
||||
tester_class = tester_class_map["test.%s" % vehicle_type]
|
||||
tester = tester_class("/bin/true", None)
|
||||
subtests = tester.tests()
|
||||
for subtest in sorted(subtests, key=lambda x: x[0]):
|
||||
(name, _, _) = subtest
|
||||
print("%s " % name, end='')
|
||||
print("") # needed to clear the trailing %
|
||||
|
||||
if __name__ == "__main__":
|
||||
''' main program '''
|
||||
os.environ['PYTHONUNBUFFERED'] = '1'
|
||||
@ -744,6 +764,21 @@ if __name__ == "__main__":
|
||||
help="force a specific AHRS type (e.g. 10 for SITL-ekf")
|
||||
parser.add_option_group(group_sim)
|
||||
|
||||
group_completion = optparse.OptionGroup(parser, "Completion helpers")
|
||||
group_completion.add_option("--list-vehicles",
|
||||
action='store_true',
|
||||
default=False,
|
||||
help='list available vehicles')
|
||||
group_completion.add_option("--list-vehicles-test",
|
||||
action='store_true',
|
||||
default=False,
|
||||
help='list available vehicle tester')
|
||||
group_completion.add_option("--list-subtests-for-vehicle",
|
||||
type='string',
|
||||
default="",
|
||||
help='list available subtests for a vehicle e.g Copter')
|
||||
parser.add_option_group(group_completion)
|
||||
|
||||
opts, args = parser.parse_args()
|
||||
|
||||
steps = [
|
||||
@ -842,6 +877,18 @@ if __name__ == "__main__":
|
||||
list_subtests()
|
||||
sys.exit(0)
|
||||
|
||||
if opts.list_subtests_for_vehicle:
|
||||
list_subtests_for_vehicle(opts.list_subtests_for_vehicle)
|
||||
sys.exit(0)
|
||||
|
||||
if opts.list_vehicles_test:
|
||||
print(' '.join(__bin_names.keys()))
|
||||
sys.exit(0)
|
||||
|
||||
if opts.list_vehicles:
|
||||
print(' '.join(vehicle_list))
|
||||
sys.exit(0)
|
||||
|
||||
util.mkdir_p(buildlogs_dirpath())
|
||||
|
||||
lckfile = buildlogs_path('autotest.lck')
|
||||
|
Loading…
Reference in New Issue
Block a user