Skip to content

Commit acf63f6

Browse files
authored
Merge pull request #382 from nitinn22/feature/audio-record-playback-fix-clean
Modified audio gst suite to handle test case name fix
2 parents 48393e3 + 7cd17e8 commit acf63f6

File tree

3 files changed

+66
-26
lines changed

3 files changed

+66
-26
lines changed

Runner/suites/Multimedia/GSTreamer/Audio/Audio_Record_Playback/Audio_Record_Playback.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@ params:
1818
AUDIO_FORMATS: "wav,flac"
1919
AUDIO_DURATION: "10"
2020
AUDIO_GST_DEBUG: "2"
21+
LAVA_TESTCASE_ID: "Audio_Record_Playback"
2122

2223
run:
2324
steps:
2425
- REPO_PATH="$PWD"
2526
- cd "$REPO_PATH/Runner/suites/Multimedia/GSTreamer/Audio/Audio_Record_Playback"
2627
- AUDIO_SHARED_RECORDED_DIR="${REPO_PATH%%/tests/*}/shared/audio-record-playback"
2728
- export REPO_PATH AUDIO_SHARED_RECORDED_DIR AUDIO_TEST_MODE AUDIO_TEST_NAME AUDIO_FORMATS AUDIO_DURATION AUDIO_GST_DEBUG
28-
- ./run.sh || true
29+
- ./run.sh --lava-testcase-id "${LAVA_TESTCASE_ID}" || true
2930
- $REPO_PATH/Runner/utils/send-to-lava.sh Audio_Record_Playback.res

Runner/suites/Multimedia/GSTreamer/Audio/Audio_Record_Playback/README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,13 @@ Help:
241241
- `9` MEMDUMP
242242
- Default: `2`
243243

244+
- `--lava-testcase-id <name>`
245+
- Override the test case name reported to LAVA in the `.res` file
246+
- Default: `Audio_Record_Playback`
247+
- Used by LAVA to match expected test case names
248+
- Example: `--lava-testcase-id "GStreamer_Audio_Record_wav"`
249+
- **Note:** This is typically set automatically by LAVA job definitions and should not be used for local testing
250+
244251
---
245252

246253
## Examples
@@ -574,11 +581,27 @@ The test supports these environment variables (can be set in LAVA job definition
574581
- `AUDIO_CLIP_PATH` - Local path to test audio files (overrides AUDIO_CLIP_URL if files exist)
575582
- `AUDIO_SHARED_RECORDED_DIR` - Shared directory for recorded audio artifacts (optional)
576583
- `REPO_PATH` - Repository root path (set by YAML, used for path resolution)
584+
- `LAVA_TESTCASE_ID` - Override test case name for LAVA reporting (default: Audio_Record_Playback)
577585

578586
**Priority order for duration**: `AUDIO_DURATION` > `RUNTIMESEC` > default (10)
579587

580588
**Shared Artifact Directory**: The test uses `AUDIO_SHARED_RECORDED_DIR` to store recorded audio files in a shared location across multiple test runs. If not set, the test will automatically determine the appropriate directory based on the environment (LAVA vs local).
581589

590+
### LAVA Test Case Naming
591+
592+
The test supports flexible test case naming for LAVA integration:
593+
594+
- **Default behavior**: Reports results as `Audio_Record_Playback` in the `.res` file
595+
- **LAVA override**: Set `LAVA_TESTCASE_ID` parameter in the YAML definition to match LAVA's expected test case name
596+
- **Example YAML configuration**:
597+
```yaml
598+
params:
599+
AUDIO_TEST_MODE: record
600+
AUDIO_FORMATS: wav
601+
LAVA_TESTCASE_ID: "GStreamer_Audio_Record_wav" # Matches LAVA expected name
602+
```
603+
- This ensures LAVA correctly matches test results with expected test case names, avoiding "Unexpected test result" errors
604+
582605
### Test Counting
583606
584607
- **Total tests**: 10 (when running with default wav,flac formats in all mode)

Runner/suites/Multimedia/GSTreamer/Audio/Audio_Record_Playback/run.sh

Lines changed: 41 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ SCRIPT_DIR="$(
4141
)"
4242

4343
TESTNAME="Audio_Record_Playback"
44+
RESULT_TESTNAME="$TESTNAME"
4445
RES_FILE="${SCRIPT_DIR}/${TESTNAME}.res"
4546
LOG_DIR="${SCRIPT_DIR}/logs"
4647
OUTDIR="$LOG_DIR/$TESTNAME"
@@ -59,7 +60,7 @@ done
5960

6061
if [ -z "${INIT_ENV:-}" ]; then
6162
echo "[ERROR] Could not find init_env (starting at $SCRIPT_DIR)" >&2
62-
echo "$TESTNAME SKIP" >"$RES_FILE" 2>/dev/null || true
63+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE" 2>/dev/null || true
6364
exit 0
6465
fi
6566

