Commit Graph

1204 Commits

Author SHA1 Message Date
Peter Barker 167553e8a5 Tools: autotest: tidy usage and simplify vehicle build steps 2018-05-11 13:43:33 +10:00
Peter Barker f3d6d8e236 Tools: autotest: make Copter tests more reliable
RTL may disarm the vehicle on completion.  We RTL at several times in
the testing, and the subsequent tests were not rearming.  This means we
had a race condition.

We now explicitly wait to be disarmed by the RTL mode, and rearm the
vehicle.

This is an interim patch until we decide whether to make each "test"
self-contained, and have a precondition of "on ground and disarmed".
2018-05-11 08:07:21 +09:00
Peter Barker 4847a61868 Tools: build all vehicles in build-with-disabled-features 2018-05-10 17:55:13 +09:00
Peter Barker 58f4b4b65d Tools: autotest: correct copter auto mission test 2018-05-09 14:23:51 +10:00
Peter Barker 513865ae4d Tools: autotest: flake8 compliance 2018-05-09 14:23:51 +10:00
Karthik Desai 40cd0cd17f Tools: autotest: Use the generic run_test.
If any of the tests throws an exception, it will be caught by the generic test function
that collects all errors and displays them before passing the result to the vehicle testcode.
Hence the name of the test and the exception that got raised get printed in a single
location. This nicely reduces code duplication.
2018-05-09 14:23:45 +10:00
Karthik Desai 7a20dd8b73 Tools: autotest: Added a generic run_test.
This function is called from every vehicle to run a test. If any of the tests throws an exception, it will be caught here, and the name of the test and the exception that got raised will be added to the fail_list
2018-05-09 14:23:40 +10:00
Karthik Desai b485867db3 Tools: autotest: Check if the mode exists in the dictionary 2018-05-09 14:23:35 +10:00
Karthik Desai d26c09ccac Tools: autotest: Add and raise exceptions for wait_* helper functions 2018-05-09 14:23:26 +10:00
Dimitri Vasilkov d2c247bb90 Added to success.txt, added UChicago to locations.txt 2018-05-08 13:42:31 -07:00
Peter Barker cb2e3424ee Tools: add kilobytes as known unit 2018-05-08 09:36:01 +10:00
Randy Mackay f8711f70c9 Tools: correct sitl rover-skid default params
steering rate P gain was too high, default is better
2018-05-05 10:13:06 +09:00
Andrew Tridgell 3b143a99bf autotest: removed sitl-debug varient 2018-05-04 18:33:53 +10:00
Andrew Tridgell 9e76555152 autotest: added --no-extra-ports option for sim_vehicle.py 2018-05-02 19:24:20 +10:00
Pierre Kancir a43183ec14 Tools: sim_vehicle.py: Allow to pass custom param file 2018-04-26 22:40:49 +01:00
Peter Barker 5b03835103 Tools: autotest: correct pattern match in get_parameter 2018-04-18 20:31:55 +09:00
Peter Barker 802e4c6315 Tools: autotest: add tests for relays 2018-04-18 20:31:55 +09:00
Karthik Desai 75ae59c0c8 Autotest: Remove frame initialisation.
This will otherwise override the --frame parameter. The init() function takes care of the initialisation
2018-04-17 23:00:04 +10:00
Pierre Kancir 332560bdf7 Tools: add Skeytech location 2018-04-12 16:34:59 +01:00
murata 0fd71f909c autotest: Add the home ground of ArduPilot drone software engineer training school in Japan. 2018-04-12 14:21:58 +09:00
Randy Mackay 8186ce0d32 Tools: add deg/s/s to valid parameter units 2018-04-05 12:14:59 +09:00
Peter Barker a03ddc6798 Tools: autotest: correct default parameter names and paths 2018-03-29 09:19:36 +11:00
Michael du Breuil 69cf009898 AutoTest: Update copter battery failsafe test 2018-03-27 22:12:21 +01:00
Peter Barker dca866c98d Tools: make parameter generation failure clearer 2018-03-26 12:39:23 +11:00
Karthik Desai 9de1813ae6 Autotest: Fix a race condition on the regression tests on Windows 2018-03-23 09:13:37 +09:00
Peter Barker 5aa8890e5b Tools: autotest: fail convertgpx if zip or gpsbabel fail 2018-03-22 09:11:44 +11:00
Peter Barker 338af9e142 Tools: correct misleading comment on per-vehicle parameter descriptions 2018-03-21 21:05:42 +11:00
Peter Barker 15450b956d Tools: sim_vehicle.py: make --tracker work again 2018-03-21 11:46:47 +11:00
chobits 8b72809e37 Tools: fix motor rpm display in flightgear 2018-03-21 08:50:04 +09:00
Peter Barker 8511c2c04b Tools: autotest: factor out apply_parameters_using_sitl
Three of our models start a SITL instance to apply parameters
then restart it so that the parameter changes can take effect.

