Skip to content

Commit 48393e3

Browse files
authored
Merge pull request #381 from nitinn22/feature/video-gst-clean
Added lava test name support to handle failure due to test case name
2 parents e1a0684 + 29922c3 commit 48393e3

3 files changed

Lines changed: 68 additions & 28 deletions

File tree

Runner/suites/Multimedia/GSTreamer/Video/Video_Encode_Decode/README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,13 @@ Help:
211211
- `9` MEMDUMP
212212
- Default: `2`
213213

214+
- `--lava-testcase-id <name>`
215+
- Override the test case name reported to LAVA in the `.res` file
216+
- Default: `Video_Encode_Decode`
217+
- Used by LAVA to match expected test case names
218+
- Example: `--lava-testcase-id "GStreamer_Video_Decode_h265_480p"`
219+
- **Note:** This is typically set automatically by LAVA job definitions and should not be used for local testing
220+
214221
---
215222

216223
## Examples
@@ -585,9 +592,26 @@ The test supports these environment variables (can be set in LAVA job definition
585592
- `VIDEO_GST_DEBUG` - GStreamer debug level (default: 2)
586593
- `GST_DEBUG_LEVEL` - Alternative to VIDEO_GST_DEBUG
587594
- `VIDEO_CLIP_URL` - URL for VP9 clip download (default: GitHub releases)
595+
- `LAVA_TESTCASE_ID` - Override test case name for LAVA reporting (default: Video_Encode_Decode)
588596

589597
**Priority order for duration**: `VIDEO_DURATION` > `RUNTIMESEC` > default (30)
590598

599+
### LAVA Test Case Naming
600+
601+
The test supports flexible test case naming for LAVA integration:
602+
603+
- **Default behavior**: Reports results as `Video_Encode_Decode` in the `.res` file
604+
- **LAVA override**: Set `LAVA_TESTCASE_ID` parameter in the YAML definition to match LAVA's expected test case name
605+
- **Example YAML configuration**:
606+
```yaml
607+
params:
608+
VIDEO_TEST_MODE: decode
609+
VIDEO_CODECS: h265
610+
VIDEO_RESOLUTIONS: 480p
611+
LAVA_TESTCASE_ID: "GStreamer_Video_Decode_h265_480p" # Matches LAVA expected name
612+
```
613+
- This ensures LAVA correctly matches test results with expected test case names, avoiding "Unexpected test result" errors
614+
591615
### VP9-Specific Notes for CI/LAVA
592616
593617
- VP9 tests require network connectivity to download clips

Runner/suites/Multimedia/GSTreamer/Video/Video_Encode_Decode/Video_Encode_Decode.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ params:
1919
VIDEO_GST_DEBUG: "2"
2020
VIDEO_CLIP_URL: ""
2121
VIDEO_CLIP_PATH: "" # dir/file/archive (tar/tar.gz/tar.xz/xz)
22+
LAVA_TESTCASE_ID: "Video_Encode_Decode"
2223

2324
run:
2425
steps:
@@ -27,5 +28,5 @@ run:
2728
- VIDEO_SHARED_ENCODE_DIR="${REPO_PATH%%/tests/*}/shared/video-encode-decode"
2829
- export VIDEO_TEST_MODE VIDEO_CODECS VIDEO_RESOLUTIONS VIDEO_DURATION VIDEO_FRAMERATE
2930
- export VIDEO_STACK VIDEO_GST_DEBUG VIDEO_CLIP_URL VIDEO_CLIP_PATH VIDEO_SHARED_ENCODE_DIR
30-
- ./run.sh --mode "${VIDEO_TEST_MODE}" --codecs "${VIDEO_CODECS}" --resolutions "${VIDEO_RESOLUTIONS}" --duration "${VIDEO_DURATION}" --framerate "${VIDEO_FRAMERATE}" --stack "${VIDEO_STACK}" --gst-debug "${VIDEO_GST_DEBUG}" --clip-url "${VIDEO_CLIP_URL}" --clip-path "${VIDEO_CLIP_PATH}" || true
31+
- ./run.sh --mode "${VIDEO_TEST_MODE}" --codecs "${VIDEO_CODECS}" --resolutions "${VIDEO_RESOLUTIONS}" --duration "${VIDEO_DURATION}" --framerate "${VIDEO_FRAMERATE}" --stack "${VIDEO_STACK}" --gst-debug "${VIDEO_GST_DEBUG}" --clip-url "${VIDEO_CLIP_URL}" --clip-path "${VIDEO_CLIP_PATH}" --lava-testcase-id "${LAVA_TESTCASE_ID}" || true
3132
- $REPO_PATH/Runner/utils/send-to-lava.sh Video_Encode_Decode.res

Runner/suites/Multimedia/GSTreamer/Video/Video_Encode_Decode/run.sh

Lines changed: 42 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ SCRIPT_DIR="$(
1313
)"
1414