@@ -80,7 +81,7 @@ if ! mkdir -p "$OUTDIR" "$DMESG_DIR"; then
8081
log_error "Failed to create required directories:"
8182
log_error " OUTDIR=$OUTDIR"
8283
log_error " DMESG_DIR=$DMESG_DIR"
83-
echo "$TESTNAME FAIL" >"$RES_FILE" 2>/dev/null || true
84+
echo "$RESULT_TESTNAME FAIL" >"$RES_FILE" 2>/dev/null || true
8485
exit 0
8586
fi
8687
: >"$RES_FILE"
@@ -100,7 +101,7 @@ fi
100101
# Create the recorded directory
101102
if ! mkdir -p "$RECORDED_DIR"; then
102103
log_error "Failed to create recorded directory: $RECORDED_DIR"
103-
echo "$TESTNAME FAIL" >"$RES_FILE"
104+
echo "$RESULT_TESTNAME FAIL" >"$RES_FILE"
104105
exit 0
105106
fi
106107

@@ -133,21 +134,21 @@ for param in AUDIO_DURATION AUDIO_GST_DEBUG GST_DEBUG_LEVEL; do
133134
case "$val" in
134135
''|*[!0-9]*)
135136
log_warn "$param must be numeric (got '$val')"
136-
echo "$TESTNAME SKIP" >"$RES_FILE"
137+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
137138
exit 0
138139
;;
139140
*)
140141
if [ "$val" -le 0 ] 2>/dev/null; then
141142
log_warn "$param must be positive (got '$val')"
142-
echo "$TESTNAME SKIP" >"$RES_FILE"
143+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
143144
exit 0
144145
fi
145146
;;
146147
esac
147148
fi
148149
done
149150

150-
# shellcheck disable=SC2317
151+
# shellcheck disable=SC2317,SC2329
151152
cleanup() {
152153
# Best-effort: try to kill only children first; fall back to name-based kill
153154
if ! pkill -P "$$" -x gst-launch-1.0 >/dev/null 2>&1; then
@@ -162,7 +163,7 @@ while [ $# -gt 0 ]; do
162163
--mode)
163164
if [ $# -lt 2 ] || [ "${2#--}" != "$2" ]; then
164165
log_warn "Missing/invalid value for --mode"
165-
echo "$TESTNAME SKIP" >"$RES_FILE"
166+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
166167
exit 0
167168
fi
168169
[ -n "$2" ] && testMode="$2"
@@ -172,7 +173,7 @@ while [ $# -gt 0 ]; do
172173
--formats)
173174
if [ $# -lt 2 ] || [ "${2#--}" != "$2" ]; then
174175
log_warn "Missing/invalid value for --formats"
175-
echo "$TESTNAME SKIP" >"$RES_FILE"
176+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
176177
exit 0
177178
fi
178179
[ -n "$2" ] && formatList="$2"
@@ -182,14 +183,14 @@ while [ $# -gt 0 ]; do
182183
--duration)
183184
if [ $# -lt 2 ] || [ "${2#--}" != "$2" ]; then
184185
log_warn "Missing/invalid value for --duration"
185-
echo "$TESTNAME SKIP" >"$RES_FILE"
186+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
186187
exit 0
187188
fi
188189
if [ -n "$2" ]; then
189190
case "$2" in
190191
''|*[!0-9]*)
191192
log_warn "Invalid --duration '$2' (must be numeric)"
192-
echo "$TESTNAME SKIP" >"$RES_FILE"
193+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
193194
exit 0
194195
;;
195196
*)
@@ -203,7 +204,7 @@ while [ $# -gt 0 ]; do
203204
--gst-debug)
204205
if [ $# -lt 2 ] || [ "${2#--}" != "$2" ]; then
205206
log_warn "Missing/invalid value for --gst-debug"
206-
echo "$TESTNAME SKIP" >"$RES_FILE"
207+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
207208
exit 0
208209
fi
209210
[ -n "$2" ] && gstDebugLevel="$2"
@@ -213,7 +214,7 @@ while [ $# -gt 0 ]; do
213214
--clip-url)
214215
if [ $# -lt 2 ] || [ "${2#--}" != "$2" ]; then
215216
log_warn "Missing/invalid value for --clip-url"
216-
echo "$TESTNAME SKIP" >"$RES_FILE"
217+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
217218
exit 0
218219
fi
219220
[ -n "$2" ] && clipUrl="$2"
@@ -223,7 +224,7 @@ while [ $# -gt 0 ]; do
223224
--clip-path)
224225
if [ $# -lt 2 ] || [ "${2#--}" != "$2" ]; then
225226
log_warn "Missing/invalid value for --clip-path"
226-
echo "$TESTNAME SKIP" >"$RES_FILE"
227+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
227228
exit 0
228229
fi
229230
[ -n "$2" ] && clipPath="$2"
@@ -233,13 +234,23 @@ while [ $# -gt 0 ]; do
233234
--test-name)
234235
if [ $# -lt 2 ] || [ "${2#--}" != "$2" ]; then
235236
log_warn "Missing/invalid value for --test-name"
236-
echo "$TESTNAME SKIP" >"$RES_FILE"
237+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
237238
exit 0
238239
fi
239240
[ -n "$2" ] && testName="$2"
240241
shift 2
241242
;;
242243

244+
--lava-testcase-id)
245+
if [ $# -lt 2 ] || [ "${2#--}" != "$2" ]; then
246+
log_warn "Missing/invalid value for --lava-testcase-id"
247+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
248+
exit 0
249+
fi
250+
[ -n "$2" ] && RESULT_TESTNAME="$2"
251+
shift 2
252+
;;
253+
243254
-h|--help)
244255
cat <<EOF
245256
Usage: $0 [OPTIONS]
@@ -270,6 +281,11 @@ OPTIONS:
270281
--clip-path <path> Local path to test audio files
271282
(overrides --clip-url if files exist)
272283
284+
--lava-testcase-id <name>
285+
Override the test case name reported to LAVA
286+
(default: Audio_Record_Playback)
287+
Used by LAVA to match expected test case names
288+
273289
-h, --help Display this help message
274290
275291
ENVIRONMENT VARIABLES:
@@ -316,7 +332,7 @@ EOF
316332

317333
*)
318334
log_warn "Unknown argument: $1"
319-
echo "$TESTNAME SKIP" >"$RES_FILE"
335+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
320336
exit 0
321337
;;
322338
esac
@@ -325,28 +341,28 @@ done
325341
# -------------------- Validate parsed values --------------------
326342
case "$testMode" in all|record|playback) : ;; *)
327343
log_warn "Invalid --mode '$testMode'"
328-
echo "$TESTNAME SKIP" >"$RES_FILE"
344+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
329345
exit 0
330346
;;
331347
esac
332348

333349
case "$gstDebugLevel" in 1|2|3|4|5|6|7|8|9) : ;; *)
334350
log_warn "Invalid --gst-debug '$gstDebugLevel' (allowed: 1-9)"
335-
echo "$TESTNAME SKIP" >"$RES_FILE"
351+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
336352
exit 0
337353
;;
338354
esac
339355