Factor that functionality out.
2018-03-20 08:39:12 +11:00
Peter Barker fe3b882bea Tools: autotest: move close method up to common.py 2018-03-20 08:39:12 +11:00
Peter Barker 31ba99e58a Tools: autotest: use buildlogs_path for all buildlogs 2018-03-20 08:39:12 +11:00
Peter Barker b2cb6e196c Tools: autotest: pull common MAVProxy options into common.py 2018-03-20 08:39:12 +11:00
Peter Barker b908af10b7 Tools: autotest: remove non-working dump-logs script
We removed CLI from ArduPilot; this script will no longer work
2018-03-20 08:39:12 +11:00
Peter Barker 5fbb385c31 Tools: autotest: avoid exception when using Python3 on MacOSX
File "./Tools/autotest/sim_vehicle.py", line 999, in <module>
location)
File "./Tools/autotest/sim_vehicle.py", line 573, in start_vehicle
run_in_terminal_window(autotest, cmd_name, cmd)
File "./Tools/autotest/sim_vehicle.py", line 476, in
run_in_terminal_window
tabs = p.findall(out)
TypeError: cannot use a string pattern on a bytes-like object
SIM_VEHICLE: Killing tasks
2018-03-19 12:36:55 +11:00
Peter Barker b348cfa985 Tools: autotest: flake8 compliance
Taking the opportunity to make massive changes while we're destroying
history anyway.
2018-03-15 07:54:21 +09:00
Pierre Kancir 259dda810d Tools: use base class to share code between vehicle tests
Autotest: common.py add new base class and test

Autotest : Common add heartbeat handling on wait_mode timeout

Autotest: common.py add reach_heading_manual and reach_distance_manual

Autotest: new autotest implementation for Rover

Autotest : rover add drive_square test

Autotest: new autotest implementation for Copter

Autotest: new autotest implementation for Plane

Autotest: new autotest implementation for Sub

Autotest: new autotest implementation

Autotest: new autotest implementation for QuadPlane

Autotest : Sub disable GCS_Failsafe on autotest to prevent timeout. The failsafe aren't currently tested on Sub
2018-03-15 07:54:21 +09:00
Peter Barker b1b978381a Tools: correct quoting in run_in_terminal_window.sh 2018-03-15 07:40:23 +09:00
Peter Barker 5ac5a68d17 Tools: param_parse.py: replace @PREFIX in values with library prefix 2018-03-14 15:44:00 +11:00
chobits 9405c19e85 Tools: fix copter propeller animation in FlightGear multiplayer 2018-03-14 09:42:55 +09:00
Pierre Kancir b3c2e134f9 Autotest: raise set_rc timeout to prevent mavproxy to miss msg on speedup 2018-03-13 08:40:05 +09:00
Pierre Kancir 4558ef5b1e Autotest: correct Rover expected name in banner 2018-03-13 07:53:41 +09:00
Peter Barker 8b9ce3869c Tools: add bisect-helper.py
This is the start of a tool to help bisect problems with ArduPilot.