1515
TESTNAME="Video_Encode_Decode"
16+
RESULT_TESTNAME="$TESTNAME"
1617
RES_FILE="${SCRIPT_DIR}/${TESTNAME}.res"
1718
LOG_DIR="${SCRIPT_DIR}/logs"
1819
OUTDIR="$LOG_DIR/$TESTNAME"
@@ -31,7 +32,7 @@ done
3132

3233
if [ -z "${INIT_ENV:-}" ]; then
3334
echo "[ERROR] Could not find init_env (starting at $SCRIPT_DIR)" >&2
34-
echo "$TESTNAME SKIP" >"$RES_FILE" 2>/dev/null || true
35+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE" 2>/dev/null || true
3536
exit 0
3637
fi
3738

@@ -62,7 +63,7 @@ if ! mkdir -p "$OUTDIR" "$DMESG_DIR" "$ENCODED_DIR"; then
6263
log_error " OUTDIR=$OUTDIR"
6364
log_error " DMESG_DIR=$DMESG_DIR"
6465
log_error " ENCODED_DIR=$ENCODED_DIR"
65-
echo "$TESTNAME FAIL" >"$RES_FILE" 2>/dev/null || true
66+
echo "$RESULT_TESTNAME FAIL" >"$RES_FILE" 2>/dev/null || true
6667
exit 0
6768
fi
6869