340356
case "$duration" in
341357
''|*[!0-9]*)
342358
log_warn "Invalid duration '$duration' (must be numeric)"
343-
echo "$TESTNAME SKIP" >"$RES_FILE"
359+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
344360
exit 0
345361
;;
346362
*)
347363
if [ "$duration" -le 0 ] 2>/dev/null; then
348364
log_warn "Duration must be positive (got '$duration')"
349-
echo "$TESTNAME SKIP" >"$RES_FILE"
365+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
350366
exit 0
351367
fi
352368
;;
@@ -365,7 +381,7 @@ if [ -n "$testName" ]; then
365381
log_warn "Valid names: record_wav, record_flac, record_pulsesrc_wav, record_pulsesrc_flac,"
366382
log_warn " playback_wav, playback_flac, playback_pulsesrc_wav, playback_pulsesrc_flac,"
367383
log_warn " playback_sample_ogg, playback_sample_mp3"
368-
echo "$TESTNAME SKIP" >"$RES_FILE"
384+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
369385
exit 0
370386
;;
371387
esac
@@ -379,7 +395,7 @@ NUM_BUFFERS=$(( (SAMPLE_RATE * duration) / SAMPLES_PER_BUFFER ))
379395
# -------------------- Pre-checks --------------------
380396
check_dependencies "gst-launch-1.0 gst-inspect-1.0 awk grep head sed tr stat find curl tar" >/dev/null 2>&1 || {
381397
log_skip "Missing required tools (gst-launch-1.0, gst-inspect-1.0, awk, grep, head, sed, tr, stat, find, curl, tar)"
382-
echo "$TESTNAME SKIP" >"$RES_FILE"
398+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
383399
exit 0
384400
}
385401

@@ -860,7 +876,7 @@ log_info "Starting audio record/playback tests..."
860876
# Check required elements
861877
if ! check_required_elements; then
862878
log_warn "Required GStreamer elements (audiotestsrc/pulsesink) not available"
863-
echo "$TESTNAME SKIP" >"$RES_FILE"
879+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
864880
exit 0
865881
fi
866882
log_info "Required GStreamer elements verified"
@@ -1018,15 +1034,15 @@ fi
10181034
case "$result" in
10191035
PASS)
10201036
log_pass "$TESTNAME $result: $reason"
1021-
echo "$TESTNAME PASS" >"$RES_FILE"
1037+
echo "$RESULT_TESTNAME PASS" >"$RES_FILE"
10221038
;;
10231039
FAIL)
10241040
log_fail "$TESTNAME $result: $reason"
1025-
echo "$TESTNAME FAIL" >"$RES_FILE"
1041+
echo "$RESULT_TESTNAME FAIL" >"$RES_FILE"
10261042
;;
10271043
*)
10281044
log_warn "$TESTNAME $result: $reason"
1029-
echo "$TESTNAME SKIP" >"$RES_FILE"
1045+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
10301046
;;
10311047
esac
10321048

0 commit comments

Comments
 (0)