Peter BarkerandClaude Opus 5 cd8a2df5fa autotest: skip MAVFTPCrcCompareMAVProxy only where crccmp is missing
The test drives "ftp crclocal" and "ftp crccmp".  MAVProxy grew those in
328d7de20 (2026-07-27) and has not cut a release since - the newest tag,
v1.8.74, is from 2025-08-02 and contains neither - so on a released
MAVProxy "ftp crclocal" falls through to the usage print and the test
waits out its 60s pexpect timeout.

Skipping it unconditionally would cost real coverage: build_ci.sh
installs MAVProxy by cloning master, which does have both commands, so
the test runs and passes in CI today.  A version gate would not work
either, because MAVProxy master still calls itself 1.8.74 - the same
version the release reports - so any mavproxy_version_gt() test would
disable the test in CI as well.

Ask the ftp module whether it implements the command instead, and skip
only where it does not.  Nothing has to be un-done later: the skip stops
applying by itself once the local MAVProxy has crccmp.  Keeping this in
disabled_tests() rather than returning early inside the test means the
skip is still reported in the run summary and the JUnit report.

Ask the MAVProxy we are actually going to run, not the one this process
could import.  MAVPROXY_CMD can name a MAVProxy in another virtualenv,
which is the whole point of the variable, and an in-process "import
MAVProxy" would then answer for the wrong install - saying the command
is present when the MAVProxy under test lacks it, which is exactly the
60s timeout this is meant to avoid.  Take the interpreter out of the
mavproxy script's shebang and put the question to that, keeping the
lookup next to mavproxy_cmd() in util.py where MAVPROXY_CMD is read.

Verified four ways: with crccmp present the entry is absent and
test.Plane.MAVFTPCrcCompareMAVProxy passes; with MAVPROXY_CMD pointing
at a stub install whose ftp module has no crccmp the probe reports False
and the entry appears, while an in-process import in that same run still
says True; and with MAVPROXY_CMD naming a path that does not exist the
probe returns "don't know" and the test is left enabled.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 09:47:09 +10:00
2026-09-12 19:46:43 -03:00
…
2026-09-15 09:23:34 +10:00
2026-09-02 12:32:52 +09:00
…
…
…
…
…

ArduPilot Project

Discord

Test Copter Test Plane Test Rover Test Sub Test Tracker

Test AP_Periph Test Chibios Test Linux SBC Test Replay

Test Unit Teststest size

Test Environment Setup

Cygwin Build Macos Build

Coverity Scan Build Status

Test Coverage

Autotest Status

OpenSSF Best Practices

ArduPilot is the most advanced, full-featured, and reliable open source autopilot software available. It has been under development since 2010 by a diverse team of professional engineers, computer scientists, and community contributors. Our autopilot software is capable of controlling almost any vehicle system imaginable, from conventional airplanes, quad planes, multi-rotors, and helicopters to rovers, boats, balance bots, and even submarines. It is continually being expanded to provide support for new emerging vehicle types.

The ArduPilot project is made up of

User Support & Discussion Forums

Developer Information

Top Contributors

How To Get Involved

License

The ArduPilot project is licensed under the GNU General Public License, version 3.

Maintainers

ArduPilot is comprised of several parts, vehicles and boards. The list below contains the people that regularly contribute to the project and are responsible for reviewing patches on their specific area.

Languages
C++ 62.3%
Python 17.7%
C 10%
Lua 4.8%
C# 2.1%
Other 2.7%