@@ -103,13 +104,13 @@ for param in VIDEO_DURATION RUNTIMESEC VIDEO_FRAMERATE VIDEO_GST_DEBUG GST_DEBUG
103104
case "$val" in
104105
''|*[!0-9]*)
105106
log_warn "$param must be numeric (got '$val')"
106-
echo "$TESTNAME SKIP" >"$RES_FILE"
107+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
107108
exit 0
108109
;;
109110
*)
110111
if [ "$val" -le 0 ] 2>/dev/null; then
111112
log_warn "$param must be positive (got '$val')"
112-
echo "$TESTNAME SKIP" >"$RES_FILE"
113+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
113114
exit 0
114115
fi
115116
;;
@@ -132,7 +133,7 @@ while [ $# -gt 0 ]; do
132133
--mode)
133134
if [ $# -lt 2 ] || [ "${2#--}" != "$2" ]; then
134135
log_warn "Missing/invalid value for --mode"
135-
echo "$TESTNAME SKIP" >"$RES_FILE"
136+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
136137
exit 0
137138
fi
138139
# If empty, keep default; otherwise use provided value
@@ -143,7 +144,7 @@ while [ $# -gt 0 ]; do
143144
--codecs)
144145
if [ $# -lt 2 ] || [ "${2#--}" != "$2" ]; then
145146
log_warn "Missing/invalid value for --codecs"
146-
echo "$TESTNAME SKIP" >"$RES_FILE"
147+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
147148
exit 0
148149
fi
149150
# If empty, keep default; otherwise use provided value
@@ -154,7 +155,7 @@ while [ $# -gt 0 ]; do
154155
--resolutions)
155156
if [ $# -lt 2 ] || [ "${2#--}" != "$2" ]; then
156157
log_warn "Missing/invalid value for --resolutions"
157-
echo "$TESTNAME SKIP" >"$RES_FILE"
158+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
158159
exit 0
159160
fi
160161
# If empty, keep default; otherwise use provided value
@@ -165,15 +166,15 @@ while [ $# -gt 0 ]; do
165166
--duration)
166167
if [ $# -lt 2 ] || [ "${2#--}" != "$2" ]; then
167168
log_warn "Missing/invalid value for --duration"
168-
echo "$TESTNAME SKIP" >"$RES_FILE"
169+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
169170
exit 0
170171
fi
171172
# If empty or non-numeric, keep default; otherwise use provided value
172173
if [ -n "$2" ]; then
173174
case "$2" in
174175
''|*[!0-9]*)
175176
log_warn "Invalid --duration '$2' (must be numeric)"
176-
echo "$TESTNAME SKIP" >"$RES_FILE"
177+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
177178
exit 0
178179
;;
179180
*)
@@ -187,20 +188,20 @@ while [ $# -gt 0 ]; do
187188
--framerate)
188189
if [ $# -lt 2 ] || [ "${2#--}" != "$2" ]; then
189190
log_warn "Missing/invalid value for --framerate"
190-
echo "$TESTNAME SKIP" >"$RES_FILE"
191+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
191192
exit 0
192193
fi
193194
if [ -n "$2" ]; then
194195
case "$2" in
195196
''|*[!0-9]*)
196197
log_warn "Invalid --framerate '$2' (must be numeric)"
197-
echo "$TESTNAME SKIP" >"$RES_FILE"
198+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
198199
exit 0
199200
;;
200201
*)
201202
if [ "$2" -le 0 ] 2>/dev/null; then
202203
log_warn "Framerate must be positive (got '$2')"
203-
echo "$TESTNAME SKIP" >"$RES_FILE"
204+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
204205
exit 0
205206
fi
206207
;;
@@ -214,7 +215,7 @@ while [ $# -gt 0 ]; do
214215
--stack)
215216
if [ $# -lt 2 ] || [ "${2#--}" != "$2" ]; then
216217
log_warn "Missing/invalid value for --stack"
217-
echo "$TESTNAME SKIP" >"$RES_FILE"
218+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
218219
exit 0
219220
fi
220221
# If empty, keep default; otherwise use provided value
@@ -225,7 +226,7 @@ while [ $# -gt 0 ]; do
225226
--gst-debug)
226227
if [ $# -lt 2 ] || [ "${2#--}" != "$2" ]; then
227228
log_warn "Missing/invalid value for --gst-debug"
228-
echo "$TESTNAME SKIP" >"$RES_FILE"
229+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
229230
exit 0
230231
fi
231232
# If empty, keep default; otherwise use provided value
@@ -236,7 +237,7 @@ while [ $# -gt 0 ]; do
236237
--clip-url)
237238
if [ $# -lt 2 ] || [ "${2#--}" != "$2" ]; then
238239
log_warn "Missing/invalid value for --clip-url"
239-
echo "$TESTNAME SKIP" >"$RES_FILE"
240+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
240241
exit 0
241242
fi
242243
# If empty, keep default; otherwise use provided value
@@ -246,12 +247,21 @@ while [ $# -gt 0 ]; do
246247
--clip-path)
247248
if [ $# -lt 2 ] || [ "${2#--}" != "$2" ]; then
248249
log_warn "Missing/invalid value for --clip-path"
249-
echo "$TESTNAME SKIP" >"$RES_FILE"
250+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
250251
exit 0
251252
fi
252253
[ -n "$2" ] && clipPath="$2"
253254
shift 2
254255
;;
256+
--lava-testcase-id)
257+
if [ $# -lt 2 ] || [ "${2#--}" != "$2" ]; then
258+
log_warn "Missing/invalid value for --lava-testcase-id"
259+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
260+
exit 0
261+
fi
262+
[ -n "$2" ] && RESULT_TESTNAME="$2"
263+
shift 2
264+
;;
255265
-h|--help)
256266
cat <<EOF
257267
Usage: $0 [OPTIONS]
@@ -294,6 +304,11 @@ OPTIONS:
294304
--clip-path <path> Local path to test video files
295305
(overrides --clip-url if files exist)
296306
307+
--lava-testcase-id <name>
308+
Override the test case name reported to LAVA
309+
(default: Video_Encode_Decode)
310+
Used by LAVA to match expected test case names
311+
297312
-h, --help Display this help message
298313
299314
ENVIRONMENT VARIABLES:
@@ -332,7 +347,7 @@ EOF
332347
;;
333348
*)
334349
log_warn "Unknown argument: $1"
335-
echo "$TESTNAME SKIP" >"$RES_FILE"
350+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
336351
exit 0
337352
;;
338353
esac
@@ -341,28 +356,28 @@ done
341356
# -------------------- Validate parsed values --------------------
342357
case "$testMode" in all|encode|decode) : ;; *)
343358
log_warn "Invalid --mode '$testMode'"
344-
echo "$TESTNAME SKIP" >"$RES_FILE"
359+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
345360
exit 0
346361
;;
347362
esac
348363

349364
case "$gstDebugLevel" in 1|2|3|4|5|6|7|8|9) : ;; *)
350365
log_warn "Invalid --gst-debug '$gstDebugLevel' (allowed: 1-9)"
351-
echo "$TESTNAME SKIP" >"$RES_FILE"
366+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
352367
exit 0
353368
;;
354369
esac
355370

