Commit Graph

828 Commits

Author SHA1 Message Date
Peter Barker bb1c43b0a2 autotest: ensure MAVProxy arm attempt times out 2022-09-11 17:00:50 +10:00
m 3fdcf5f940 autotest: test landed state of copter during takeoff in auto mode 2022-09-10 21:53:23 +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
Peter Barker b06afa8316 autotest: reset sitl if forced disarm fails 2022-09-10 14:35:25 +10:00
Peter Barker 71d1c050b3 autotest: move log_name method for balancebot to within class 2022-09-09 20:32:59 +10:00
Michael du Breuil 80d7bf9b11 Tools: Update autotest to accomodate accel cal changes 2022-09-09 08:52:14 +10:00
Peter Barker a7aa5b6897 autotest: do not wait for ACK from reboot command
Several attempts have been made to make retrieving the reboot's ack reliable, and they've all failed.

So stop waiting for the ACK....
2022-08-29 08:24:03 +10:00
Peter Barker eb0f932b52 autotest: remove global variable
... progress is no longer static and hasn't been for years
2022-08-28 10:09:47 +10:00
Peter Barker 430e52a91b autotest: remove constant in target_component check when downloading mission 2022-08-26 14:38:12 +10:00
Peter Barker 2e2ffbe4ac autotest: correct reset of autoreconnect in case of exception
always true in practice
2022-08-26 14:38:12 +10:00
Peter Barker b6c4930b3a autotest: explicltly dis/reconnect when customising commandline
We *know* the connection is going away, so wecan force the reconnect rather than waiting for mavtcp's reconnect logic to kick in
2022-08-26 14:38:12 +10:00
Peter Barker 8b5afb4a24 autotest: loop across recv_match in assert_receive_message
pymavlink sleeps for half the passed-in timeout which is no good if we are willing to wait for 30 seconds for a message!
2022-08-24 10:08:27 +10:00
Peter Barker 8a13fb0f6d autotest: use assert_receive_message
Removes several block-forever calls
2022-08-24 10:08:27 +10:00
Peter Barker 87eb703bc1 autotest: terminate FTP session after transfering files
race condition starting the second MAVProxy if the first session isn't terminated
2022-08-22 09:01:18 +10:00
Peter Barker af7208a65e autotest: cast packet count to floast before determining rate
Could be causing rate to be zero on autotest server
2022-08-20 21:52:20 +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 e091e8ad33 autotest: clear context before looking for GPS type
Will clarify the output as currently we look through the text messages for all of the previous gps types when trying to find the detection message for the current GPS
2022-08-17 09:57:39 +10:00
Peter Barker bd2ef2e413 autotest: pop extra contexts post-test to clean up message hooks 2022-08-17 09:57:12 +10:00
Peter Barker 00d3af6fc5 autotest: handle terrain requests internally to autotest
We will cache all required SRTM data within the autotest branch
2022-08-16 11:12:44 +10:00
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