From 8d6e3c2dcd6902f834df9eed4d8e2d582dace673 Mon Sep 17 00:00:00 2001 From: hathach Date: Thu, 18 Jun 2026 17:09:12 +0700 Subject: test/hil: fail audio test on missing alsa-utils instead of skipping MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit arecord (alsa-utils) is a documented HIL host requirement, like mtools/libmtp9/iperf — none of which have a skip-if-missing guard. The audio test was the exception: it silently returned 'skipped' when arecord was absent, masking host misconfiguration. The ci.lan rig had been silently skipping device/audio_test_freertos on every board because alsa-utils was never installed. Remove the shutil.which('arecord') guard so a missing package surfaces as a failure, consistent with the other tool-dependent tests, and drop the now-unused shutil import. Note in the host-setup comment that these packages are required (a missing tool fails its test rather than skipping). Co-Authored-By: Claude Opus 4.8 (1M context) --- test/hil/hil_test.py | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/test/hil/hil_test.py b/test/hil/hil_test.py index 8ae9ee0dc..055618e3c 100755 --- a/test/hil/hil_test.py +++ b/test/hil/hil_test.py @@ -22,7 +22,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -# Host setup: +# Host setup (required: a missing tool fails its test rather than skipping it): # - System packages: sudo apt install mtools libmtp9 alsa-utils iperf # mtools - read_disk_file (device/cdc_msc, device/msc_dual_lun) # libmtp9 - pymtp ctypes load (device/mtp); Debian 13 uses libmtp9t64 @@ -51,7 +51,6 @@ import serial import subprocess import json import glob -import shutil from multiprocessing import Pool, Lock from multiprocessing import TimeoutError as MpTimeoutError import hashlib @@ -1380,10 +1379,6 @@ def test_device_audio_test_freertos(board): if os.name == 'nt': return 'skipped' - arecord = shutil.which('arecord') - if arecord is None: - return 'skipped' - pcm = None timeout = ENUM_TIMEOUT while timeout > 0: @@ -1397,7 +1392,7 @@ def test_device_audio_test_freertos(board): raw_path = f'/tmp/tinyusb_audio_{uid}.raw' cmd = [ - arecord, + 'arecord', '-D', pcm, '-q', '-f', 'S16_LE', -- cgit v1.3.1