356371
case "$duration" in
357372
''|*[!0-9]*)
358373
log_warn "Invalid duration '$duration' (must be numeric)"
359-
echo "$TESTNAME SKIP" >"$RES_FILE"
374+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
360375
exit 0
361376
;;
362377
*)
363378
if [ "$duration" -le 0 ] 2>/dev/null; then
364379
log_warn "Duration must be positive (got '$duration')"
365-
echo "$TESTNAME SKIP" >"$RES_FILE"
380+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
366381
exit 0
367382
fi
368383
;;
@@ -371,13 +386,13 @@ esac
371386
case "$framerate" in
372387
''|*[!0-9]*)
373388
log_warn "Invalid framerate '$framerate' (must be numeric)"
374-
echo "$TESTNAME SKIP" >"$RES_FILE"
389+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
375390
exit 0
376391
;;
377392
*)
378393
if [ "$framerate" -le 0 ] 2>/dev/null; then
379394
log_warn "Framerate must be positive (got '$framerate')"
380-
echo "$TESTNAME SKIP" >"$RES_FILE"
395+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
381396
exit 0
382397
fi
383398
;;
@@ -386,7 +401,7 @@ esac
386401
# -------------------- Pre-checks --------------------
387402
check_dependencies "gst-launch-1.0 gst-inspect-1.0 awk grep head sed tr stat find curl tar" >/dev/null 2>&1 || {
388403
log_skip "Missing required tools (gst-launch-1.0, gst-inspect-1.0, awk, grep, head, sed, tr, stat, find, curl, tar)"
389-
echo "$TESTNAME SKIP" >"$RES_FILE"
404+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
390405
exit 0
391406
}
392407

@@ -737,15 +752,15 @@ fi
737752
case "$result" in
738753
PASS)
739754
log_pass "$TESTNAME $result: $reason"
740-
echo "$TESTNAME PASS" >"$RES_FILE"
755+
echo "$RESULT_TESTNAME PASS" >"$RES_FILE"
741756
;;
742757
FAIL)
743758
log_fail "$TESTNAME $result: $reason"
744-
echo "$TESTNAME FAIL" >"$RES_FILE"
759+
echo "$RESULT_TESTNAME FAIL" >"$RES_FILE"
745760
;;
746761
*)
747762
log_warn "$TESTNAME $result: $reason"
748-
echo "$TESTNAME SKIP" >"$RES_FILE"
763+
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
749764
;;
750765
esac
751766

0 commit comments

Comments
 (0)