Commit Graph

785 Commits

Author SHA1 Message Date
Peter Barker 8fdfdebe55 autotest: pass sitl_commandline_customised up the context stack
We're running tests on the Callisto frame when we shouldn't in Copter as
the information was lost in nested Contexts.

We can only reset the SITL commandline at an actual Test level - if a
defaults file has been used then it is unclear as to what the state of
any parameter is in storage as we move between contexts
2021-05-01 17:22:36 +10:00
Peter Barker c7c4c17c68 autotest: improve change_mode debug 2021-05-01 13:25:13 +10:00
Peter Barker fc426e01c2 autotest: stop using start_test for things that aren't actually tests
start_test should only be used for top-level tests, not parts of
top-level tests
2021-04-28 13:53:46 +10:00
Peter Barker 30e8160aa1 autotest: sort logs before moving
Makes it easier to find last log in output.

Also removing pointless lamdaing of some functions
2021-04-21 13:16:24 +10:00
Peter Barker 0ee0228883 autotest: fix flapping fly-home-land-and-disarm
One of the tests just happened to be within acceptance radius of
waypoint 8 - so when we set that as a waypoint we never saw it actually
be our waypoint so the set_waypoint failed
2021-04-20 23:04:24 +10:00
Peter Barker 8643322f06 autotest: correct string we expect from MAVProxy
Was APM: now AP:
2021-04-20 14:08:12 +10:00
Peter Barker c12d1938c2 autotest: add a test for button change for changing modes 2021-04-19 14:27:45 +10:00
Peter Barker dfa342a79f autotest: correct rc-values-good debug 2021-04-03 08:59:14 +11:00
Peter Barker d2c00f7b26 autotest: ensure RC thread is killed after each run_test
Every run_test starts a thread.  del is not being called.  So clean it
up in the caller
2021-04-01 11:00:54 +11:00
Peter Barker ba972b6b46 autotest: fix --map option 2021-03-31 16:30:25 +11:00
Peter Barker e8f96efe72 autotest: wait for stats initialisation before rebooting
If the RTC time we reset parameters (STAT_RESET) is zero then we reset all parameters.

In SITL we only set that time if we see a GPS due to the AP_RTC RTC_TYPES parameter default bitmask value of 1

So if you reboot SITL fast enough while STAT_RESET is zero you can see that STAT_BOOTCNT does not increase. Easily reproducible in SITL; start with -w and type reboot in several times before SITL sees the GPS come up and you can see STAT_BOOTCNT doesn't increase.

Fix is to ensure STAT_RESET is non-zero before rebooting.
2021-03-31 13:33:39 +11:00
Peter Barker 240e2d6b28 autotest: correct pexpect handling of supplementary programs 2021-03-24 23:10:27 +11:00
Peter Barker ae7b21843e autotest: remove useless mavproxy set heartbeat directive
This has never actually worked:

2021-03-24T04:53:03.7594996Z AT-0040.3: Starting MAVProxy
2021-03-24T04:53:03.7595674Z PYTHONPATH: /__w/ardupilot/ardupilot/Tools/mavproxy_modules
2021-03-24T04:53:05.8106006Z Running: "mavproxy.py" "--master" "tcp:127.0.0.1:5762" "--aircraft" "test.ArduCopter" "--sitl=127.0.0.1:5502" "--streamrate=5" "--cmd="set heartbeat 8"" "--target-system=1" "--target-component=1" "--quadcopter" "--default-modules" "misc,terrain,wp,rally,fence,param,arm,mode,rc,cmdlong,output"
2021-03-24T04:53:05.8108569Z ERROR LOADING MAVNATIVE - falling back to python implementation
2021-03-24T04:53:05.8109340Z Connect tcp:127.0.0.1:5762 source_system=255
2021-03-24T04:53:05.8109962Z no script test.ArduCopter/mavinit.scr
2021-03-24T04:53:05.8110739Z Unknown command '"set heartbeat 8"'
2021-03-24 23:10:06 +11:00
Peter Barker 8bf1ac0347 autotest: fix and tidy the log download test
We were requesting past the end of the file
2021-03-24 14:46:48 +11:00
Peter Barker fdbbcaa506 autotest: bump default speedups for several vehicles
These tests seem to run stabley on my box with essentially no speedup
limit
2021-03-24 14:46:48 +11:00
Peter Barker 6f2de67ead autotest: augment delay_sim_time debug 2021-03-24 14:46:48 +11:00
Peter Barker d9501766c7 autotest: augment delay_sim_time debug 2021-03-24 08:57:03 +11:00
Peter Barker 073a9e3390 autotest: fix frsky passthrough test
Mainly through polling much faster, but also allowing for statustexts in
different orders from frsky/statustext
2021-03-22 18:08:44 +11:00
Peter Barker e567cca230 autotest: drain mav before receiving system_time in get_sim_time 2021-03-19 09:46:45 +11:00
Peter Barker 8901efd69d autotest: start and stop MAVProxy for alttype and surface tracking tests
autotest doesn't currently supply terrain tiles, so MAVProxy must be
started
2021-03-19 09:46:45 +11:00
Peter Barker 19e5351631 autotest: start and stop mavproxy for setpoint tests
These work in terrain frame - but autotest won't satisfy terrain
requests yet
2021-03-19 09:46:45 +11:00
Peter Barker 462ac255a3 autotest: start MAVProxy only as needed for testing 2021-03-19 09:46:45 +11:00
Peter Barker 4269cf52a2 autotest: split application of default parameters and defaultfile parameters
ensures all vehicles have LOG_DISARMED
2021-03-19 09:46:45 +11:00
Peter Barker dbee2e5d71 autotest: ignore type=0 heartbeat packets on SITL start
Until ArduCopter allocates its motors backend we emit a generic type,
for which there is no mode map in pymavlink.

