Commit Graph

859 Commits

Author SHA1 Message Date
Peter Barker 9f58e7df31 autotest: add test for quadplane booting in auto 2022-08-16 07:24:22 +10:00
Peter Barker bbff00dc0d autotest: be generous with mission upload timeouts
A *lot* of simulated time can pass while the Python gets its act together.  Allow a very large amount of time to pass while uploading missions.
2022-08-14 08:21:07 +10:00
Peter Barker eed9c2e38b autotest: validate kwargs to wait_and_maintain_range 2022-08-14 07:52:42 +10:00
Peter Barker fecf7c2e0c autotest: augment Plane TerrainMission to check we *do* follow the terrain 2022-08-09 14:31:14 +10:00
Peter Barker d555c49230 autotest: allow a test to override speedup
This is a crutch for poorly-behaving tests.
2022-08-08 21:33:30 +10:00
Peter Barker e92d4c6fc5 autotest: add test for WP_YAW_BEHAVIOUR 0
With behaviour 0 anbd typemask specifying ignore yaw/yaw_cds the yaw should reamin fixed
2022-08-08 21:33:03 +10:00
Peter Barker d7d473d1f9 autotest: correct assert_prearm_failure to not try to arm vehicle 2022-08-05 17:25:14 +10:00
Peter Barker f57e3668e3 autotest: do no drain mav (i.e. pause sitl) while delaying for sim time 2022-07-29 11:15:59 +10:00
Peter Barker 82bc2a7d85 autotest: adjust Plane EKF check for new configured-backend check 2022-07-28 15:53:13 +10:00
bugobliterator 2375564bb2 autotest: add test for CAN node health pre arm check 2022-07-27 18:18:03 +10:00
Peter Barker ccc25cb8d7 autotest: increase time allowed for mission download
we don't need to be particularly tight on timing here
2022-07-23 18:36:10 +10:00
Peter Barker b69a75098f autotest: avoid draining mav while waiting for motors-armed heartbeat 2022-07-23 10:56:52 +10:00
Peter Barker 82337c9058 autotest: make search of dflog for required messages faster
Doing these in parallel means we don't need to parse the large file multiple times
2022-07-22 09:13:25 +10:00
Peter Barker a306c4c506 autotest: increase timeout allowed for mavlite parameter test
the FRSky thread isn't any faster, but ArduPlane's speedup was increased.  So allow more simulated time to get the data
2022-07-21 14:31:32 +10:00
Peter Barker 3c700bdf44 autotest: disable terrain during frsky passthrough test
If terrain isn't available then our expected statustext gets blatted with one which RCTelemetry library emits
2022-07-21 14:31:32 +10:00
Peter Barker aa7987a4fb autotest: correct upload/download-mission timeouts 2022-07-21 14:31:32 +10:00
Peter Barker e27b98f47e autotest: wait for Plane to slow down after frsky test
disarming via mavlink can fail if we think we're still moving
2022-07-21 14:31:32 +10:00
Peter Barker 3e89e32d8a autotest: comment out unused context_start_custom_binary method
Broken under Python2.

Also fix some flake8 problems under flake8 under Python2
2022-07-21 09:59:40 +10:00
Peter Barker 515b79a6ca autotest: remove un-needed calls to drain_mav_unparsed
these calls are generally bad now, given we have context_collect things going on which always want to see messages coming in
2022-07-20 15:17:25 +10:00
Peter Barker a8357531d1 autotest: pause SITL process while draining mav unparsed 2022-07-20 15:17:25 +10:00
Peter Barker d2caebf39c autotest: increase time allowed for getting statustexts
frsky is run i9n a thread  - and signficiant speedsup seem to adversely affect it
2022-07-19 11:00:27 +10:00
Peter Barker 84adb059ed autotest: correct frsky text comparison bug
reusing the variable "text" here crewed up subsequent receiving of messages as it could reset the text from empty to the most recently received text.
2022-07-19 11:00:27 +10:00
Peter Barker 271b4d7d3c autotest: disable mavutil autoreconnect in drain_mav
The process may not be available
2022-07-19 11:00:27 +10:00
Peter Barker acd9fb9c0a autotest: pause/unpause SITL while draining mav
If Python can't keep up with the message volume coming from the autopilot we never manage to drain all messages from the vehicle.

