Also remove redundant reset code
Tools: autotest: drain mav and all pexexpects before running each test
Tools: autotest: increase some timeouts for failures when running under GDB
Tools: autotest: correct ordering of operations in mount test
Tools: unify arm function failure message
Tools: get autodisarm time from parameter for autodisarm test
Tools: disable autodisarm for arm/disarm tests.
Tools: fix interlock channel for heli
Tools: simplify arming_test sub exclusion
Tools: fix empty string in progress
Tools: add back arming test to plane
Tools: allow single test run on Sub
Tools: remove old comments on autotest common
Tools: add vehicle type getter function
Tools: make get_rudder_channel abstract method
Tools: common make get_disarm_delay abstract method
Tools: make set_autodisarm_delay abstract method
Tools: rename set_throttle_zero to zero_throttle and use it
Tools: common.py remove unnecessary exception
Tools: subclass vehicle type
Tools: correct altitude check
Tools: correct tests syntax
Tools: add autotest syntax check on common
Tools: search for syntax mistake on autotest lambda
Tools: put copter in hover trottle to prevent crash
Tools: reboot after baterry failsafe test
Tools: copter takeoff wait_ready_to_arm before arming
Tools: arm copter after land on RTL
Tools: reset copter battery voltage after battery failsafe
Previously we stopped the simulation to ensure parameter changes are
applied to the simulated vehicle. We can now reboot the simulated
autopilot, so these patches make use of those changes.
One big advantage is that the --gdb option is in play for the applying
of the parameters to the vehicle.
If any of the tests throws an exception, it will be caught by the generic test function
that collects all errors and displays them before passing the result to the vehicle testcode.
Hence the name of the test and the exception that got raised get printed in a single
location. This nicely reduces code duplication.
Three of our models start a SITL instance to apply parameters
then restart it so that the parameter changes can take effect.
Factor that functionality out.
Autotest: common.py add new base class and test
Autotest : Common add heartbeat handling on wait_mode timeout
Autotest: common.py add reach_heading_manual and reach_distance_manual
Autotest: new autotest implementation for Rover
Autotest : rover add drive_square test
Autotest: new autotest implementation for Copter
Autotest: new autotest implementation for Plane
Autotest: new autotest implementation for Sub
Autotest: new autotest implementation
Autotest: new autotest implementation for QuadPlane
Autotest : Sub disable GCS_Failsafe on autotest to prevent timeout. The failsafe aren't currently tested on Sub
Tools: don't need to pass option on first mavproxy
Tools: reformat common.py and add commun function
Tools: use new common functions
Tools: move functions from rover to commun and reorder
Tools: add and use set_rc function with timeout
Tools: fix style for pep8
Added \r\n to the expect() string as recomended at:
http://pexpect.readthedocs.io/en/stable/overview.html#find-the-end-of-line-cr-lf-conventions
this should work on both windows and linux systems
pexpect says it will always do a minimal (non greedy) matching and docs explicitly say that a .+ expression will always return only one character. These lines in autotest are looking for \S+, which, believing the documentation, would only return one character of the log file path.
Now we know that's not true, neither for Linux or for Windows (given the logs from @karthikdesai), so I can only assume that it does a greedy match but only for the characters it has received at the time expect is called.
Apparently, in the machines we are using autotest, it isn't a problem since MAVProxy is likely fast to give its output to pexpect before the expect method is called. On @karthikdesai's machine that wasn't happening since his machine was more or less loaded.
Concluding, this looks like a correct fix in the sense that it extends the regex pattern to wait for the end of line (and probably other places could benefit from it too).
Based on work done by khancir
(https://github.com/ArduPilot/ardupilot/pull/6360)
Tools: arduplane.py change print to progress function
Tools: quadplane.py change print to progress function
Tools: ardusub.py change print to progress function
Try to make the various param files to follow similar namings:
- Lowercase the few ones using uppercase
- Use dash to separate name components
- Start with "copter", "plane", "rover", etc instead of the mix we
had
- Remove "params" from the filename since it's redundant with the
extension