So don't consider the reboot complete until we see a valid heartbeat.
2021-03-19 09:46:45 +11:00
yaapu ec15614e11 Tools:autotest: added frsky passthrough autotest for terrain message frame 0x500B 2021-03-18 21:43:48 +11:00
Peter Barker 21c124ab47 autotest: tidy set_parameters
Remove commented code, add more to the verbose option
2021-03-18 11:29:45 +11:00
Peter Barker da52e5d08c autotest: set SYSID_MYGCS in tests which need it
This was still relying on heartbeats coming from MAVProxy.  As speedup
increased those heartbeats may not come fast enough - and they really
should be coming from autotest as that's who's doing the commanding.

autotest: set SYSID_MYGCS in AFS test

autotest: set SYSID_MYGCS before setGCSfailsafe
2021-03-17 16:02:45 +11:00
Peter Barker f7d8994ce1 autotest: move assert_mission_count up, use it 2021-03-17 00:23:05 +11:00
Peter Barker 0c7f3d20a4 autotest: fix attitude test
autotest: add a get_messages_frame method

Attempts to get a set of messages as close as reasonable in time.
2021-03-16 14:19:44 +11:00
Peter Barker 4b3adb806c autotest: add test for tailsitter throttle 2021-03-16 10:41:44 +11:00
yaapu 3bfa07d35a Tools:autotest, frsky passthrough fix for long status text message test 2021-03-13 00:14:27 +11:00
bugobliterator 5074b6d336 autotest: add test case for GPS ordering
also fix flake8 issues
2021-03-12 16:32:36 +09:00
bugobliterator 48277b43e4 Tools: add autotest for checking GPS ordering 2021-03-12 16:32:36 +09:00
Peter Barker f78d7c3b25 autotest: add option to not check current wp after set_current_wp
Sometimes a waypoint is set which we'll never emit as our current
waypoint (e.g. a JUMP)
2021-03-10 09:12:39 +11:00
Peter Barker 3ddffdab9b autotest: correct wait_current_waypoint timeout behaviour 2021-03-10 09:12:39 +11:00
Peter Barker 425ab1358a autotest: tidy streamrate handling
Stop setting MAVProxy stream rates; these are neither here-nor-there now as MAVProxy will only modify its own connection's streamrates now

Stop doing the set-streamrate dance to work around MAVProxy's
set_streamrate algorithms.

Remove useless and misleading set of streamrate in Plane test; we reset
streamrates on the reboot immediately following this set.  Considering
the streamrate was never eset this was a good thing.
2021-03-05 21:34:58 +11:00
James O'Shannessy fa7be629e5 AutoTest: Make fence tests flake8 compliant 2021-03-05 14:52:46 +11:00
James O'Shannessy 01b27bdb61 AutoTest: revert change that breaks quadplane 2021-03-05 14:52:46 +11:00
James O'Shannessy 8545715837 AutoTest: Add Static Fence Tests for unallowed arming when breaching geofence 2021-03-05 14:52:46 +11:00
James O'Shannessy b2346ef6df AutoTest: Adds additional tests to ArduCopter to test autoenable and floor
Adds tests for:
* Testing auto-enable disabled (when no autoenabling of the fence is required)
* Test auto-enabled always after takeoff (when takeoff complete condition met)
* Test auto-enabled disable floor only (when land sequence begins)
* Test auto- on arm/disarm (when vehicle is armed/disarmed)
* Tests ability to land when fence is breached
2021-03-05 14:52:46 +11:00
James O'Shannessy a3efc9ad98 AutoTest: Fix MAVlite test allowing plane fence to be enabled 2021-03-05 14:52:46 +11:00
James O'Shannessy 47e76a1807 AutoTest: Move fence enable/disable to common location 2021-03-05 14:52:46 +11:00
Paul Riseborough d52594c576 Tools: Fix set_home autotest
Don't try to get home until EKF has passed alignment and GPs checks.
Use a more realistic lat/lon offset threshold
2021-03-05 12:10:01 +11:00
Peter Barker 4aed767fe9 autotest: add test for MAV_CMD_DO_SET_MISSION_CURRENT 2021-03-04 11:59:33 +11:00
Peter Barker cc83562add autotest: tidy fence handling 2021-03-02 16:54:06 +11:00
Peter Barker 4d2cf8c95b AP_Frsky_SPort: correct handling of RPM sensor data
Nails support down to just two RPM sensors for the time being.

Simplifies things (there was an issue here when I corrected RPM-in-SITL)
2021-03-02 15:41:44 +11:00
Peter Barker eb499ff731 autotest: improve frsky SPort test
- reduces verbosity as we only check the remaining items when new data
received
 - reduces repoll interval and explains why we need to re-poll
2021-03-02 15:41:44 +11:00
Peter Barker 7b251b6fd4 autotest: add diagnostics for frsky tests 2021-03-02 15:41:44 +11:00
Peter Barker 2671a2f71f autotest: fix up FRSky tests for running under Valgrind 2021-03-02 15:41:44 +11:00
Peter Barker 360512f6b0 autotest: preserve commandline customisations on reboot under valgrind 2021-03-02 15:41:44 +11:00
Peter Barker 5d1e105534 autotest: allow more time for mission upload and download
We upload some rather large missions....
2021-03-02 14:24:36 +11:00
Peter Barker 10007e2e42 autotest: load missions natively rather than using MAVProxy 2021-03-02 14:24:36 +11:00
Peter Barker 993d87469c autotest: move mission upload functions from rover to common 2021-03-02 14:24:36 +11:00
Peter Barker 34a52e9cfe autotest: use wait_statustext in place of mavproxy.expect for autorotate test 2021-03-02 13:34:09 +11:00
Peter Barker 0daa1a63d3 autotest: remove pointless fetch_parameters call
And the entire method, replace with equivalent test
2021-03-01 17:27:52 +11:00
nkruzan 3e0f9ab4e7 Tools:autotest\common.py fix text typo 2021-03-01 15:15:38 +11:00
Peter Barker 61138f342a autotest: do not time out receiving of heartbeat if running gdb
pausing indefinitely when running GDB is OK.
2021-03-01 13:44:23 +11:00
Peter Barker 9d681eecc4 autotest: move to state outside when we leave log structure
No vertical whitespace allowed in the structures...