So try pausing/unpausing the simulation so we can drain the link...

AT-1968.6: AP: PreArm: Radio failsafe on
AT-1969.9: AP: PreArm: Radio failsafe on
AT-1971.2: AP: PreArm: Radio failsafe on
AT-1972.4: AP: PreArm: Radio failsafe on
AT-1973.7: AP: PreArm: Radio failsafe on
AT-1974.9: AP: PreArm: Radio failsafe on
AT-1975.3: Drained 2000283 messages from mav (7218.974791/s)
AT-1975.3: Exception caught: Traceback (most recent call last):
  File "/mnt/volume_nyc3_01/autotest/APM/APM/Tools/autotest/common.py", line 699
8, in run_one_test_attempt
    self.context_pop()
  File "/mnt/volume_nyc3_01/autotest/APM/APM/Tools/autotest/common.py", line 499
3, in context_pop
    self.set_parameters(dead_parameters_dict, add_to_context=False)
2022-07-19 11:00:27 +10:00
Peter Barker e38adc7d14 autotest: pause/unpause SITL while draining mav
If Python can't keep up with the message volume coming from the autopilot we never manage to drain all messages from the vehicle.

So try pausing/unpausing the simulation so we can drain the link...

AT-1968.6: AP: PreArm: Radio failsafe on
AT-1969.9: AP: PreArm: Radio failsafe on
AT-1971.2: AP: PreArm: Radio failsafe on
AT-1972.4: AP: PreArm: Radio failsafe on
AT-1973.7: AP: PreArm: Radio failsafe on
AT-1974.9: AP: PreArm: Radio failsafe on
AT-1975.3: Drained 2000283 messages from mav (7218.974791/s)
AT-1975.3: Exception caught: Traceback (most recent call last):
  File "/mnt/volume_nyc3_01/autotest/APM/APM/Tools/autotest/common.py", line 699
8, in run_one_test_attempt
    self.context_pop()
  File "/mnt/volume_nyc3_01/autotest/APM/APM/Tools/autotest/common.py", line 499
3, in context_pop
    self.set_parameters(dead_parameters_dict, add_to_context=False)
