Commit Graph

153 Commits

Author SHA1 Message Date
Peter Barker 584013de58 Tools: autotest: correct debug for precision 2019-02-07 08:50:08 +11:00
Peter Barker 657e1bee5a Tools: autotest: use absolute path for rover avoidance fence
This stops us making the assumption MAVProxy's cwd is the ArduPilot git
root
2019-02-06 09:32:10 +11:00
Peter Barker fa37ad344b Tools: autotest: refactor setting of rc defaults 2019-02-04 08:00:07 +11:00
Peter Barker 2834fd8017 Tools: autotest: add test for channel override cancel 2019-02-01 11:48:01 +11:00
Peter Barker 7aa1d51585 Tools: autotest: move balancebot to new tests structure 2018-12-18 10:06:09 +11:00
cclauss 89be497897 Tools: Undefined name: 'AutoTestTimeoutException'
[flake8](http://flake8.pycqa.org) testing of https://github.com/ArduPilot/ardupilot on Python 3.7.1

$ __flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics__
```
./Tools/autotest/apmrover2.py:688:27: F821 undefined name 'AutoTestTimeoutException'
                    raise AutoTestTimeoutException("Did not reach speed")
                          ^
./Tools/autotest/apmrover2.py:717:27: F821 undefined name 'AutoTestTimeoutException'
                    raise AutoTestTimeoutException("Did not stop")
                          ^
2     F821 undefined name 'AutoTestTimeoutException'
2
```
2018-12-17 17:53:22 +00:00
Peter Barker 28b0267b6c Tools: autotest: add timeout on Rover test_rc_overrides 2018-12-15 21:38:48 +11:00
Peter Barker 686bfc367e Tools: autotest: tee MAVProxy output to per-test file 2018-12-15 17:11:44 +11:00
Peter Barker 9eae7857dd Tools: autotest: make Rover use new tests framework 2018-12-15 10:02:11 +11:00
Peter Barker 10c27e07d4 Tools: autotest: make aux switch test more reliable 2018-12-15 10:02:11 +11:00
Peter Barker 31d6daa1ae Tools: auotest: add test to ensure components are accepted if SYSID_ENFORCE 2018-12-14 12:44:31 +11:00
Peter Barker da1f04e78c Tools: autotest: add a test for SYSID_ENFORCE 2018-12-14 12:44:31 +11:00
Peter Barker e6c30f6405 Tools: autotest: use change_mode in apmrover2 for changing modes 2018-12-14 11:10:41 +11:00
Peter Barker a320a54f66 Tools: autotest: new wait_heartbeat raises exception if none received 2018-12-14 11:10:41 +11:00
Peter Barker 984ce514a7 Tools: autotest: make Rover tests stand-alone 2018-12-12 13:46:27 +11:00
Peter Barker 0d34052cef Tools: autotest: move code up 2018-12-10 12:52:41 +09:00
Peter Barker aff81d6f76 Tools: autotest: add test for SET_MESSAGE_INTERVAL 2018-12-10 12:52:41 +09:00
Peter Barker 88a003edd9 Tools: autotest: flake8 compliance 2018-11-24 08:30:02 +11:00
Peter Barker f84370bb04 Tools: autotest: consolidate mission-loading functions
Also add sanity checks for mission loading

Tools: autotest: add missing import for arduplane.py
2018-11-16 10:06:25 +11:00
Andrew Tridgell 6b5088207b autotest: upload failed CI logs to autotest server 2018-11-10 21:23:02 +11:00
Peter Barker f290a72d9c Tools: autotest: add test for camera trigger distance 2018-10-30 15:37:18 +11:00
Peter Barker bb5aa4d195 Tools: add test for proximity avoidance switch 2018-10-30 12:10:42 +11:00
Peter Barker a66cc52573 Tools: autotest: provide description of exceptions in constructors 2018-10-19 08:52:44 +11:00
Pierre Kancir 55f4be0515 Tools: make do_set_mode function more generic 2018-10-03 16:57:01 +10:00
Peter Barker af510801f1 Tools: autotest: use RC_CHANNELS rather than RC_CHANNELS_RAW 2018-09-12 10:06:36 +10:00
Peter Barker 6e44ea13d4 Tools: autotest: do not arm vehicle before flaps test 2018-09-07 23:18:43 +10:00
Pierre Kancir d8c53bbd9c Tools: remove dependency on mavproxy for cmd_long based functions 2018-09-07 11:20:03 +10:00
Peter Barker 5d317a8ef7 Tools: autotest: clear Rover waypoints before toggling them in 2018-09-06 15:29:28 +10:00
Peter Barker 197edca772 Tools: expand test to cover use of disable-gcs-rc-overrides switch 2018-09-05 11:54:32 +10:00
Peter Barker 5c7e21d38f Tools: autotest: add test for clearing waypoints 2018-09-04 10:32:26 +10:00
Pierre Kancir f6cc934678 Tools: pep8 corrections + correct variable shadowing 2018-08-27 17:08:47 +10:00
Pierre Kancir cc8aca1619 Tools: various fixes for Copter tests
Tools: correct altitude check

Tools: correct tests syntax

Tools: add autotest syntax check on common

Tools: search for syntax mistake on autotest lambda

Tools: put copter in hover trottle to prevent crash

Tools: reboot after baterry failsafe test

Tools: copter takeoff wait_ready_to_arm before arming

Tools: arm copter after land on RTL

Tools: reset copter battery voltage after battery failsafe
2018-08-21 20:41:09 +10:00
Peter Barker 2a174a5dac Tools: add test for Sprayer-on-Rover 2018-08-17 15:33:35 +09:00
Peter Barker 0f7c837d2d Tools: autotest: increase timeout for RTL test
BalanceBot is slow!
2018-08-16 16:06:00 +10:00
Peter Barker 4c89fa4b75 Tools: autotest: add tests for changing modes via MAVProxy mode command 2018-08-16 16:05:19 +10:00
Pierre Kancir 2f9f793ccf Tools: add arm and disarm tests 2018-08-15 16:38:20 +10:00
Peter Barker af37e10126 Tools: autotest: factor out starting of our our mavlink connection 2018-08-04 10:07:22 +10:00
Peter Barker dab93750a0 Tools: add test for rc overrides 2018-08-03 13:07:50 +10:00
Pierre Kancir a930822d9d Tools: unify exception on os.link 2018-08-03 08:40:33 +10:00
Andrew Tridgell 6090820bdc autotest: disable the Drive Brake test in rover
this test fails far too often
2018-08-01 14:03:26 +10:00
Peter Barker b8030816b8 Tools: autotest: add tests for mode changes for Copter and Rover 2018-08-01 12:11:30 +09:00
Michael du Breuil 90216f7cb6 Tools: Slow rover test down for CI, remove unneeded variable 2018-08-01 09:19:20 +10:00
Peter Barker 6dd8dbeb40 Tools: autotest: add ability to add breakpoints in autotest 2018-07-27 09:58:15 +10:00
Peter Barker 975b8c2e5f Tools: autotest: use reboot to apply parameter changes; avoid sim restart
Previously we stopped the simulation to ensure parameter changes are
applied to the simulated vehicle.  We can now reboot the simulated
autopilot, so these patches make use of those changes.

One big advantage is that the --gdb option is in play for the applying
of the parameters to the vehicle.
2018-06-29 10:54:27 +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
Peter Barker 802e4c6315 Tools: autotest: add tests for relays 2018-04-18 20:31:55 +09: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 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 b2cb6e196c Tools: autotest: pull common MAVProxy options into common.py 2018-03-20 08:39:12 +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
Pierre Kancir 4558ef5b1e Autotest: correct Rover expected name in banner 2018-03-13 07:53:41 +09: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
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
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
Peter Barker c498f17bc8 Tools: autotest: fix apmrover2 race condition on banner 2017-10-26 17:20:38 +11:00
Peter Barker 163b354448 Tools: autotest: rover: add test for braking 2017-10-26 14:45:19 +11: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
Peter Barker 78a0298af0 Tools: autotest.py: look at EKF flags to determine armability 2017-09-15 15:57:11 +01: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 415cb41c7f
Tools: add gdbserver option to Rover autotest
commit 38297c4 missed changing Rover file
2017-08-25 02:38:12 +01:00
Peter Barker cb81f9c8b3 Tools: allow Rover to use inheritted config files 2017-07-05 17:29:55 +01:00
Peter Barker 05ea121d0c Tools: autotest: disarm rover before downloading logs 2017-06-27 03:10:43 +01:00
Peter Barker 817efe9b6d Tools: expect message for EKF readiness rather than sleeping
This solves a problem for me when running Valgrind as
30s was not sufficient
2017-01-26 16:53:13 +11:00
Pierre Kancir bec09b9a57 autotest: python3 support 2016-11-09 11:48:22 -03:00
Pierre Kancir 5786d66ea1 autotest: simplify start_sitl 2016-11-09 11:48:22 -03:00
Pierre Kancir 9e1ffcae5d Tools: update python coding style
Tools: update PrintVersion.py coding style

autotest: update python coding style

pysim: update python coding style

jsb_sim: update Python coding style

param_metadata: update Python coding style
2016-09-01 13:05:11 +10:00
Lucas De Marchi f0590581e4 autotest: standardize name of param files
Try to make the various param files to follow similar namings:

    - Lowercase the few ones using uppercase
    - Use dash to separate name components
    - Start with "copter", "plane", "rover", etc instead of the mix we
      had
    - Remove "params" from the filename since it's redundant with the
      extension
2016-08-08 10:12:14 -03:00
Pierre Kancir 19d94737a0 autotest: move all default params to default_params directory 2016-08-03 17:44:37 -03:00
priseborough e0d87bf529 autotest: Increase startup wait time to allow EKF and GPS checks to pass 2016-07-19 12:16:48 +10:00
Peter Barker b23f983459 autotest: add --gdb option to autotest.py 2016-06-27 18:14:55 -03:00
Andrew Tridgell 084a37d4fa autotest: enable LOG_REPLAY and LOG_DISARMED in autotest
this will give us the ability to analyse any EKF errors
2016-05-27 21:23:39 +10:00
Peter Barker 3548f90d3a autotest: create SIL object to hold valgrind logpath 2016-05-27 08:07:07 -03:00
Peter Barker 7b86a05722 Tools: convert autotest build.X and fly.X to use waf build system 2016-05-27 08:07:07 -03:00
Peter Barker 8774f15b9a Tools: add valgrind option to autotest.py 2016-04-22 09:42:33 +10:00
Andrew Tridgell 084b607862 autotest: updated string for "Flight plan received" 2015-11-26 12:52:19 +11:00
Grant Morphett e1b608d56d autotest: added arming to the Rover autotesting. 2015-11-11 13:39:39 +11:00
Andrew Tridgell 34689cf949 autotest: cope with mavproxy logging msg changes 2015-06-30 14:06:17 +10:00
Andrew Tridgell fe536a4b89 autotest: use internal copter sim for autotest 2015-05-05 16:56:40 +10:00
Andrew Tridgell 209896afc7 autotest: use builtin rover model for autotest 2015-05-05 16:56:39 +10:00
Andrew Tridgell 9204cab7d5 autotest: fixed rover test 2015-04-30 18:45:38 +10:00
Andrew Tridgell 5f8c05b712 autotest: fixed extraction of defaults 2015-04-20 15:12:51 +10:00
Andrew Tridgell cf15b4d4fc autotest: removed use of --nowait option 2015-03-27 18:03:24 -07:00
Andrew Tridgell 45887a5d28 autotest: run rover and copter with synthetic clock 2015-03-22 18:57:43 -07:00
Andrew Tridgell ccc449db19 autotest: removed the set of SYSID_THISMAV
this led to a race condition where some parameters were not loaded as
they were being sent with the wrong system ID
2014-02-18 15:51:25 +11:00
Andrew Tridgell 6121b9c58e autotest: switched to binary log download over MAVLink 2013-12-28 21:47:12 +11:00
Andrew Tridgell 0c37bcbb10 autotest: don't show console in autotest 2013-09-09 19:55:38 +10:00
Andrew Tridgell 93db4a4a5b autotest: consider lack of symlinks to be a soft error
some people use VMWare shared drives, which don't do hard links
2013-06-24 13:06:54 +10:00
Andrew Tridgell 21436dc1a6 autotest: fixed import of mavwp 2013-06-18 17:02:00 +10:00
Andrew Tridgell 4c9cb461d6 autotest: setup Rover autotest for Sparkfun course
this will make it easier to test around the course
2013-05-17 10:37:11 +10:00
Andrew Tridgell 168f76e76c autotest: added --map option to autotest.py 2013-05-02 20:07:04 +10:00
Andrew Tridgell 9904bcd9aa autotest: changed mavlink log names to *.tlog
easier to view in MP
2013-04-28 15:01:31 +10:00
Andrew Tridgell 5f8c8e87a8 autotest: fixed rover mission completion 2013-03-29 21:19:04 +11:00