We concatenate all of the LogStructure files; without this we remain in
state_inside and try to parse every line in the concatenation as if it
were a log structure definition
2021-02-23 12:36:33 +11:00
Peter Barker 9120882e9e autotest: print name of open dataflash log when test exception caught
The stack trace is already extremely useful... but mapping back to the
relevant dataflash log is a bit of a pain.

Adding more stuff to this method in the future might be good, too.
2021-02-21 21:35:35 +11:00
Peter Barker 148e2e751f autotest: add set_current_waypoint 2021-02-19 12:25:40 +11:00
Peter Barker b7044d3708 autotest: remove use of global expect_list 2021-02-18 18:18:30 +11:00
Peter Barker 2d17f019b6 autotest: remove pointless manipulation of expect list
start_sitl and start_mavproxy already do this stuff
2021-02-18 18:18:30 +11:00
Peter Barker dcc04ccd09 autotest: stop using MAVProxy to change modes 2021-02-18 17:38:52 +11:00
Peter Barker 2c1df16442 autotest: increase button message timeout to allow for Valgrind speed 2021-02-18 17:04:16 +11:00
Peter Barker ad06a616b8 autotest: adjust for low log transfer rate under valgrind 2021-02-18 17:04:16 +11:00
Peter Barker bcc1cb9dbb autotest: use get_parameter in place of mav's param object
This is the only place in the code that does this
2021-02-18 15:06:26 +11:00
Peter Barker 3cf1b9444f autotest: get_sim_time_cached in NMEA output test to stop losing msgs 2021-02-18 11:26:22 +11:00
Peter Barker ce61f44505 autotest: reset SITL commandline after fetching unhidden parameters
this makes a difference under Valgrind, which has to reboot slightly differently to normal SITL
2021-02-18 11:26:22 +11:00
Peter Barker 78aa729b90 autotest: flake8 compliance for common.py 2021-02-18 10:43:05 +11:00
Peter Barker 33fee211a4 autotest: extend pexpect timeouts when running under Valgrind 2021-02-17 18:16:04 +11:00
Peter Barker a292fe1b8b autotest: use wait_statustext rather than mavproxy.expect
This is important when running under Valgrind as the text can be
significantly delayed.  wait_statustext times out in simulation time,
whereas mavproxy.expect has a flat 60s timeout
2021-02-17 18:16:04 +11:00
Peter Barker e4d5a92721 autotest: add wait_distance_to_nav_target method 2021-02-13 19:34:52 +11:00
Peter Barker a5706a18af autotest: handle Py2 not having ConnectionResetError built in 2021-02-12 18:24:18 +11:00
Iampete1 904b493809 Tools: autotest, common.py remove extra comma 2021-02-11 09:20:15 +11:00
Peter Barker 4324d66c13 autotest: loosen time constraint on mavlink messages in magcal
Saw an error where we didn't get one of these in 5 seconds.