2022-07-19 11:00:27 +10:00
Peter Barker 28ed2e3cd5 autotest: add support for building alternate binaries
e.g. adding features ordinarily compiled out
2022-07-19 09:09:05 +10:00
Peter Barker bceaa10794 autotest: add a test for rally point altitudes 2022-07-14 11:49:53 +10:00
Andrew Tridgell 2f7a8769c0 autotest: added --ubsan and --ubsan-abort to sim_vehicle.py and autotest.py
allows for undefined behaviour checking in SITL
2022-07-12 11:00:08 +10:00
Peter Barker 2ca68da77a autotest: correct setting mode by number 2022-07-12 08:51:21 +10:00
Peter Barker 7647e38f3f autotest: create get_home_tuple_from_mission method
Useful if you want to start a mission where a saved waypoint file's home location is
2022-07-10 20:59:52 +10:00
Peter Barker 86096261d0 autotest: add new wait_and_maintain_range method 2022-07-07 21:29:43 +10:00
Peter Barker 215842fe82 Tools: add tests for ICE Planes 2022-07-01 19:33:51 +10:00
Peter Barker bc12a61c9a autotest: use slightly faster recv_msg call in drain_mav
Cuts out some code in pymavlink's recv_match which we don't need here.  We even explicitly don't run the idle hooks which pymavlink supplied when we're running under drain_mav
2022-06-30 09:46:13 +10:00
Peter Barker 208554d402 autotest: correct diagnostic message 2022-06-29 21:03:42 +10:00
Peter Barker f6816f38dc autotest: add timeout in drain_mav
At large speedups we can create more telemetry than we can consume.  Detect that and raise an exception, assuming we should be able to drain anything within 2 minutes
2022-06-29 21:03:42 +10:00
Peter Barker 08ae4f050c autotest: fix race condition in button test
The subsequent test could end up arming the vehicle based on this left-over state.
2022-06-16 21:24:31 +10:00
Peter Barker 39a0ecbb4b autotest: check rate is configured after we do the rate check
This is just to make sure that the autopilot isn't losing the configuration somehow.
2022-06-16 10:04:08 +10:00
Peter Barker 0697ce19d2 autotest: tidy wait_disarmed 2022-06-15 09:11:51 +10:00
Peter Barker b550949766 autotest: scale SITL RC input according to speedup
Too slow when running at 100 times speedup
2022-06-13 21:41:41 +10:00
Peter Barker 171bdd9e5b autotest: better diagnostics for mission transfer 2022-06-12 15:56:53 +10:00
Peter Barker e02d50d0e8 autotest: increase allowed time for mission item download
Because we're involving round-trip times to the Python and back, we need to allow more time to pass on the autopilot when downloading very large missions.  Add a factor based on speedup
2022-06-12 15:56:53 +10:00
Peter Barker ad4fc316ec autotest: increase sample period for HIGH_LATENCY2 test
Should be useful at higher speedups
2022-06-12 15:56:53 +10:00
Peter Barker bb36cedee3 autotest: correct message hook handling
Fun with closures, and not removing hooks soon enough when popping contexts.
2022-06-12 15:56:53 +10:00
Peter Barker b8407a4bec autotest: adjust current wp reset 2022-05-15 21:17:50 +10:00
Andrew Tridgell 151f17d563 autotest: reset mission on takeoff for quadplanes 2022-05-15 21:17:50 +10:00
Peter Barker 287573fff7 autotest: add test for large circle radii in NAV_LOITER_TURNS 2022-05-11 17:40:35 +10:00
Peter Barker b659360d64 autotest: test DO_CHANGE_SPEED mission item for Plane 2022-05-05 10:48:35 +10:00
Peter Barker 43b5f22c1a autotest: add test for avoidance resume-auto-or-loiter action 2022-04-21 06:59:39 +10:00
Peter Barker 1340132f6f autotest: add rangefinder test 2022-04-19 10:26:10 +10:00
Peter Barker c33f6f3a8d autotest: add tests to ensure we get BCN, RPM and PRX/PRXR log msgs 2022-04-13 16:22:19 +10:00
Peter Barker 7c526d52fe autotest: correct streaming-boolean bug for parsing of log structures from code 2022-04-06 21:54:15 +10:00
Peter Barker 55d0cf4b03 autotest: add diagnostics for log parse issues 2022-04-06 21:54:15 +10:00
Peter Barker 9f7ae1ee96 autotest: extract ids and message infos per-file, not on aggregate
Will allow for better diagnostics when something goes wrong
2022-04-06 21:54:15 +10:00
Peter Barker 582eed12bf autotest: correct extraction of fields from LogWrite messages 2022-04-05 17:57:40 +10:00
Peter Barker 62fe90caa1 autotest: add more convenience methods for checking received data 2022-04-03 09:35:09 +10:00
Peter Barker 05be2ac8c9 autotest: print mag cal progress messages when testing mag cal 2022-03-26 11:17:14 +11:00
Peter Barker 79098d1d10 autotest: correct diagnostic message symlink->link 2022-03-26 11:16:55 +11:00
Peter Barker 7a62b5429b autotest: add test for landing speed 2022-03-23 21:07:05 +11:00
Joshua Henderson fcb0538fef autotest: common check_mission_items_same loosen z to 1E-3 2022-03-16 18:41:52 +11:00
Andrew Tridgell 6fcf85edb8 autotest: more changes for plane disarm disallow 2022-03-09 17:13:45 +11:00
m 37abfb98dc autotest: Copter Pause/Continue in AUTO and GUIDED modes with SCurves 2022-03-08 13:12:36 +09:00
Peter Barker f2fe55b5da autotest: correct exception handling for Python 3.10 2022-03-07 19:36:05 +11:00
Peter Barker 3fa12152f6 autotest: add tests for high latency control protocol 2022-03-05 11:08:30 +11:00
Peter Barker 850227ffdb autotest: add test for THR_FAILSAFE==2 and throttle output 2022-03-01 10:29:37 +11:00
Peter Barker 122d97ece7 autotest: add comment clarifying what an error actually means 2022-02-28 12:47:57 +11:00
Peter Barker 7bb13e934d autotest: add support for multi-line log formats 2022-02-28 12:47:57 +11:00
Peter Barker e6c1bc2402 autotest: fix MAVFTP test 2022-02-26 10:11:19 +11:00
Peter Barker 69e0e544d1 autotest: loosen constraints on AccelCal test 2022-02-23 18:50:28 +11:00
Peter Barker 50c7576506 autotest: add log download tests for dataflash-over-mavlink
You can't download logs - but we should make sure that the codepaths are
at least crossed
2022-02-20 15:39:24 +11:00
Peter Barker 376d7ade50 autotest: use assert_receive_message to remove redundant code 2022-02-15 11:06:10 +11:00
Peter Barker fdae5f3ccc autotest: correct wait_groundspeed method 2022-02-14 14:07:47 +11:00
Peter Barker a7d3324759 autotest: increase timeout while under Valgrind 2022-02-09 22:20:31 +11:00
Peter Barker e3631aca91 autotest: print distance remaining while waiting for current wp 2022-02-09 19:27:21 +11:00
Peter Barker c12e0fa3af autotest: reset rather than reboot if required on test fail 2022-02-09 17:01:07 +11:00
Peter Barker a81a1fb19f Tools: build ArduPilot against all.xml not ardupilotmega.xml 2022-02-08 11:00:41 +11:00
Willian Galvani 6e91ae554a Tools: use relative paths for parameter files 2022-02-01 17:35:26 +11:00
VMsunghwan 5d29d945e0 autotest : Update receive
recieve -> receive
2022-01-24 18:34:21 +11:00
VMsunghwan 105fc36da5 autotest : correct in typos line 8549 Receving -> Receiving 2022-01-15 13:11:58 +11:00
Peter Barker 427c08db26 autotest: add methods for asserting received mavlink data 2022-01-04 14:37:18 +11:00
Shiv Tyagi 442e783214 Tools: fix DataFlashSITL autotest
Co-Authored-By: Peter Barker <7077857+peterbarker@users.noreply.github.com>
2021-12-25 09:14:31 +11:00
Peter Barker c9cc97edbd autotest: augment estop test with post-reboot component 2021-12-17 09:58:37 +11:00
Peter Barker 474c42f9d3 autotest: move assert_prearm_failure up 2021-12-17 09:58:37 +11:00
Peter Barker 8e3265d1f6 autotest: add a test for dataflash log message rates 2021-12-07 09:39:51 +11:00
Andrew Tridgell 9ee140cbbf Tools: revert compass parameter changes 2021-12-04 16:51:53 +11:00
Peter Barker 66395ce195 autotest: add tests for AVD_F_ALT_MIN 2021-12-04 11:35:13 +11:00
Shiv Tyagi 181eff46ac Tools: fix autotest for devo telemetry
We should pass(skip) the autotest when devo telemetry is compiled out
2021-12-01 19:16:44 +11:00
Iampete1 f52fb3148b Tools: autotest: common and arducopter: use new compass params 2021-11-30 08:14:43 +09:00
Peter Barker 746d9fda8d autotest: add --callgrind option 2021-11-29 20:46:02 +11:00
Peter Barker ad4b934b3c autotest: correct MAVFTP test for autotest server
The autotest server runs autotest.py from a directory one-up from the
ArduPilot root directory, whereas most people run it from the root
directory.  The test wasn't taking that into account, looking for a
directory which doesn't necessarily exist.

