Commit Graph

157 Commits

Author SHA1 Message Date
Peter Barker ba6cf1a42b autotest: remove disabled LogUpload test
This has been unused for a long time, and is getting in the way of reforms.  Its position as a test rather than as a part of a framework was always going to cause oddities, particularly after we split the Copter tests into several chunks.
2022-09-11 20:45:13 +10:00
Peter Barker 80c36ecc97 autotest: use reflection to collect test details
We had a pattern emerging of using the test name as the method name to contain the actual test.  We also tended to duplicate the docstrings in the test description - or omit the docstring.

This uses reflection to retrieve both the test name and the description, meaning less duplication of this information and enforcing having docstrings on the test methods.
2022-09-10 18:27:27 +10:00
Shiv Tyagi 6393ef6b8e Tools: fix Rover AutoDock test 2022-09-09 19:12:30 +10:00
Shiv Tyagi 24cff5f9b1 Tools: add autotest to test docking on rover 2022-09-06 11:23:51 +09:00
Randy Mackay c898261698 Tools: autotest uses PRX1 parameters 2022-08-24 18:26:27 +10:00
Peter Barker f8c1c3309d autotest: allow more time for Rover to go to smartrtl intermediate point
race conditions with commands from autotest suite
2022-08-22 09:54:09 +10:00
Peter Barker cd207164a2 autotest: correct Rover DriveMission test
4 would seem to have been just a magic number and could be missed on faster speedups
2022-08-19 17:04:54 +10:00
Peter Barker add5243634 autotest: Rover: ensure we actually stop at rally point 2022-08-14 07:52:42 +10:00
Peter Barker 8fd5df33d5 autotest: add test for stick-mixing in auto mode 2022-08-11 20:03:12 -04: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 a672c7df97 autotest: add test for changing modes by mode number
Useful for when you don't have a mapping entry for the mode number yet
2022-07-12 08:51:21 +10:00
Peter Barker 043764fbf9 autotest: use set_parameters in rover; fixup tests to use context 2022-06-30 11:55:19 +10:00
Peter Barker ef0f5110cb autotest: set Rover speedup to 30
This is closer to what's achieved on modern CPUs.

Running at 100 can lead to very rapid RC inputs which can cause issues.
2022-06-29 21:02:27 +10:00
Peter Barker 4a015bd479 autotest: fix race condition in mission-end-behaviour test 2022-06-16 21:24:31 +10:00
Peter Barker 57b0d7f235 autotest: change rover default speedup time to 100 2022-06-16 21:24:31 +10:00
Pierre Kancir 4e2e4fa4d4 Tools: autotest: remove useless shebang 2022-06-08 08:16:42 +09:00
Peter Barker 876cc77808 autotest: fix Rover syntax for Python2
Apparently ** is Python3-only
2022-04-24 14:21:45 +09:00
Peter Barker 1340132f6f autotest: add rangefinder test 2022-04-19 10:26:10 +10:00
Randy Mackay b6af126514 Tools: relax rover sprayer test
vehicle's speed is slightly lower when using SCurve navigation
2022-03-30 15:34:14 +09:00
Randy Mackay ea5e3a8ae0 Tools: rover autotests send position-target-global-int more slowly
SCurves do not work with very fast changes of target
2022-03-30 15:34:14 +09:00
Randy Mackay 8ff6972b7e Tools: rover autotest DriveRTL timeout increased by 10sec 2022-03-30 15:34:14 +09:00
Peter Barker 001a06d17d autotest: add tests to a pair of lua scripts 2022-02-18 21:23:06 +11:00
Peter Barker 376d7ade50 autotest: use assert_receive_message to remove redundant code 2022-02-15 11:06:10 +11:00
Peter Barker c8780792d4 autotest: loosen position constraint on SET_POSITION_TARGET_LOCAL_NED test 2022-01-08 13:59:19 +11:00
Peter Barker 62df8facd9 autotest: fix rover POSITION_TARGET_LOCAL test 2022-01-07 22:47:19 +11:00
Peter Barker a58e808af8 autotest: fix Rover gripper mission test
We can lose the statustext when getting current time
2022-01-06 17:48:30 +11:00
Peter Barker 2cdb082139 autotest: add test for estop-on-rc-switch 2021-12-17 09:58:37 +11:00
Peter Barker b75f8211d2 autotest: comment out probably-defunct test 2021-11-30 20:50:32 +11:00
Peter Barker 6e4aa2264f autotest: add test for uploading big fence then small fence 2021-11-30 20:50:32 +11:00
Peter Barker 56dda4c07f autotest: fix race condition in Rover gcs mission test 2021-11-05 09:07:19 +11:00
Josh Henderson a06a192255 Autotest: Rover add test for multiple depth finders 2021-10-15 13:08:17 +11:00
Peter Barker 00c6308b25 autotest: add test for FRAMStorage 2021-10-12 20:01:49 +11:00
Peter Barker b2a7841672 Tools: allow for selection of Storage backend type at runtime 2021-10-05 10:16:54 +11:00
Peter Barker 89c884e8f1 autotest: add test for HIGH_LATENCY2 2021-09-29 15:51:30 +10:00
Peter Barker 40a463f60c autotest: simplify camera mission item test
Rename for the modern style of keeping method name same as test name.