Currently it only helps bisect build errors.
2018-03-09 10:38:48 +11:00
Peter Barker 18135b4764 Tools: build-with-disabled-features: update deps 2018-02-27 07:43:13 +09:00
Peter Barker 67257e545e Tools: add how-to-use comment to build-with-disabled-features 2018-02-22 10:18:44 +10:00
Peter Barker 705e6287b9 Tools: add a build-with-disabled-features script 2018-02-22 10:18:44 +10:00
Pierre Kancir fe36c09bb0 Tools: correct Gazebo-iris param 2018-02-14 09:45:25 +09:00
Peter Barker 50ccbb5d0c Tools: autotest: correct speedup parameter handling 2018-02-13 17:15:05 +11:00
Peter Barker aeb99c675b Tools: autotest: remove racey mavproxy.expect
The autopilot could well have emitted the statustext before we
start to expect() it
2018-02-13 17:15:05 +11:00
Siddharth Purohit 8f074d52c1 autotest: fix setup of sitl for macosx 2018-01-31 12:22:23 +11:00
Andrew Tridgell ec81f905f4 autotest: added some new locations for testing 2018-01-15 11:46:02 +11:00
Stephen Dade aa7389b455 Tools: Fixed Cygwin SITL package names and made install easier for new users 2018-01-09 14:40:43 +00:00
Peter Barker 8a15c69aff Tools: add --fresh-params option to sim_vehicle.py
This will rebuild and use the XML file we generate from our
source code which conveys information about our parameters.

When using this option, "param help PARAMETERNAME" should reflect
changes made to the parameter metadata for PARAMETERNAME.
2018-01-08 14:49:35 +00:00
Patrick José Pereira 560d8b88d8 Tools: Add gazebo-bluerov2 on vehicleinfo.py
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2017-12-26 09:12:56 +11:00
Patrick José Pereira 0e6fc54a0e Tools: Add BATT_MONITOR on sub.parm
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2017-12-21 11:26:51 -05:00
Peter Barker 0b4dcdde35 Tools: param_parse.py: allow whitespace between vehicles
Also add sanity check that the vehicles you're limitting to we know
about
2017-12-16 11:08:35 +11:00
Peter Barker d1128e7be4 Tools: param_parse.py: replace comments with debug statements 2017-12-16 11:08:35 +11:00
Peter Barker eeb15d7fd5 Tools: param_parse.py: make comment consistent 2017-12-16 11:08:35 +11:00
Peter Barker 825832be93 Tools: param_parse.py: add a map for vehicle name to a true-name to be used in code
Where true-name is something like "Rover" and the normal name remains
the directory name (e.g. "APMrover2")
2017-12-16 11:08:35 +11:00
Peter Barker e0125a68e7 Tools: param_parse.py: use single regex for params everywhere 2017-12-16 11:08:35 +11:00
Peter Barker a45ab6b84c Tools: param_parse.py: correct example comment 2017-12-16 11:08:35 +11:00
Peter Barker 94afaebdb7 Tools: autotest builds each vehicle parameters individually 2017-12-16 11:08:35 +11:00
Peter Barker ea2c156c7f Tools: param_parse.py: understand tagging of parameters for specific vehicles 2017-12-16 11:08:35 +11:00
Peter Barker 8c516fb29c Tools: autotest: add max-alt fence 2017-12-13 10:04:50 +09:00
Randy Mackay 19af2f7d1d Tools: add decibel as valid param Unit 2017-12-12 07:59:41 +09:00
Andrew Tridgell 20d44136b0 autotest: fixed handling of core files 2017-12-12 08:45:56 +11:00
Peter Barker 75e8424e3f Tools: autotest: add a test for driving a simple RTL mission
In particular, we weren't setting NAV_CONTROLLER_OUTPUT.wp_dist
correctly before a recent commit from Randy
2017-12-09 22:34:07 +11:00
khancyr fac89ed437 Tools: autotest: move common functionality to common.py
Tools: don't need to pass option on first mavproxy

Tools: reformat common.py and add commun function

Tools: use new common functions

Tools: move functions from rover to commun and reorder

Tools: add and use set_rc function with timeout

Tools: fix style for pep8
2017-12-02 22:28:22 +11:00
Guglie 42e5b180cb Tools: fix sim_vehicle.py terminal tab when using --no-mavproxy 2017-12-02 09:34:10 +11:00
Peter Barker b7a293ca5f Tools: autotest: move fetching of banner and version
Moved these to before log download.