Changed to os.listdir() to find a directory to look for in the MAVFTP
output.
2021-11-29 20:44:47 +11:00
Peter Barker b4b267be67 autotest: clarify parameter download test output 2021-11-29 15:10:10 +11:00
Peter Barker 0c0c70d50e autotest: wait a long time for GPS health in HIGH_LATENCY2
We're assuming this is healthy before running the tests.  Most of the time it was, but running under Valgrind it wasn't
2021-11-29 15:10:10 +11:00
Peter Barker 48c6239851 autotest: correct resetting of commandline under Valgrind 2021-11-29 15:10:10 +11:00
Peter Barker 09f06be17e autotest: add an autotest for DO_PAUSE_CONTINUE 2021-11-25 08:18:27 +09:00
Peter Barker a7aa74ab20 autotest: add rangefinder convenience functions, fix wait_alt handling
autotest: add test for rangefinders outside their maxalt
2021-11-23 18:20:58 +11:00
Peter Barker 5025056f4e autotest: fix MSP_DJI test for Py2 2021-11-20 09:37:02 +11:00
Peter Barker b42432ea3e autotest: add trivial test for MSP 2021-11-17 12:06:07 +11:00
Shiv Tyagi 5811a62bc6 Tools: add autotest for DEVO telemetry
This adds an autotest to test if we receive data with devo telemetry correctly.
2021-11-16 11:37:10 +11:00
Peter Barker 75b9a3ff77 autotest: add test for PerfInfo tasks.txt info 2021-11-14 20:43:30 +11:00
Peter Barker 756e45cda2 autotest: add get_stacktrace method 2021-11-11 10:06:47 +11:00
Peter Barker 69d86e6896 autotest: turn draining_mav off when doing early-exit for being quiet 2021-11-11 07:23:09 +11:00
Peter Barker 2dd392ec4b autotest: read pexpects while waiting for sim time
If we do not drain pexpects regularly the ardupilot process can become blocked on terminal IO
2021-11-07 09:59:12 +11:00
Peter Barker bb973ac913 autotest: print content of sitl /proc/PID/status on death
Mysterious death ofi Copter in CI - add more debug
2021-11-06 17:22:52 +11:00
Peter Barker f86b2c1051 autotest: add sanity check that sim time is updating 2021-11-06 17:22:52 +11:00
Peter Barker 99126d3cc7 autotest: add autotest for getting yaw from moving-baseline GPS setup 2021-10-21 08:34:36 +11:00
Peter Barker 2f90abd7ea autotest: raise an exception in the case we don't load a parameters file 2021-10-21 08:34:36 +11:00
Peter Barker 0e6b0cbf35 autotest: add trivial test for MegaSquirt EFI system 2021-10-17 10:00:08 +11:00
Josh Henderson f67a4ec025 Tools: High_Latency2 Test Fix Location Distance Test 2021-10-13 19:40:45 +11:00
Josh Henderson 941cd6ebc2 Tools: arduplane.py add HIGH_LATENCY2 tests and Check Air_Temperature 2021-10-13 19:40:45 +11:00
Peter Barker 5125874681 autotest: add some tests for running multiple GPSs 2021-10-13 18:02:16 +11:00
Peter Barker 265616b582 autotest: tidy use of dump_message_verbose 2021-10-13 18:02:16 +11:00
Peter Barker 7446a28c45 autotest: augment simulated GPS tests 2021-10-13 18:02:16 +11:00
Peter Barker abd5daccbb autotest: augment HIGH_LATENCY2 test with location test 2021-10-05 10:20:44 +11:00
Peter Barker d7f037e548 autotest: add test for setting streamrates from files 2021-09-30 10:31:03 +10:00
Peter Barker b52b381673 Tools: remove mtk GPSs
These are ancient and of very poor quality.
2021-09-29 17:28:59 +10:00
Peter Barker 89c884e8f1 autotest: add test for HIGH_LATENCY2 2021-09-29 15:51:30 +10:00
Peter Barker dd36908ba4 autotest: include SBP file in those that contain log messages 2021-09-28 10:45:51 +10:00
Peter Barker e906cdf1e4 Tools: move SBP logging structures into AP_GPS 2021-09-28 10:45:51 +10:00
Josh Henderson 27bb200644 Tools: add sitl_32bit board type for sim_vehicle & autotests 2021-09-28 09:15:11 +10:00
Peter Barker bc664d77b7 autotest: add trivial test for MAVFTP using MAVProxy 2021-09-27 11:42:47 +10:00
Peter Barker ba5e94ad9a autotest: add load_generic_mission 2021-09-26 17:35:46 +10:00
Peter Barker 6ae280a5d7 autotest: test GPS input using different simulated GPSs 2021-09-25 20:48:41 +10:00
Iampete1 52a805e978 Tools: autotest: update arming swich option number 2021-09-21 09:36:24 +10:00
Peter Barker 0c84c50d70 autotest: exempt HAL_QUADPLANE_ENABLED line in log metadata gen 2021-09-14 13:55:01 +10:00
Peter Barker d7a5e460cc autotest: add tests for changing WPNAV_SPEED_{UP,DN}
and slight augment for WPNAV_SPEED
2021-09-08 21:29:38 +10:00
Peter Barker b9d62e7ff2 autotest: add test for setting multiple messages to same rate 2021-09-02 09:24:11 +10:00
yaapu 17cdb07bd5 Tools:autotest: added test for FRSky PassThrough WIND frame 0x500C 2021-08-25 17:13:16 +10:00
Gone4Dirt fba15f3035 Autotest: Update RPM param. 2021-08-25 09:36:58 +10:00
Peter Barker e263063600 autotest: a gap in the beginning of the SERVO_FTW_MASK is now allowed, test it
make sure the SERVO_FWT_MASK is valid:
  - it can have bit gaps between active channels, but channels higher than 12 are not allowed (AP_EST_TELEM limitation)
  - Explain that the FETtec ESC IDs inside the FETtec Firmware need to be contiguous and start at 1.
