Commit Graph

123 Commits

Author SHA1 Message Date
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
Peter Barker b0916231b2 autotest: add tests for log download 2020-05-26 19:32:49 +10:00
Peter Barker f6b121ad87 autotest: add tests for logging 2020-05-15 16:02:09 +10:00
Peter Barker bd0ebb5778 autotest: accept statustext and ack in any order for mission errors
Accept statustext/ack in any order; statustext may come after ack
2020-05-04 18:42:18 +10:00
Peter Barker d197fd4acf autotest: fix rare, random failure in GCSRally test
Notionally the statustext could be put aside and we could not have room
for it, so we see the ack first.
2020-05-04 00:22:54 +10:00
Samuel Tabor 913e5a23fe autotest: Add method to get default params for model. 2020-04-22 10:01:09 +10:00
Peter Barker 52227872d2 autotest: rover: skidsteer: fix defaults file path 2020-04-18 21:51:16 +10:00
Peter Barker 7c20a1ee05 autotest: rename apmrover2.py to rover.py 2020-04-15 19:29:04 +10:00