@@ -39,17 +39,20 @@ if [ -d /run/systemd/system ] && command -v systemctl >/dev/null 2>&1; then
3939fi
4040
4141TESTNAME=" AudioRecord"
42+ RESULT_TESTNAME=" $TESTNAME "
4243RES_SUFFIX=" " # Optional suffix for unique result files (e.g., "Config1")
4344# RES_FILE will be set after parsing command-line arguments
4445
45- # Pre-parse --res-suffix for early failure handling
46- # This ensures unique result files even if setup fails in parallel CI runs
46+ # Pre-parse --res-suffix and --lava-testcase-id for early failure handling
47+ # This ensures unique result files and unique testcase IDs even if setup fails in parallel CI runs
4748prev_arg=" "
4849for arg in " $@ " ; do
4950 case " $prev_arg " in
5051 --res-suffix)
5152 RES_SUFFIX=" $arg "
52- break
53+ ;;
54+ --lava-testcase-id)
55+ RESULT_TESTNAME=" $arg "
5356 ;;
5457 esac
5558 prev_arg=" $arg "
@@ -145,6 +148,10 @@ while [ $# -gt 0 ]; do
145148 RES_SUFFIX=" $2 "
146149 shift 2
147150 ;;
151+ --lava-testcase-id)
152+ RESULT_TESTNAME=" $2 "
153+ shift 2
154+ ;;
148155 --durations)
149156 DURATIONS=" $2 "
150157 USE_CONFIG_DISCOVERY=false # Explicit durations = use old matrix mode
@@ -254,7 +261,7 @@ trap 'audio_cleanup_started_daemons' EXIT HUP INT TERM
254261test_path=" $( find_test_case_by_name " $TESTNAME " 2> /dev/null || echo " $SCRIPT_DIR " ) "
255262if ! cd " $test_path " ; then
256263 log_error " cd failed: $test_path "
257- echo " $TESTNAME FAIL" > " $RES_FILE "
264+ echo " $RESULT_TESTNAME FAIL" > " $RES_FILE "
258265 exit 1
259266fi
260267
273280if { [ -n " $CONFIG_NAMES " ] || [ -n " $CONFIG_FILTER " ]; } && [ -n " $DURATIONS " ]; then
274281 log_error " Cannot mix config discovery parameters (--config-name, --config-filter) with legacy matrix parameters (--durations)"
275282 log_error " Please use either config discovery mode OR legacy matrix mode, not both"
276- echo " $TESTNAME SKIP" > " $RES_FILE "
283+ echo " $RESULT_TESTNAME SKIP" > " $RES_FILE "
277284 exit 0
278285fi
279286
@@ -335,7 +342,7 @@ if [ -z "$AUDIO_BACKEND" ]; then
335342 log_warn " $TESTNAME : no managed audio backend running - using direct ALSA capture path"
336343 else
337344 log_skip " $TESTNAME SKIP - no audio backend running and ALSA capture probe failed: ${AUDIO_ALSA_CAPTURE_REASON:- capture path unavailable} "
338- echo " $TESTNAME SKIP" > " $RES_FILE "
345+ echo " $RESULT_TESTNAME SKIP" > " $RES_FILE "
339346 exit 0
340347 fi
341348 fi
@@ -403,7 +410,7 @@ if [ "$backend_ok" -ne 1 ]; then
403410 else
404411 log_skip " $TESTNAME SKIP - backend not available: $AUDIO_BACKEND "
405412 fi
406- echo " $TESTNAME SKIP" > " $RES_FILE "
413+ echo " $RESULT_TESTNAME SKIP" > " $RES_FILE "
407414 exit 0
408415fi
409416
@@ -412,27 +419,27 @@ case "$AUDIO_BACKEND" in
412419 pipewire)
413420 if ! check_dependencies wpctl pw-record; then
414421 log_skip " $TESTNAME SKIP - missing PipeWire utils"
415- echo " $TESTNAME SKIP" > " $RES_FILE "
422+ echo " $RESULT_TESTNAME SKIP" > " $RES_FILE "
416423 exit 0
417424 fi
418425 ;;
419426 pulseaudio)
420427 if ! check_dependencies pactl parecord; then
421428 log_skip " $TESTNAME SKIP - missing PulseAudio utils"
422- echo " $TESTNAME SKIP" > " $RES_FILE "
429+ echo " $RESULT_TESTNAME SKIP" > " $RES_FILE "
423430 exit 0
424431 fi
425432 ;;
426433 alsa)
427434 if ! check_dependencies arecord; then
428435 log_skip " $TESTNAME SKIP - missing arecord"
429- echo " $TESTNAME SKIP" > " $RES_FILE "
436+ echo " $RESULT_TESTNAME SKIP" > " $RES_FILE "
430437 exit 0
431438 fi
432439 ;;
433440 * )
434441 log_skip " $TESTNAME SKIP - unsupported backend: $AUDIO_BACKEND "
435- echo " $TESTNAME SKIP" > " $RES_FILE "
442+ echo " $RESULT_TESTNAME SKIP" > " $RES_FILE "
436443 exit 0
437444 ;;
438445esac
@@ -452,7 +459,7 @@ if [ "$AUDIO_BACKEND" = "pipewire" ]; then
452459 fi
453460 if ! audio_pw_ctl_ok 2> /dev/null; then
454461 log_skip " $TESTNAME SKIP - PipeWire control-plane not responsive"
455- echo " $TESTNAME SKIP" > " $RES_FILE "
462+ echo " $RESULT_TESTNAME SKIP" > " $RES_FILE "
456463 exit 0
457464 fi
458465 fi
@@ -470,7 +477,7 @@ elif [ "$AUDIO_BACKEND" = "pulseaudio" ]; then
470477 fi
471478 if ! audio_pa_ctl_ok 2> /dev/null; then
472479 log_skip " $TESTNAME SKIP - PulseAudio control-plane not responsive"
473- echo " $TESTNAME SKIP" > " $RES_FILE "
480+ echo " $RESULT_TESTNAME SKIP" > " $RES_FILE "
474481 exit 0
475482 fi
476483 fi
543550# Only skip if no source AND not on PipeWire.
544551if [ -z " $SRC_ID " ] && [ " $AUDIO_BACKEND " != " pipewire" ]; then
545552 log_skip " $TESTNAME SKIP - requested source '$SRC_CHOICE ' not available on any backend (${BACKENDS_TO_TRY:- unknown} )"
546- echo " $TESTNAME SKIP" > " $RES_FILE "
553+ echo " $RESULT_TESTNAME SKIP" > " $RES_FILE "
547554 exit 0
548555fi
549556
@@ -574,7 +581,7 @@ if [ "$AUDIO_BACKEND" = "alsa" ]; then
574581 log_info " ALSA auto-pick: using $SRC_ID "
575582 else
576583 log_skip " $TESTNAME SKIP - no valid ALSA capture device found"
577- echo " $TESTNAME SKIP" > " $RES_FILE "
584+ echo " $RESULT_TESTNAME SKIP" > " $RES_FILE "
578585 exit 0
579586 fi
580587 ;;
@@ -606,21 +613,21 @@ case "$AUDIO_BACKEND" in
606613 pipewire)
607614 if ! check_dependencies wpctl pw-record; then
608615 log_skip " $TESTNAME SKIP - missing PipeWire utils"
609- echo " $TESTNAME SKIP" > " $RES_FILE "
616+ echo " $RESULT_TESTNAME SKIP" > " $RES_FILE "
610617 exit 0
611618 fi
612619 ;;
613620 pulseaudio)
614621 if ! check_dependencies pactl parecord; then
615622 log_skip " $TESTNAME SKIP - missing PulseAudio utils"
616- echo " $TESTNAME SKIP" > " $RES_FILE "
623+ echo " $RESULT_TESTNAME SKIP" > " $RES_FILE "
617624 exit 0
618625 fi
619626 ;;
620627 alsa)
621628 if ! check_dependencies arecord; then
622629 log_skip " $TESTNAME SKIP - missing arecord"
623- echo " $TESTNAME SKIP" > " $RES_FILE "
630+ echo " $RESULT_TESTNAME SKIP" > " $RES_FILE "
624631 exit 0
625632 fi
626633 ;;
@@ -696,20 +703,20 @@ if [ "$USE_CONFIG_DISCOVERY" = "true" ]; then
696703 if [ -n " $CONFIG_NAMES " ] || [ -n " $CONFIG_FILTER " ]; then
697704 CONFIGS_TO_TEST=" $( discover_and_filter_record_configs " $CONFIG_NAMES " " $CONFIG_FILTER " ) " || {
698705 log_skip " $TESTNAME SKIP - Invalid config name(s) provided"
699- echo " $TESTNAME SKIP" > " $RES_FILE "
706+ echo " $RESULT_TESTNAME SKIP" > " $RES_FILE "
700707 exit 0
701708 }
702709 else
703710 CONFIGS_TO_TEST=" $( discover_record_configs) " || {
704711 log_skip " $TESTNAME SKIP - No record configs found"
705- echo " $TESTNAME SKIP" > " $RES_FILE "
712+ echo " $RESULT_TESTNAME SKIP" > " $RES_FILE "
706713 exit 0
707714 }
708715 fi
709716
710717 if [ -z " $CONFIGS_TO_TEST " ]; then
711718 log_skip " $TESTNAME SKIP - No valid record configs found"
712- echo " $TESTNAME SKIP" > " $RES_FILE "
719+ echo " $RESULT_TESTNAME SKIP" > " $RES_FILE "
713720 exit 0
714721 fi
715722
@@ -1334,22 +1341,22 @@ log_info "Summary: total=$total pass=$pass fail=$fail skip=$skip"
13341341# --- Proper exit codes: PASS=0, FAIL=1, SKIP-only=0 ---
13351342if [ " $total " -eq 0 ] && [ " $pass " -eq 0 ] && [ " $fail " -eq 0 ]; then
13361343 log_skip " $TESTNAME SKIP - no runnable record testcases"
1337- echo " $TESTNAME SKIP" > " $RES_FILE "
1344+ echo " $RESULT_TESTNAME SKIP" > " $RES_FILE "
13381345 exit 0
13391346fi
13401347
13411348if [ " $pass " -eq 0 ] && [ " $fail " -eq 0 ] && [ " $skip " -gt 0 ]; then
13421349 log_skip " $TESTNAME SKIP"
1343- echo " $TESTNAME SKIP" > " $RES_FILE "
1350+ echo " $RESULT_TESTNAME SKIP" > " $RES_FILE "
13441351 exit 0
13451352fi
13461353
13471354if [ " $suite_rc " -eq 0 ]; then
13481355 log_pass " $TESTNAME PASS"
1349- echo " $TESTNAME PASS" > " $RES_FILE "
1356+ echo " $RESULT_TESTNAME PASS" > " $RES_FILE "
13501357 exit 0
13511358fi
13521359
13531360log_fail " $TESTNAME FAIL"
1354- echo " $TESTNAME FAIL" > " $RES_FILE "
1361+ echo " $RESULT_TESTNAME FAIL" > " $RES_FILE "
13551362exit 1
0 commit comments