add tests for ESC power outages
add test that safety switch zeroes PWM for FETtec ESC
2021-08-13 16:22:37 +10:00
Peter Barker 8fc6e98900 autotest: raise exception for arm/disarm failures on switch/rc
Users were calling these without checking the return values. Make that
a non-issue
2021-08-13 13:40:28 +10:00
Peter Barker 5e81026e78 autotest: add option to hard-reset after every test 2021-08-13 08:01:20 +10:00
Peter Barker cccec5c21c autotest: add test for FRSkyD battery 2021-08-11 15:17:43 +10:00
Peter Barker abb6521127 Revert "autotest: use SIM_STATE (common.xml) instead of SIMSTATE (ardupilotmega.xml)"
This reverts commit 540a56adb8.

Polling this message caused issues on reboot - shouldn't be a problem
but is.

Retrying that showed that the Tracker GUIDED test failed reliably due to
a yaw problem.
2021-08-07 16:18:05 +10:00
Peter Barker 540a56adb8 autotest: use SIM_STATE (common.xml) instead of SIMSTATE (ardupilotmega.xml)
It is a useful superset
2021-08-05 18:35:11 +10:00
Peter Barker 27fcb3a100 autotest: fix simstate error message 2021-08-05 18:35:11 +10:00
Peter Barker ca35d01baa autotest: move upload_simple_relhome_mission up 2021-08-05 10:38:03 +10:00
Josh Henderson 162b3b70cf Autotest: use MAV_POS_TARGET_TYPE_MASK, remove POS_TYPE_MASK_FORCE 2021-08-03 12:48:38 +10:00
Andrew Tridgell e6f15ed6c0 autotest: cope with WriteStreaming() in doc tests 2021-08-03 10:23:36 +10:00
Andrew Tridgell a0da76243d autotest: reboot after AHRS_ORIENTATION test
the EKF can be left very unhappy by this test
2021-07-31 10:01:14 +10:00
Peter Barker 2ae483cee0 autotest: stop uploading artifacts to autotest server
github action's CI is good at this
2021-07-30 11:32:59 +10:00
Peter Barker 7929122f49 autotest: improve AHRS trim test 2021-07-28 17:20:28 +10:00
Peter Barker 909decc5be autotest: move wait_attitude up to common.py 2021-07-28 17:20:28 +10:00
Peter Barker da3ff2c142 autotest: add test for live change of AHRS orientation 2021-07-27 17:28:09 +10:00
Peter Barker 04ddc9de03 autotest: correct order of progress vs action in set-param 2021-07-27 16:51:48 +10:00
Peter Barker e1884bcd6e autotest: run dumpstack/dumpcore on stuck SITL process 2021-07-27 16:51:48 +10:00
Peter Barker eff4bc4cfb autotest: drain pexpects in set_parameters loop
This loop doesn't self.mav.recv(), so the idle loop isn't called, so the
pexpects aren't drained.  That can cause ArduPilot to block on stderr if
it is trying to print a stacktrace, for example
2021-07-21 17:05:17 +10:00
Peter Barker 43a4ea734f autotest: add some diagnostics for missing processes 2021-07-21 15:50:50 +10:00
Peter Barker 571ae46b0f Tools: split yaw-vehicle-for-mount-roi test out 2021-07-19 18:16:13 +10:00
Andrew Tridgell 618fa156c7 autotest: added --replay option to autotest
make for easy creation of EKF replay logs
2021-07-16 21:13:53 +10:00
Peter Barker 743ed05367 autotest: detect ap-*.core as we do core.* files 2021-07-08 15:46:07 +10:00
Andrew Tridgell 3a7075fc65 autotest: fixed config error loop test 2021-07-08 07:56:51 +10:00