Skip to content

Commit 0142a76

Browse files
committed
lava: add gstreamer-audio-playback test definition for Audio_Playback runner
- Maps YAML params to run.sh CLI (only passes args when non-empty) - Supports backend/stack/format/duration/clipdur/clip overrides - Supports assets and clips-dir provisioning inputs - Supports optional caps enforcement, sink selection, null sink and GST debug level - Publishes Audio_Playback.res via send-to-lava.sh Signed-off-by: Srikanth Muppandam <smuppand@qti.qualcomm.com>
1 parent cc00ce4 commit 0142a76

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
metadata:
2+
name: gstreamer-audio-playback
3+
format: "Lava-Test Test Definition 1.0"
4+
description: >
5+
Audio playback validation using GStreamer (gst-launch-1.0) on Qualcomm Linux platforms.
6+
Supports backend chaining (pipewire/pulseaudio/alsa), optional overlay stack setup,
7+
clip provisioning from local assets or URL, caps inference via gst-discoverer, and
8+
evidence-based PASS/FAIL (PipeWire/Pulse/ALSA + optional ASoC path_on fallback).
9+
os:
10+
- linux
11+
scope:
12+
- functional
13+
14+
params:
15+
# Mirrors run.sh CLI + env behavior
16+
AUDIO_BACKEND: "" # auto|pipewire|pulseaudio|alsa (empty -> run.sh default "auto")
17+
AUDIO_STACK: "" # auto|base|overlay (empty -> run.sh default "auto")
18+
AUDIO_FORMAT: "wav" # wav|aac|mp3|flac
19+
AUDIO_DURATION: "10s" # N|Ns|Nm|Nh|MM:SS|HH:MM:SS
20+
AUDIO_CLIPDUR: "short" # short|medium|long
21+
AUDIO_CLIP: "" # absolute path override (optional)
22+
23+
AUDIO_CLIPS_DIR: "" # directory containing clips (sets AUDIO_CLIPS_BASE_DIR inside run.sh)
24+
AUDIO_ASSETS: "" # dir or .tar/.tar.gz/.tgz file to provision clips
25+
AUDIO_ASSETS_URL: "" # optional URL used only if clip missing and audio_ensure_clip_ready exists
26+
27+
AUDIO_RATE: "" # force/inject caps rate (Hz) (optional)
28+
AUDIO_CHANNELS: "" # force/inject caps channels (optional)
29+
AUDIO_SINK: "" # sink selector (PipeWire id/substr, Pulse sink/index)
30+
AUDIO_NULL_SINK: "0" # 1 to add --null-sink
31+
32+
AUDIO_ALSA_DEVICE: "" # hw:C,D or default (optional override for alsasink fallback)
33+
AUDIO_GST_DEBUG: "2" # 1|2|3|4|5|6|7|9
34+
35+
run:
36+
steps:
37+
- REPO_PATH="$PWD"
38+
39+
# IMPORTANT: path matches your repo layout shown in the prompt
40+
- cd Runner/suites/Multimedia/GSTreamer/Audio/Audio_Playback/
41+
42+
# Build CLI args only when params are non-empty
43+
- |
44+
CMD="./run.sh"
45+
46+
[ -n "${AUDIO_BACKEND}" ] && CMD="${CMD} --backend ${AUDIO_BACKEND}"
47+
[ -n "${AUDIO_STACK}" ] && CMD="${CMD} --stack ${AUDIO_STACK}"
48+
[ -n "${AUDIO_FORMAT}" ] && CMD="${CMD} --format ${AUDIO_FORMAT}"
49+
[ -n "${AUDIO_DURATION}" ] && CMD="${CMD} --duration ${AUDIO_DURATION}"
50+
[ -n "${AUDIO_CLIPDUR}" ] && CMD="${CMD} --clipdur ${AUDIO_CLIPDUR}"
51+
[ -n "${AUDIO_CLIP}" ] && CMD="${CMD} --clip ${AUDIO_CLIP}"
52+
53+
[ -n "${AUDIO_CLIPS_DIR}" ] && CMD="${CMD} --clips-dir ${AUDIO_CLIPS_DIR}"
54+
[ -n "${AUDIO_ASSETS}" ] && CMD="${CMD} --assets ${AUDIO_ASSETS}"
55+
[ -n "${AUDIO_ASSETS_URL}" ] && CMD="${CMD} --assets-url ${AUDIO_ASSETS_URL}"
56+
57+
[ -n "${AUDIO_RATE}" ] && CMD="${CMD} --rate ${AUDIO_RATE}"
58+
[ -n "${AUDIO_CHANNELS}" ] && CMD="${CMD} --channels ${AUDIO_CHANNELS}"
59+
[ -n "${AUDIO_SINK}" ] && CMD="${CMD} --sink ${AUDIO_SINK}"
60+
61+
[ -n "${AUDIO_ALSA_DEVICE}" ] && CMD="${CMD} --alsa-device ${AUDIO_ALSA_DEVICE}"
62+
[ -n "${AUDIO_GST_DEBUG}" ] && CMD="${CMD} --gst-debug ${AUDIO_GST_DEBUG}"
63+
64+
if [ "${AUDIO_NULL_SINK}" = "1" ] || [ "${AUDIO_NULL_SINK}" = "true" ]; then
65+
CMD="${CMD} --null-sink"
66+
fi
67+
68+
echo "[LAVA] Running: ${CMD}"
69+
sh -c "${CMD}" || true
70+
71+
# Your run.sh writes ./Audio_Playback.res in this directory
72+
- "${REPO_PATH}/Runner/utils/send-to-lava.sh Audio_Playback.res || true"

0 commit comments

Comments
 (0)