Remove pointless try/except block as it wasn't doing anything useful.
2021-09-29 11:38:18 +10:00
Peter Barker 1e1e8010e3 autotest: remove APM references 2021-09-18 10:45:39 -05: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 013bee99f4 autotest: rover: wait ready to arm before running motor test 2021-08-13 08:00:52 +10:00
Peter Barker 7929122f49 autotest: improve AHRS trim test 2021-07-28 17:20:28 +10:00
Peter Barker 6944ef6af1 autotest: fly each working Helicopter frame 2021-06-09 12:15:42 +10:00
Peter Barker 3eb164fb6a autotest: move script helper functions from rover to common 2021-05-14 13:21:36 +10:00
Peter Barker 9a13b5c9b6 autotest: add test for auxfunc triggering via script 2021-05-05 07:13:18 +10:00
Peter Barker 7d9daccdf7 autotest: fix mavproxy switch test
The order in which we fix the environment means that we need to be
listening on the correct port for rc values - so just fix it in the test
2021-04-03 08:58:52 +11:00
Peter Barker 462ac255a3 autotest: start MAVProxy only as needed for testing 2021-03-19 09:46:45 +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 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 0daa1a63d3 autotest: remove pointless fetch_parameters call
And the entire method, replace with equivalent test
2021-03-01 17:27:52 +11:00
Peter Barker 1f47698076 autotest: use change_mode in place of mavproxy.send 2021-03-01 13:10:09 +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 c13d229877 autotest: use self.set_current_waypoint rather than "wp set" to set current wp 2021-02-19 12:25:40 +11:00
Peter Barker 726f54e37f autotest: flake8 compliance for rover.py 2021-02-18 10:43:05 +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 1ca0998f32 Tools: take MAV_CMD_DO_SPRAYER as a mavlink command 2021-02-16 22:36:43 +11:00
Peter Barker b14dcf4bae Tools: add mission command to turn sprayer on and off 2021-02-16 22:36:43 +11:00
Pierre Kancir c02dfd1214 Autotest: add EndMissionBehavior Test for rover 2021-01-27 08:23:52 +09: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
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 04a52835c0 autotest: correct Rover set-position-target-global-int test
The vehicles doesn't send us set messages!
2021-01-19 21:16:39 +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 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 47aea5f44c autotest: print stack traces for caught exceptions 2021-01-13 19:46:13 +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 f478666700 autotest: correct scripting test for missing message
The message could pass us by
2021-01-13 12:24:17 +11:00
Peter Barker 2240a60e20 autotest: add trivial test for set-position-target-local-ned 2021-01-05 08:13:02 +09:00
Peter Barker 53336595e1 autotest: add simple test for Rover set_attitude_target handling 2021-01-05 08:13:02 +09:00
Peter Barker 65cffdad5a autotest: print stack traces when exceptions caught 2020-12-31 17:43:23 +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 12505c4c28 autotest: add tests for new higher-channel override semantics 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
Pierre Kancir 67533c3284 Autotest: add setpoint_target tests on rover 2020-12-24 00:22:52 +11:00
Pierre Kancir 7a2a60e65c Tools: rover: correct test_setting_modes_via_mavproxy_switch for RTL and AUTO 2020-12-16 17:27:07 +09:00
Pierre Kancir e4707c20ea Tools: rover: add initial_mode_switch_mode 2020-12-16 17:27:07 +09:00
Pierre Kancir 7d88d104b8 Tools: put Rover SlewRate test on disable list for now 2020-12-16 08:25:52 +11:00
Peter Barker 17f806cdb9 autotest: add test for execution of button-bound functions 2020-12-01 10:06:57 +11:00
Pierre Kancir 07ffac429b Tools: rover: add test for slew rate 2020-11-25 17:49:20 +09: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 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
Peter Barker f3866e5f39 autotest: disable button test 2020-09-08 12:31:15 +10:00
Peter Barker cafc5b01f4 autotest: fix race condition in Rover RTL test 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 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
Peter Barker a190490b64 autotest: do not rely on MAVProxy for sending banner request 2020-08-24 15:26:57 +10:00
Pierre Kancir 0c3e9bbd4b Autotest: fix mavlink_time_boot format: should be int 2020-08-18 08:33:08 +10:00
Peter Barker c69908e7ea autotest: add proximity sensor readinds as if from depth camera 2020-08-17 11:20:12 +10:00
Peter Barker ea5aa594a3 autotest: add test for AP_Proximity_MAV 2020-08-17 11:20:12 +10:00
Pierre Kancir 52ae087fb5 Autotest: rover: remove some raw mavproxy cmd for rc 2020-08-15 09:16:24 +10:00
Peter Barker f0482935cc autotest: slow down simulation to avoid receiving re-request of item
# avoid a timeout race condition where ArduPilot re-requests a
        # fence point before we receive and respond to the first one.
        # Since ArduPilot has a 1s timeout on re-requesting, This only
        # requires a round-trip delay of 1/speedup seconds to trigger
        # - and that has been seen in practise on Travis