That sounds like too much.  But we'll loosen the constrain anyway
2021-02-10 09:28:45 +11:00
Peter Barker bd8384b322 autotest: break out a get_altitude method 2021-02-10 09:28:25 +11:00
Alessandro Apostoli e2aaf4c216 Tools: autotest, fix for frsky not defined error (#4) 2021-02-10 09:27:58 +11:00
Peter Barker d9dd93bcdd autotest: don't run frsky tests armed for the most part 2021-02-10 09:27:58 +11:00
Peter Barker 742d5a9fa0 autotest: add body_frame_velocity 2021-02-08 22:44:32 +11:00
Peter Barker f65bee80dc autotest: use BATTERY_STATUS to detect sub reboot
Sub doesn't implement AP_Stats so we have custom reboot detection for
it.

The current look-for-string strategy is flawed - we're missing the
string on reboot
2021-02-03 13:58:17 +11:00
Pierre Kancir e13a35abc1 Autotest: check for empty message before trying to use it 2021-02-03 12:56:01 +11:00
yaapu bb576a49b8 Tools: added autotest for frsky rpm telemetry 2021-02-03 12:49:38 +11:00
Andrew Tridgell d47afb2406 autotest: added AHRSTrim test and add trim to accel cal test
this ensures the handling of AHRS trim is correct
2021-01-25 16:24:50 +11:00
Peter Barker ad2ab333f9 Tools: autotest: allow autotest to connect directly to SITL 2021-01-24 09:25:45 +11:00
Peter Barker 8c7d63433c autotest: clear mission ourselves rather than with MAVProxy at end of test 2021-01-24 09:25:45 +11:00
Peter Barker 1fec88af21 autotest: make arming test a little more verbose 2021-01-21 22:15:16 +11:00
Peter Barker 3279400e2e autotest: disarm_with_rc_input shortcuts if it sees rudder-disarm-disabled 2021-01-21 14:25:47 +11:00
Peter Barker f452c6bb51 autotest: break out a statustext_in_collections method from wait_statustext 2021-01-21 14:25:47 +11:00
Andrew Tridgell 58b9cd2c6e autotest: added assert_reach_imu_temperature() abstraction 2021-01-21 13:09:21 +11:00
Andrew Tridgell 5a5ba26468 autotest: expanded accelcal test to check values
this checks the resulting accelcal is correct within 1%
2021-01-21 13:09:21 +11:00
Andrew Tridgell 0c3655b01f autotest: fixed epsilon handling in set_parameters 2021-01-21 13:09:21 +11:00
Peter Barker c7a6047904 autotest: add option to retry tests / create and use Test definition object 2021-01-21 10:23:17 +11:00
Peter Barker 03b2473c61 autotest: correct get_parameter_direct attempts decrement 2021-01-20 20:06:46 +11:00
Andrew Tridgell c396d15890 Revert "autotest: ensure defaults files don't set already-default-values"
This reverts commit 3d431cd4f1.

It breaks MissionPlanner SITL. We can re-apply once MissionPlanner
copes with external_model.
2021-01-20 08:54:43 +11:00
Peter Barker 3d431cd4f1 autotest: ensure defaults files don't set already-default-values
autotest: mark some vehicles as having external physics models

autotest: add default_params_filename to some vehicle info
2021-01-19 10:34:00 +11:00
Peter Barker 8f9d3909f1 autotest: model_defaults_filepath always returns a list 2021-01-19 10:34:00 +11:00
Peter Barker 30929e7f1a autotest: add verbose option to assert_sensor_state 2021-01-18 21:25:58 +11:00
Peter Barker ba1973d343 autotest: parse messages when setting parameters
This breaks some tests which are waiting on statustexts while setting
parameters
2021-01-18 15:19:39 +11:00
Randy Mackay 1f8b48e8f7 Tools: common autotest spelling fix
reach should be reached
2021-01-16 08:24:23 +09:00
Peter Barker cd8a393ac2 autotest: create own RC thread to handle setting of RC overrides
autotest: prevent method-on-undef problem in case of early test failure

autotest: plumb MAVProxy rc input back in for switch test

autotest: close off rc thread in case of timeout
2021-01-15 20:56:30 +11:00
Peter Barker e85e6d3375 autotest: use new set_parameters in place of many set_parameter calls
autotest: use set_parameters for applying from parameter file

autotest: use set_parameters in place of many set_parameter calls
2021-01-13 15:09:29 +11:00
Peter Barker 2917c75f35 autotest: add option to timeout parameter fetching in system time 2021-01-13 15:09:29 +11:00
Peter Barker 83f2f365c0 autotest: implement a more efficient set_parameters, implement set_parameter in terms of it 2021-01-13 15:09:29 +11:00
Peter Barker 8497f8fc73 autotest: correct some timeout issues around Copter takeoff 2021-01-13 12:24:17 +11:00
Peter Barker e7aefc7fe4 autotest: make polling home position quiet by default 2021-01-13 12:24:17 +11:00
Peter Barker 5318538182 autotest: reboot SITL when moving from EKF10 to EKF2 in mag test
Bad things happen when moving from one to the other...
2021-01-13 12:24:17 +11:00
Peter Barker fdb5b5e6d6 autotest: correct dataflash transfer test for long periods
This came in with a 35 second delay, which is rather spectacular given
the 5 second loop it is in.

2021-01-11T11:54:30.3046835Z dataflash_logger status
2021-01-11T11:54:30.3047406Z MANUAL> DFLogger: Active Rate(35s):408.788kB/s Block:65034 Missing:0 Fixed:0 Abandoned:0
2021-01-11T11:54:30.3048195Z Timed out looking for Active Rate\([0-9]s\):([0-9]+[.][0-9]+)
2021-01-11T11:54:30.3048801Z AT-0472.3: Exception caught: 60
2021-01-13 12:24:17 +11:00
Peter Barker 3a264e0a76 autotest: use LOG_STRUCTURE_FROM as key string (don't need library name) 2021-01-12 17:44:24 +11:00
Josh Henderson 0052e4d528 Tools: auotest add LOG_STRUCTURE_FROM_AHRS 2021-01-12 10:13:22 +11:00
Peter Barker 4d19ff6b26 autotest: prompt ArduPilot for SYSTEM_TIME message during reboot
This helps us actually execute the timeouts appropriately and thus
re-fetch the STAT_BOOTCNT parameter we use for detecting the reboot

Eliminates annoying pauses during testing.
2021-01-09 16:20:12 +11:00
Peter Barker 5120ebf2f6 autotest: add a set_parameters method 2021-01-08 23:51:33 +11:00
Andy Piper f702288ad2 autotest: correct number of logs 2021-01-02 22:30:08 +11:00
Peter Barker 38ea62c5d7 autotest: send mode change messages directly rather than via MAVProxy 2020-12-31 17:43:06 +11:00
Peter Barker d31f676c33 autotest: don't use MAVProxy for uploading using fencepoint protocol 2020-12-31 17:42:50 +11:00
Peter Barker 2b06ae9aa0 autotest: create and use a wait_sensor_state method 2020-12-31 17:42:33 +11:00
Peter Barker 7c7fb67829 autotest: fixes for AFS test 2020-12-31 17:42:20 +11:00
Peter Barker 7f79ddf3ff autotest: CRSF: remove pointless wait-ready-to-arm 2020-12-31 17:42:06 +11:00
Peter Barker 6c48a38497 autotest: avoid zero-byte-read on log download 2020-12-31 17:39:53 +11:00
Peter Barker b53b30ea51 autotest: split out a get_rc_channel_value() 2020-12-29 15:03:34 +11:00
Peter Barker 0a5eedb05a autotest: wipe and reinitialise parameters when resetting SITL commandline
Should fix this scenario:
 - Plane soaring test uses different defaults file
 - soaring test sets a parameter away from default value
 - context pop sets it back to the value in the defaults file
 - it is now in permanent storage with the default found in the
different defaults file used by the soaring test
 - we finish running the soaring test an reset the SITL command line
back to default, with the old defaults file
 - we go on to running the next test.  At this point the value for that
parameter is the default in the defaults file used by the soaring test.

Something similar applies in the Callisto test.
2020-12-25 12:18:01 +11:00
Peter Barker 0788b46374 autotest: add trivial test for Callisto 2020-12-25 12:18:01 +11:00
Peter Barker 5d23dc2314 autotest: avoid replicating enumeration value names from pymavlink 2020-12-24 00:22:52 +11:00
Pierre Kancir 06d6526ba6 Autotest: correct wait_distance_to_home comment 2020-12-24 00:22:52 +11:00
Pierre Kancir 6565309325 Autotest: add test_set_velocity_global_int tests 2020-12-24 00:22:52 +11:00
Pierre Kancir 10673122c0 Autotest: add test_set_position_global_int tests 2020-12-24 00:22:52 +11:00
Pierre Kancir 62a1fa1052 Autotest: add wait_speed_vector and wait yaw_speed functions 2020-12-24 00:22:52 +11:00
Pierre Kancir 0ca8e817d5 Autotest: wait_and_maintain add support of Vector3 2020-12-24 00:22:52 +11:00
Pierre Kancir dbaeb668f1 Autotest: add MAV_FRAME dictionary 2020-12-24 00:22:52 +11:00
Pierre Kancir 0bf7bd7f68 Autotest: add set_position mask to common.py 2020-12-24 00:22:52 +11:00
Peter Barker 4efcf16005 autotest: correct number of bytes we expect to download
We request a fixed number of bytes, which could be more or  less than the
log file size.
2020-12-18 13:35:15 +11:00
Peter Barker 8e71e2505a autotest: correct lookup for most recent log file 2020-12-18 13:35:15 +11:00
Pierre Kancir 9550721ae4 Tools: add initial_mode testing 2020-12-16 17:27:07 +09:00
Peter Barker 9ad2961664 autotest: allow regex for matching wait_statustext 2020-12-11 07:35:02 +11:00
Peter Barker cecdc798ca autotest: present strings for unexpected results in run_cmd_get_ack 2020-12-09 14:09:44 +11:00
Peter Barker 9207bd8a8a autotest: remove armability check from compass calibration test
The new prearm-checking code has shown that we're not actually armable
after all!

Even the new prearm bit won't tell you if you can arm - you have to arm
to test that!
2020-12-07 11:21:30 +11:00
Peter Barker 087300749c autotest: ensure we have position without being armable for compass cal check 2020-12-07 11:21:30 +11:00
Peter Barker 38e324f141 autotest: do not check prearm bit in dataflash-over-mavlink
We won't be armable - but the other checks we make will ensure we get
the error we are looking for

Also use a more reliable way of draining the data from the autopilot
2020-12-07 11:21:30 +11:00
Peter Barker 5707d8ecc0 autotest: check new MAV_SYS_STATUS_PREARM_CHECK in wait_ready_to_arm 2020-12-07 11:21:30 +11:00
Peter Barker 17f806cdb9 autotest: add test for execution of button-bound functions 2020-12-01 10:06:57 +11:00
Peter Barker 12f001066b autotest: split out a wait_armed function 2020-12-01 10:06:57 +11:00
Peter Barker 3f6b398a01 autotest: include EK2,EK3 and DAL LogStructures in code-defined messages 2020-11-24 15:33:37 +11:00
Peter Barker 29b913cd41 autotest: avoid using undefined fmt variable 2020-11-12 21:00:04 +11:00
Peter Barker 58bdae1b52 autotest: get Valgrind closer-to-working
This gets us past the reboot problem for the most part, where Valgrind doesn't like you exec'ing
2020-11-11 18:22:58 +11:00
Andrew Tridgell 403275beea autotest: added RBOH message 2020-11-10 16:15:45 +11:00
Andrew Tridgell 4a06641048 autotest: added RWOH message 2020-11-10 16:15:45 +11:00
Andrew Tridgell 7f0113b82d autotest: added REPH and REVH 2020-11-10 16:15:45 +11:00
Andrew Tridgell ef5baaf482 autotest: added ROFH msg 2020-11-10 16:15:45 +11:00
Andrew Tridgell 8ba067608b autotest: cope with LogStructure.h in multiple places
and allow for no docs in replay msgs
2020-11-10 16:15:45 +11:00
Andrew Tridgell 161f2a8d2f autotest: improved error msg for missing doc fields
Co-authored-by: Peter Barker <pbarker@barker.dropbear.id.au>
2020-11-10 16:15:45 +11:00
bugobliterator c72c96fa9c Tools: setup CI test for CANBus 2020-11-04 19:59:40 +11:00
Peter Barker 18330d16de autotest: add test for MAVlite 2020-10-27 10:17:53 +11:00
Buzz 586e9f80d5 AutoTest: break copter autotests into smaller "under 10 minute" chunks to speedup github actions CI 2020-10-21 18:01:47 +11:00
Peter Barker 937d7bf335 autotest: add quiet option to drain_mav 2020-10-15 16:31:41 +11:00
Peter Barker 49fd762f26 autotest: fix and re-enable button test
A recent commit to fix the setting-of-pullup-resistors in SITL makes it
possible to re-enable this.

Closes #15259
2020-10-15 08:34:08 +11:00
Peter Barker 8f1e9ebc7f autotest: reset camera feedback rate if exception is raised 2020-10-12 13:48:15 +11:00
Peter Barker d13f6acc66 autotest: quieten mav draining 2020-10-08 17:21:35 +09:00
Peter Barker 1d0735f206 autotest: add a poll_message method 2020-10-07 11:54:02 +11:00
Peter Barker 669622c614 autotest: improve use of SITL-is-running
ATM if the SITL binary dies we don't catch it anywhere.  This might
become part of the solution for that, as well as some changes on
run_one_test.
2020-09-22 21:11:57 +10:00
Peter Barker 1075e13352 autotest: stop set_parameter from using get_parameter
Setting a parameter on ArduPilot causes the autopilot to emit the new
value in a PARAM_VALUE message, so we do not need to fetch it ourselves.

Fetching it ourselves causes subtle problems for the autotest suite
where a PARAM_VALUE is currently in the uart buffer - so the autotest
set_parameter has consumed one PARAM_VALUE message (the auto-emitted
one).  If it immediately does a set_parameter then the next
PARAM_VALUE it sees will be the OLD value as the value comes out of the
uart.
2020-09-15 19:27:36 +10:00
Peter Barker 3e882fcad8 autotest: loosen mag-percent-complete threshold to 95%
So 98% wasn't loose enough...
2020-09-11 15:31:45 +10:00
Peter Barker 0f5f040380 autotest: send all progress messages to autopilot
These will be logged into dataflash and into the telemetry log
2020-09-09 23:47:28 +10:00
bugobliterator d997ca8779 autotest: pass calibration test even if 98% complete before success 2020-09-09 23:46:23 +10:00
Peter Barker 51b54d3740 autotest: avoid leaving message hooks around
Can lead to some very weird and confusing output
2020-09-09 17:59:17 +10:00
Peter Barker 9228f47dc9 autotest: create collections-on-context to record selected messages 2020-09-08 14:19:08 +10:00
Peter Barker f3866e5f39 autotest: disable button test 2020-09-08 12:31:15 +10:00
Andrew Tridgell 7c5a0a6a43 Tools: disable LOG_REPLAY by default in autotest
LOG_REPLAY prevents us logging when we have sensor failures, which
makes many tests hard to debug
2020-09-08 11:01:14 +10:00
Peter Barker 65268ee3d4 autotest: more button-test fixes 2020-09-06 16:49:16 +10:00
bugobliterator 6203e0685e autotest: disable MAG orientation test 2020-09-06 11:21:28 +10:00
Andy Piper 0b9d9fc284 autotest: use StringIO correctly 2020-09-06 09:12:59 +10:00
Andy Piper 6ebc7622fe autotest: comprehensive dataflash test 2020-09-05 10:20:39 +10:00
Peter Barker 2ea41b7997 autotest: spit out actual simulated mag orientations as part of debug 2020-09-03 13:08:07 +10:00
Peter Barker 5a8b1639d0 autotest: fix nmea output test 2020-09-02 10:05:26 +10:00
Peter Barker 23ba2002e8 autotest: dump final mag cal report verbosely 2020-09-01 14:11:57 +10:00
Peter Barker 74c47827d9 autotest: drain stdout of SITL binary
The new rate messages were filling up the stdout buffer, causing the
process to block....
2020-08-30 08:38:35 +10:00
Peter Barker 397e134106 autotest: quieten RTL 2020-08-30 08:38:35 +10:00
Peter Barker 065d03dd30 autotest: add a timeout in the button test 2020-08-30 08:38:35 +10:00
Peter Barker c01b26ca62 autotest: fix race condition in EKF type 10
EKF type 10 is always able to give you a position - but the arming
checks require you to have a good GPS position, and that's something
else again.
2020-08-30 08:38:35 +10:00
Peter Barker 43cdceba8f autotest: tweak wait_ready_to_arm 2020-08-30 08:38:35 +10:00
Peter Barker b7641345e1 autotest: set and get parameters directly using mavlink message 2020-08-30 08:38:35 +10:00
Pierre Kancir 936511a720 Autotest: common: correct some text format 2020-08-29 10:44:19 +10:00
Pierre Kancir 5b72de25e0 Autotest: update wait_distance_to_home
Autotest: copter: allow to pass min_distance for RTL

Autotest: rover: allow to pass min distance for RTL
2020-08-29 10:44:19 +10:00
Pierre Kancir 16b499d0f6 Autotest: allow to select which GPS flags we want to wait for 2020-08-27 09:11:13 +10:00
Peter Barker 80bee19bc9 autotest: correct race condition in button test
A BUTTON_CHANGE may have been emitted after we send the parameter but before it is processed by the autopilot
2020-08-26 13:22:14 +10:00
Pierre Kancir a181fcf8a2 Autotest: common: put generated parameter and LogMessage files into buildlogs directory 2020-08-25 20:01:27 +10:00
Peter Barker a523868b33 autotest: fix Beacon test 2020-08-25 17:21:50 +10:00
Peter Barker 69d246d63e autotest: add test for priority-based compass reordering 2020-08-25 08:30:04 +10:00
Peter Barker bb697dd4b9 autotest: avoid using mavproxy for testing message intervals 2020-08-24 19:33:37 +10:00
Peter Barker 00bfe04539 autotest: remove duplicate recovery code from set-message-interval test 2020-08-24 14:00:38 +10:00
Peter Barker 03d0eda7f1 autotest: use a passthrough progress function for Telem objects 2020-08-24 13:24:41 +10:00
Pierre Kancir 8b92af732a Autotest: common: add wait_heartbeat to change_mode to clean up msg and give time to status to update 2020-08-21 13:35:51 +10:00
Peter Barker cddb5fb1cc autotest: use message hook when waiting for statustext
Eliminates a race condition when waiting for statustexts.  Getting the
current sim time slurps messages.
2020-08-21 12:26:12 +10:00
Pierre Kancir b7f46462f8 Autotest: common: reduce timeout on ArmFeature test
This is unnessary to wait for 60s for failure, 15s is enough
2020-08-21 09:13:32 +10:00
Pierre Kancir acc4a1db3f Autotest: remove special case for vicon and default vicon for copter to false 2020-08-17 21:17:26 +10:00
Peter Barker 82dd7ece6c autotest: fix frsky bitop on float issue
Crops up in Python 3.8:

    gpi_lat = self.tf_encode_gps_latitude(gpi.lat)
  File "/home/pbarker/rc/ardupilot/Tools/autotest/common.py", line 6183, in tf_encode_gps_latitude
    value = ((abs(lat)/100)*6) | 0x40000000
TypeError: unsupported operand type(s) for |: 'float' and 'int'
2020-08-15 10:42:47 +10:00
Pierre Kancir 388fef23d9 Autotest: common: remove use of some raw mavproxy cmd for rc 2020-08-15 09:16:24 +10:00
Pierre Kancir 30fa433faa Tools: don't add duplicate param to context 2020-08-14 18:16:47 +10:00
Mark Whitehorn d0ff26e782 autotest: expand quadplane AirMode autotest 2020-08-13 08:47:27 +10:00
Peter Barker b9dc7118d4 autotest: add do_timesync_roundtrip to do a timesync against SITL
On the assumption that ArduPilot processes mavlink packets
synchronously (or at least in order), after we have run a timesync
roundtrip we can reasonably expect any mavlink command we have sent
prior to the roundtrip to have been processed, and we should be able to
see the results in the mavlink stream.
2020-08-05 13:24:15 +10:00
Peter Barker 4640c24872 autotest: correct checking for no-logs string 2020-08-04 15:12:08 +10:00
Peter Barker b2748f19f6 autotest: correct validator for Distance wait-and-maintain 2020-08-04 15:12:08 +10:00
Willian Galvani 0f992ac6a3 Autotest: add test for Sub position hold 2020-08-03 20:19:28 -07:00
Peter Barker 66ffb4a17b autotest: retry parameter fetch in MIS_TOTAL test
There's a race condition with MAVProxy; it's fetching parameters here
and seems to ignore our requests.

Also correct named parameter from retry to attempts
2020-07-24 09:38:39 +10:00
Peter Barker ccff006517 autotest: correct time-spent-waiting-to-arm for zero case 2020-07-23 18:10:06 +10:00
Peter Barker f1fc61cb41 autotest: improve compass test diagnostics 2020-07-23 15:11:11 +10:00
Peter Barker b69130d352 autotest: require uptime of 5s before declaring GPS definitely not present
Until we detect a GPS we mark it as "not present", even if the
parameters say that there should be one present.
2020-07-23 11:17:42 +10:00
Peter Barker 3b0524a7e1 autotest: add diagnostics to frsky passthrough test 2020-07-21 11:26:52 +10:00
Peter Barker 4acb66cd13 autotest: correct check of frsky home-relative altitude
GLOBAL_POSITION_INT.relative_alt is in mm
2020-07-20 13:31:17 +10:00
Peter Barker ac827cf45b autotest: allow much more time for frsky test to finish
parameters don't seem to come down very fast at all
2020-07-20 13:31:17 +10:00
Peter Barker a49580e0af autotest: improve debug on frsky tests 2020-07-20 13:31:17 +10:00
Peter Barker d9aa334489 autotest: ensure cached sim time moves forward in frsky test 2020-07-20 13:31:17 +10:00
Peter Barker 6eb1d289b8 autotest: add trivial test for CRSF in copter 2020-07-07 18:48:06 +10:00
Samuel Tabor bde9ce10e3 autotest: Add wipe as argument. 2020-07-07 11:46:32 +10:00
Peter Barker 6c9d756f11 autotest: validate context nesting 2020-07-06 14:21:55 +10:00
yaapu 0cbff6ac66 Tools: autotest FRSkyPassThrough increased timeout to let the test complete 2020-07-02 21:53:06 +10:00
yaapu 75b621a09f Tools: autotest added frsky serial_protocol 4 and 10 testing against mavlink telemetry 2020-07-02 21:53:06 +10:00
Peter Barker 53b6d1a639 autotest: wait for heartbeat when opening connection
# need to wait for a heartbeat to arrive as then mavutil will
        # select the correct set of messages for us to receive in
        # self.mav.messages.  You can actually recieve messages with
        # recv_match and those will not be in self.mav.messages until
        # you do this!

Also, wait_heartbeat ignores heartbeats from e.g. MAVProxy
2020-07-01 14:38:21 +10:00
Peter Barker 3737c13784 autotest: allow message rates to be set by message name, not just ID
Simply for convenience.
2020-06-24 18:09:28 +10:00
Peter Barker cd1198bf49 autotest: drain mav before attempting to run a command
We're losing an arbitrary amount of data while getting the ACK, so it's
fine to lose whatever is in the buffer.
2020-06-24 18:09:28 +10:00
Peter Barker d0b97b89e7 autotest: add an assert_receive_message method 2020-06-24 18:09:28 +10:00
Peter Barker 77e5236278 autotest: drain mavlink queue to avoid failing on slow MISSION_COUNT
It was observed from a log of a failed CI test that the ACK from
clearing the rally items took 6 wallclock seconds to arrive.

We were not waiting for that ACK to arrive before sending the request
for the mission item count, but if it has taken more than six seconds
for the ACK to arrive it is reasonable to assume that MISSION_COUNT
could very well take more than the 10 seconds we allow for it.

If we drain the mav before sending the request for the mission count we
should remove any signficiant timing problem due to a backlog of mavlnk
messages, but the amount of traffic here is problematic.

Also drain in lots of other places where we might be spending way too
long parsing messages.
2020-06-11 20:53:50 +10:00
Peter Barker dc19dfaed8 autotest: fix several race conditions in RCOverride test 2020-06-11 08:30:32 +10:00
Peter Barker e207bbdf2a autotest: fix SYSTEM_TIME stream detection function
MAVProxy's output is read by autotest via pexpect.

SITL's output is read by MAVProxy.

If we don't read MAVProxy's stdout then it doesn't read SITL and
everything stops.

Also, since we need to drain pexpects as part of reboot, and applying
parameter files requires rebooting... we need to append the expect
objects to the global list before we apply parameter files.  So move
that call.
2020-06-10 22:00:01 +10:00
bugobliterator 0528daecd8 autotest: increase timeout for compass calibration 2020-06-08 07:25:51 +10:00
bugobliterator a5e9da337a Tools: autotest: fix FixedYawCalibration 2020-06-05 09:38:40 +10:00
Pierre Kancir 2c7fc65fbd Tools: common.py: add generic compass calibration test 2020-06-05 09:38:40 +10:00
Pierre Kancir b72a17533c Tools: common: add a method to try arming and wait a result 2020-06-05 09:38:40 +10:00
Pierre Kancir 59de90d97f Tools: common.py: make max_delta a paramter for verify_parameter_values 2020-06-05 09:38:40 +10:00
Peter Barker 6490a57179 autotest: move check_logs to be an AutoTest-class function
This makes the AutoTest instance cognizant of the binary log files it is creating.  This will be useful for checking the contents of the log files created.
2020-06-04 20:15:31 +10:00
Peter Barker c474edbfbc autotest: attempt to make parameter download more reliable
something is stopping parameters from being fetched.  Give it time to
clear.
2020-05-30 10:11:07 +10:00
Peter Barker b0916231b2 autotest: add tests for log download 2020-05-26 19:32:49 +10:00
Peter Barker 605672b631 autotest: round frsky altitude rather than truncate
Closes https://github.com/ArduPilot/ardupilot/issues/14431
2020-05-23 17:40:24 +10:00
Peter Barker 1f1383ab64 autotest: add quadplane test for qassist 2020-05-20 18:39:42 +10:00
Peter Barker f9c86bbfd0 autotest: ensure cached timestamp is up-to-date for run_cmd_get_ack
If a long-running process drains the mavlink stream rather than parsing
it then the cached timestamp can be very, very out-of-date.  When we
next receieve a timestamp, then, there can be a signficant change in
time when we weren't expecting it.

run_cmd_get_ack can't use get_sim_time() as it might swallow the ack it
is looking for.
2020-05-19 19:12:41 +10:00
Peter Barker b857002158 autotest: drain mav before checking EKF values
May be getting stale values from this function
2020-05-19 19:12:41 +10:00
Peter Barker d51d6752e5 autotest: drain mav before delay
We're seeing suspiciously low wall-clock delays.
2020-05-19 19:12:41 +10:00
Peter Barker dec615bfb5 autotest: drain SITL pexpect when waiting for parameter
This is important when rebooting as the ArduPilot process can block on
sending to stdout, which pexpect is reading from.  While rebooting we're
waiting for a parameter to be reset to a different value in this loop,
which could take quite some time.
2020-05-15 16:02:09 +10:00
Peter Barker f6b121ad87 autotest: add tests for logging 2020-05-15 16:02:09 +10:00
Peter Barker b312260be3 autotest: add timestamp to progress message 2020-05-05 11:09:43 +10:00
Peter Barker ebc781ba3a autotest: switch to looking for barometer update string for passthrough test
MAVProxy can fetch parameters using FTP rather than normal param
mechanism.  Currently this does not emit any of our statustext
information - like the text we're looking for in this test
2020-05-04 10:07:38 +10:00
Peter Barker 864717310d autotest: allow specification of EKF type to use on commandline 2020-04-24 13:37:47 +10:00
Peter Barker c6cf809041 autotest: correct some parsing-out-of-logging-message 2020-04-22 21:10:55 +10:00
Samuel Tabor 913e5a23fe autotest: Add method to get default params for model. 2020-04-22 10:01:09 +10:00
Samuel Tabor e30f0a9173 autotest: Move soaring test into plane. 2020-04-19 11:09:16 +10:00
Peter Barker efb5ad2f1c autotest: correct checking of downloaded file
First time we've tried to round-trip a mission file with comments it it

New frames used by new mission files need stuff to be ignored
2020-04-15 16:24:40 +10:00
Peter Barker 10e8f3f3d7 autotest: canonicalise on defaults_filepath rather than defaults_file
This naming better represents the fact this isn't just a filename.
2020-04-14 15:09:17 +10:00
Samuel Tabor c4e255fa5f autotest: Fix key error 2020-04-14 15:09:17 +10:00
Peter Barker 691ae58a79 Tools: rename APMrover2 to Rover 2020-04-14 09:50:34 +09:00
Peter Barker 9511fa59ec autotest: permit specification of frame as part of customing cmdline 2020-04-12 20:34:26 +10:00
Peter Barker e0380fc9be autotest: improve debug information for missing fields 2020-04-12 08:36:48 +10:00
Pierre Kancir 5b26df5780 Tools: put Mission files into right directories 2020-04-09 09:01:03 +10:00