They fail randomly after log download.
2017-11-28 09:47:46 +11:00
Dr.-Ing. Amilcar Do Carmo Lucas 5c07a44a6d Tools: Fix a race condition on the regression tests on Windows
Added \r\n to the expect() string as recomended at:
http://pexpect.readthedocs.io/en/stable/overview.html#find-the-end-of-line-cr-lf-conventions
this should work on both windows and linux systems

pexpect says it will always do a minimal (non greedy) matching and docs explicitly say that a .+ expression will always return only one character. These lines in autotest are looking for \S+, which, believing the documentation, would only return one character of the log file path.
Now we know that's not true, neither for Linux or for Windows (given the logs from @karthikdesai), so I can only assume that it does a greedy match but only for the characters it has received at the time expect is called.
Apparently, in the machines we are using autotest, it isn't a problem since MAVProxy is likely fast to give its output to pexpect before the expect method is called. On @karthikdesai's machine that wasn't happening since his machine was more or less loaded.
Concluding, this looks like a correct fix in the sense that it extends the regex pattern to wait for the end of line (and probably other places could benefit from it too).
2017-11-22 17:01:05 +09:00
Patrick José Pereira df6d2659ac autotest: Add RAT Beach for ArduSub
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2017-11-20 17:27:47 +09:00
Peter Barker 2f76f83ab7 Tools: autotest: add and use progress function
Based on work done by khancir
(https://github.com/ArduPilot/ardupilot/pull/6360)

Tools: arduplane.py change print to progress function
Tools: quadplane.py change print to progress function
Tools: ardusub.py change print to progress function
2017-11-14 16:02:05 +11:00
Pierre Kancir 76bb081d60 Tools: autotest: add python headers to scripts
Tools: arduplane.py add python header

Tools: apmrover2.py add python header

Tools: arducopter.py add python header

Tools: ardusub.py add python header

Tools: quadplane.py add python header
2017-11-14 14:47:32 +11:00
Andrew Tridgell bf9779b63a autotest: default plane simulator to 'plane'
this is good enough for most people and avoids an external dependency
2017-11-06 15:44:26 +11:00
guglie e741cb28d2 fix wait_unlimited with an infinite sleep loop
this fixes issue #7180
2017-11-06 13:39:59 +11:00
Andrew Tridgell d55b66efe1 autotest: added HMAS location 2017-10-31 18:02:52 +11:00
Peter Barker 8c03425f37 Tools: enable INS batch logging during Rover autotest 2017-10-27 16:33:45 +11:00
Peter Barker c498f17bc8 Tools: autotest: fix apmrover2 race condition on banner 2017-10-26 17:20:38 +11:00
Peter Barker 93810ab42a Tools: sim_vehicle.py: clarify comment about vagrant and mavlink-out 2017-10-26 15:03:58 +11:00
Peter Barker 89fa44a224 Tools: sim_vehicle.py: flake8 compliance 2017-10-26 15:03:58 +11:00
Peter Barker 163b354448 Tools: autotest: rover: add test for braking 2017-10-26 14:45:19 +11:00
Peter Barker 47ffad7cdc Tools: autotest: copy generate_manifest aside for build_binaries.py 2017-10-26 07:57:48 +11:00
Peter Barker e3320ca953 Tools: autotest.py: run build_binaries.py instead of build_binaries.sh
Note we still copy the script sideways.  This is probably not
required for a python script.
2017-10-25 12:02:19 +11:00
Andrew Tridgell b88f2f1da3 autotest: fixed exception in convertgpx 2017-10-22 16:26:24 +11:00
Andrew Tridgell 71e2c86783 autotest: added more CMAC startup locations
this allows matching to RealFlight positions
2017-10-21 13:01:07 +11:00
Andrew Tridgell 776355ef2b autotest: fixed heli test
need to wait for motor runup
2017-09-27 20:54:21 +10:00
Peter Barker 5a19301606 Tools: autotest: add a test for setting of modes using CMD_DO_SET_MODE 2017-09-19 01:24:11 +01:00
mirkix 6bc4ab638a Tools: Add SITL tilthvec frame and default parameters 2017-09-18 21:20:39 +10:00
Peter Barker 27650c08aa Tools: autotest: use -z in place of -v for checking variable settedness
Some bash versions out there don't like -v
2017-09-18 08:26:22 +10:00
Peter Barker 78a0298af0 Tools: autotest.py: look at EKF flags to determine armability 2017-09-15 15:57:11 +01:00
Marco Robustini b4f46b14f0 Tools: add Marco's flying field to locations file 2017-09-11 17:58:01 +01:00
Peter Barker 20bfb82a7b Tools: autotest.py: add --no-clean and --no-configure options 2017-09-11 12:45:27 +10:00
Peter Barker e505635ddd Tools: sim_vehicle: make gdb-stopped work again 2017-09-11 12:30:00 +10:00
Peter Barker 2738fc34f0 Tools: autotest.py: exit if step not matched
Also, stop shadowing a variable
2017-09-08 21:51:26 +10:00
Peter Barker 6928618de8 Tools: autotest.py: allow specification of a buildlogs directory 2017-09-01 23:39:38 +10:00
Luis Vale Gonçalves c046824ce7 Added our testing location
Added testing location at Tagus Park, Oeiras, Portugal
2017-08-31 14:16:10 -07:00
Peter Barker f0096d3c7a Tools: apmrover2.py: add a test for MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES 2017-08-30 15:54:47 +01:00
Peter Barker 324d9f3c7d Tools: apmrover2.py: add a test for MAV_CMD_DO_GET_BANNER 2017-08-30 15:54:47 +01:00
Peter Barker 1b7122d733 Tools: add a --speedup parameter to autotest to control speed of all sims 2017-08-29 22:49:40 +01:00
Francisco Ferreira 2645760d19
Tools: sim_vehicle.py: fix small bug introduced in e298e87
Thanks to @cclauss for finding this
2017-08-29 12:16:23 +01:00
Peter Barker e298e87791 sim_vehicle: add --callgrind option 2017-08-28 13:47:27 +01:00
Peter Barker 24e616af7d Tools: autotest.py: factor write_fullresults 2017-08-26 17:54:32 +01:00
Peter Barker 0334cc1c88 Tools: correct copter's fly_throttle_failsafe failure case 2017-08-26 09:36:09 +10:00
Francisco Ferreira 415cb41c7f
Tools: add gdbserver option to Rover autotest
commit 38297c4 missed changing Rover file
2017-08-25 02:38:12 +01:00
Peter Barker a7b919f025 Tools: do not attach gdb to gdbserver unless --gdb is given 2017-08-24 21:37:06 +10:00
Miguel Arroyo 38297c4d19 Tools: Adds GDBServer with screen option for debugging 2017-08-24 21:37:06 +10:00
khancyr db3c387916 Tools: update relay pins for brushed motors in SITL 2017-08-24 20:10:32 +09:00
Andrew Tridgell f5d91f63d2 autotest: fixed firefly parameters 2017-08-20 09:37:00 +10:00
khancyr e116ec4eb0 Rover: update SITL parameters 2017-08-17 09:47:39 +09:00
Randy Mackay 7df73c50e8 SITL: remove unnecessary THR_MAX parameter default 2017-08-17 09:39:40 +09:00
Jacob Walser 8121091fb6 Sub: Don't configure RC params in SITL 2017-08-16 11:37:46 -04:00
Randy Mackay 9b63c8751f SITL: rover default params in alphabetical order 2017-08-15 20:47:19 +09:00
Randy Mackay 1582bd85af SITL: update rover default parameters 2017-08-15 20:47:19 +09:00
Peter Barker a2af13c17e Tools: calibrate SITL sub RC in autotest's sub parameters 2017-08-14 15:32:25 +09:00
Daniel Orbach 3c66663880 Tools: autotest.py: Squashed the code for default.* steps in run_step(). 2017-08-14 12:16:29 +10:00
Daniel Orbach 91e25bb937 Tools: autotest.py: Made use of shutil.copy2() where appropiate. 2017-08-14 12:16:29 +10:00
Daniel Orbach befd8b028b Tools: autotest.py: Moved all imports to top of file. 2017-08-14 12:16:29 +10:00
Daniel Orbach e951df7d50 Tools: autotest.py: Simplified binary_path through lookup table 2017-08-14 12:16:29 +10:00
Daniel Orbach 29ab76e714 Tools: autotest.py: Slightly cleaned up run_tests. 2017-08-14 12:16:29 +10:00
Daniel Orbach 04791139c0 Tools: autotest.py: Separated function definitions and script code. 2017-08-14 12:16:29 +10:00
Peter Barker 2437260f8a Tools: copter horizontal fence test waits for disarm then rearms 2017-08-04 17:44:43 +01:00
Peter Barker dd09bb338e Tools: wait for vehicle to disarm after handling throttle failsafe 2017-08-04 17:44:43 +01:00
Andrew Tridgell 224dc439ab Tools: updated parameters to remove ELEVON and VTAIL settings 2017-08-01 08:25:32 +10:00
Andrew Tridgell 2fb94597ba autotest: adjust default params for new mixing 2017-08-01 08:25:32 +10:00
Peter Barker c383d64954 Tools: ardusub.py: increase timeout to allow Valgrind to pass 2017-07-20 15:45:15 +10:00
Francisco Ferreira eda5d9265f
Tools: add new no-emit option to param_parse.py so that only validation is done 2017-07-18 14:15:39 +01:00
Michael du Breuil 31924e46d3 Tools: Parameters: Permit kHz as a unit 2017-07-16 08:26:52 +10:00
khancyr 5c8b8cc9a1 Tools: update rover skid param 2017-07-08 16:07:13 +09:00
Peter Barker 86d8252166 Tools: correct sim_vehicle's --tracker option 2017-07-07 16:18:37 +01:00
Peter Barker 84e4e282f0 Tools: autotest: use copter-single for most of copter-coax parameters 2017-07-05 17:34:09 +01:00
Peter Barker a6de3b6865 Tools: use heli params for most of heli-dual params 2017-07-05 17:34:09 +01:00
Peter Barker 791b1f43e9 Tools: allow heli autotest to use different frame 2017-07-05 17:34:09 +01:00
Peter Barker 9948bed2a2 Tools: use rover params for most of rover-skid params 2017-07-05 17:33:32 +01:00
Peter Barker cb81f9c8b3 Tools: allow Rover to use inheritted config files 2017-07-05 17:29:55 +01:00
Peter Barker 59647b3434 Tools: autotest: correct Copter params file handling 2017-07-05 17:29:55 +01:00
Andrew Tridgell 392d990950 autotest: added dspoiler parameters for plane
and simplify vtail and elevon parameters
2017-07-03 11:17:42 +10:00
khancyr 71bb0b24ed Autotest: remove SKID_STEER_OUT from default param 2017-06-28 18:53:51 +01:00
Peter Barker 34e611be59 Tools: autotest: wait for plane to disarm before downloading logs 2017-06-27 03:10:43 +01:00
Peter Barker 05ea121d0c Tools: autotest: disarm rover before downloading logs 2017-06-27 03:10:43 +01:00
Pierre Kancir 4270bac49e Rover: update default param file for new skid steering 2017-06-24 13:17:34 +09:00
Randy Mackay 74f5ddb823 SITL: add copter-beacon parameter file
This allows easier testing of the Beacon code in SITL
2017-06-20 20:42:36 +09:00
Jacob Walser b752594fe5 param_metadata: Markdown parameter formatter 2017-06-20 14:53:17 +10:00
Stephen Dade b6816285e5 Tools: APM source is not required to be in Cygwin dir 2017-06-14 18:03:25 +01:00
Pierre Kancir c25c92bfb6 Params: add battery monitor for SITL rover and gazebo 2017-06-07 20:29:02 +10:00
Andrew Tridgell 228cba2524 autotest: fixed default frame type in sim_vehicle.py 2017-06-02 16:53:55 +10:00
hrykyn b09ebbb891 autotest: add locations
adding location of Hata-drone-field, JAPAN
2017-05-28 07:30:53 -07:00
murata 75e770c83c Tools: add support for dodeca-hexa 2017-05-27 14:21:13 +09:00
Peter Barker 2ddf7f99b5 Tools: autotest: option to run different frame 2017-05-26 16:53:07 +09:00
Peter Barker 96cfba971c Tools: vehicleinfo: factor out a default_frame method 2017-05-26 16:53:07 +09:00