AT-0417.0: Sending item with seq=0
AT-0417.2: Got (MISSION_REQUEST {target_system : 243, target_component : 250, seq : 0, mission_type : 1})
AT-0417.2: Got (MISSION_REQUEST {target_system : 243, target_component : 250, seq : 0, mission_type : 1})
AT-0417.2: Exception caught: Traceback (most recent call last):
  File "/home/travis/build/ArduPilot/ardupilot/Tools/autotest/common.py", line 3950, in run_one_test
    test_function()
  File "/home/travis/build/ArduPilot/ardupilot/Tools/autotest/rover.py", line 4216, in test_poly_fence
    self.test_fence_upload_timeouts()
  File "/home/travis/build/ArduPilot/ardupilot/Tools/autotest/rover.py", line 4057, in test_fence_upload_timeouts
    target_component=target_component)
  File "/home/travis/build/ArduPilot/ardupilot/Tools/autotest/rover.py", line 4010, in test_fence_upload_timeouts_2
    self.expect_request_for_item(item)
  File "/home/travis/build/ArduPilot/ardupilot/Tools/autotest/rover.py", line 3958, in expect_request_for_item
    raise NotAchievedException("Expected request for seq=%u" % item.seq)
NotAchievedException: Expected request for seq=1

The "AT" timestamps there are wallclock time.  Since speedup for Rover
is 8 by default, that could be as much as 1.6 seconds meaning a
re-request from ArduPilot would be legitimate.

I've added some debug, too - we now emit "Sending item with seq=1"
between those two "Got" lines.  That should make the problem clearer -
we've received a re-request rather than a request for the item after the
one we've already sent.
2020-08-09 20:13: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 f5a928ae26 autotest: remove debug to reduce CI log sizes 2020-07-24 12:39:17 +10:00
Peter Barker babb3fef54 autotest: remove incorrect use of get_sim_time_cached
These could instantly time out
2020-07-21 14:10:16 +10:00
Peter Barker 74c04271fa autotest: fix breakages for defaulting to mavlink2
This highlights the fact that fetching rally points using the mission
item protocol does some when you're talking mavlink1 doesn't work out
well.

            # so this looks a bit odd; the other end isn't sending
            # mavlink2 so can't fill in the extension here.
2020-06-30 21:58:48 +10:00
Peter Barker 29e6f058a9 autotest: add test for scripting guided-steering-throttle example 2020-06-26 11:39:06 +10:00
Peter Barker bb14746517 autotest: re-enable Rover BendyRuler test
This appears to now be working
2020-06-24 08:53:04 +09:00
Peter Barker 300e7ac2eb autotest: increase timeout on receiving mission-related messages
... to silly proportions.
2020-06-12 14:05:35 +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
Rajat Singhal 969a66fa01 Tools: autotest: Add Max RC input test for Rover
Currently disabled since it triggers Arithmetic Exception
2020-05-31 21:11:36 +10:00