Commit Graph

654 Commits

Author SHA1 Message Date
Peter Barker d6f619fb1a autotest: emit 'attempt 1/3' when retrying set_parameter
Also reterm things in terms of attempts rather than retries
2021-06-24 08:30:03 +10:00
Peter Barker 99c7d3aabc autotest: ensure no stray message listeners after test 2021-06-23 21:55:32 +10:00
Peter Barker 6a8ca9e45b autotest: timeout in wallclock time in config error loop test
SYSTEM_TIME is not sent in config error loop
2021-06-23 21:55:32 +10:00
Peter Barker 210818cd6e autotest: let arming failure messages get spit out 2021-06-17 21:01:23 +10:00
Peter Barker cea0d7c971 autotest: move autotest tlog files into buildlogs directory 2021-06-11 22:14:11 +10:00
Peter Barker 14b2af84ab autotest: break out a home_relative_loc_ne for getting a home-rel loc 2021-06-11 16:59:51 +10:00
Peter Barker 96e14d470a autotest: retry SITL connect many times while running under GDB
Allows for easier debugging under gdb when checking startup code
2021-06-11 11:15:58 +10:00
Peter Barker 0b517cfc57 autotest: start GDB in tui mode by default 2021-06-10 20:52:48 +10:00
Peter Barker 79de738266 autotest: wait for a few seconds for arm-failure messages to appear
If prearms never come true then we try to arm the vehicle so it tells us
what is wrong.  Since we no longer push statustexts hard, we have to
wait for the reasons to come out at normal clocked rates.
2021-06-09 14:13:54 +10:00
Peter Barker 6af6d2fc2a autotest: add a progress message for looking for a message in a log 2021-06-09 14:13:31 +10:00
Peter Barker 6944ef6af1 autotest: fly each working Helicopter frame 2021-06-09 12:15:42 +10:00
yaapu b14dcf1df5 Tools:autotest: updated FRSky SPort test to use new 2 byte data IDs 2021-06-02 17:33:15 +10:00
Peter Barker 8925c2830b autotest: check fence upload/download when creating from locs 2021-06-01 15:54:59 +10:00
Peter Barker 3eb164fb6a autotest: move script helper functions from rover to common 2021-05-14 13:21:36 +10:00
Peter Barker 3d562046da autotest: add accuracy option to guided_achieve_heading 2021-05-14 13:21:36 +10:00
Peter Barker 9965f1a31d autotest: add some helpers for local-position movement 2021-05-12 13:01:50 +10:00
Peter Barker 765889b827 autotest: don't send statustext during exception
During an exception we don't want to be trying to print these
2021-05-07 14:21:44 +10:00
Peter Barker f78cf73726 autotest: don't fail completely if ArduPilot process dies 2021-05-07 12:22:11 +10:00
Peter Barker 9a13b5c9b6 autotest: add test for auxfunc triggering via script 2021-05-05 07:13:18 +10:00
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