-
Notifications
You must be signed in to change notification settings - Fork 40
Add Audio_Hamoa: ALSA-based audio playback and recording tests for Ha… #477
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| metadata: | ||
| name: audio-playback-hamoa-handset | ||
| format: "Lava-Test Test Definition 1.0" | ||
| description: "Audio Hamoa handset playback validation (4-way speaker system)" | ||
| os: | ||
| - linux | ||
| scope: | ||
| - functional | ||
|
|
||
| params: | ||
| AUDIO_BACKEND: "alsa" # Audio backend: alsa, default: alsa | ||
| ALSA_PROFILE: "hamoa" # ALSA profile: hamoa, default: hamoa | ||
| DEVICE: "handset" # Device to test: handset or headset, default: handset | ||
| CLIP_NAMES: "playback_config1" # Clip configuration name for auto-discovery, default: playback_config1 | ||
| AUDIO_CLIPS_BASE_DIR: "/home/AudioClips" # Path to audio clips directory, default: /home/AudioClips | ||
| LOOPS: 1 # Number of playback loops, default: 1 | ||
| TIMEOUT: "10s" # Playback timeout per loop (e.g., 15s, 0=none), default: 10s | ||
| DMESG_SCAN: 1 # Scan dmesg for errors after playback, default: 1 | ||
| VERBOSE: 0 # Enable verbose logging, default: 0 | ||
| RES_SUFFIX: "Hamoa_Handset" # Suffix for unique result file, default: Hamoa_Handset | ||
| LAVA_TESTCASE_ID: "AudioPlayback_Hamoa_Handset" # Unique testcase ID for LAVA, default: AudioPlayback_Hamoa_Handset | ||
|
|
||
| run: | ||
| steps: | ||
| - REPO_PATH=$PWD | ||
| - cd Runner/suites/Multimedia/Audio/AudioPlayback/ | ||
| - ./run.sh --backend "${AUDIO_BACKEND}" --alsa-profile "${ALSA_PROFILE}" --device "${DEVICE}" --clip-name "${CLIP_NAMES}" --audio-clips-path "${AUDIO_CLIPS_BASE_DIR}" --loops "${LOOPS}" --timeout "${TIMEOUT}" --res-suffix "${RES_SUFFIX}" --lava-testcase-id "${LAVA_TESTCASE_ID}" || true | ||
| - $REPO_PATH/Runner/utils/send-to-lava.sh AudioPlayback${RES_SUFFIX:+_${RES_SUFFIX}}.res | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| metadata: | ||
| name: audio-playback-hamoa-headset | ||
| format: "Lava-Test Test Definition 1.0" | ||
| description: "Audio Hamoa headset playback validation (stereo headphones)" | ||
| os: | ||
| - linux | ||
| scope: | ||
| - functional | ||
|
|
||
| params: | ||
| AUDIO_BACKEND: "alsa" # Audio backend: alsa, default: alsa | ||
| ALSA_PROFILE: "hamoa" # ALSA profile: hamoa, default: hamoa | ||
| DEVICE: "headset" # Device to test: handset or headset, default: headset | ||
| CLIP_NAMES: "playback_config1" # Clip configuration name for auto-discovery, default: playback_config1 | ||
| AUDIO_CLIPS_BASE_DIR: "/home/AudioClips" # Path to audio clips directory, default: /home/AudioClips | ||
| LOOPS: 1 # Number of playback loops, default: 1 | ||
| TIMEOUT: "10s" # Playback timeout per loop (e.g., 15s, 0=none), default: 10s | ||
| DMESG_SCAN: 1 # Scan dmesg for errors after playback, default: 1 | ||
| VERBOSE: 0 # Enable verbose logging, default: 0 | ||
| RES_SUFFIX: "Hamoa_Headset" # Suffix for unique result file, default: Hamoa_Headset | ||
| LAVA_TESTCASE_ID: "AudioPlayback_Hamoa_Headset" # Unique testcase ID for LAVA, default: AudioPlayback_Hamoa_Headset | ||
|
|
||
| run: | ||
| steps: | ||
| - REPO_PATH=$PWD | ||
| - cd Runner/suites/Multimedia/Audio/AudioPlayback/ | ||
| - ./run.sh --backend "${AUDIO_BACKEND}" --alsa-profile "${ALSA_PROFILE}" --device "${DEVICE}" --clip-name "${CLIP_NAMES}" --audio-clips-path "${AUDIO_CLIPS_BASE_DIR}" --loops "${LOOPS}" --timeout "${TIMEOUT}" --res-suffix "${RES_SUFFIX}" --lava-testcase-id "${LAVA_TESTCASE_ID}" || true | ||
| - $REPO_PATH/Runner/utils/send-to-lava.sh AudioPlayback${RES_SUFFIX:+_${RES_SUFFIX}}.res |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -7,7 +7,7 @@ This suite automates the validation of audio playback capabilities on Qualcomm L | |
|
|
||
| ## Features | ||
|
|
||
| - Supports **PipeWire** and **PulseAudio** backends | ||
| - Supports **PipeWire**, **PulseAudio**, and **ALSA** backends (including Hamoa ALSA profile) | ||
| - **10-clip test coverage**: Comprehensive validation across diverse audio formats (sample rates: 8KHz-48KHz, bit depths: 8b-32b, channels: 1ch-8ch) | ||
| - **Flexible clip selection**: | ||
| - Use generic config names (playback_config1-playback_config10) for easy selection | ||
|
|
@@ -74,14 +74,105 @@ For overlay builds using audioreach kernel modules, the test automatically: | |
|
|
||
| This happens transparently before tests run. No manual configuration needed. | ||
|
|
||
| ## Hamoa ALSA Profile Support | ||
|
|
||
| For **Hamoa base builds** (ALSA-only, no PipeWire/PulseAudio), use the dedicated Hamoa YAML files: | ||
|
|
||
| ### Hamoa-Specific Features | ||
| - **Direct ALSA backend** with hardware-specific profile (`--backend alsa --alsa-profile hamoa`) | ||
| - **Device-specific routing**: Handset (4-way speaker system) and Headset (stereo headphones) | ||
| - **Hardware mixer configuration**: Automatic mixer setup for each device | ||
| - **10 playback configs**: Same comprehensive coverage as generic configs | ||
| - **CI/LAVA ready**: Includes `--res-suffix` and `--lava-testcase-id` parameters | ||
|
|
||
| ### Hamoa YAML Files | ||
| ``` | ||
| AudioPlayback_Hamoa_Handset.yaml # For handset (4-way speakers) | ||
| AudioPlayback_Hamoa_Headset.yaml # For headset (stereo headphones) | ||
| ``` | ||
|
|
||
| ### Hamoa Usage Examples | ||
|
|
||
| **Handset Playback (4-way speaker system):** | ||
| ```bash | ||
| cd Runner/suites/Multimedia/Audio/AudioPlayback | ||
|
|
||
| # Test with handset device | ||
| ./run.sh --backend alsa --alsa-profile hamoa --device handset \ | ||
| --clip-name playback_config1 --audio-clips-path /home/AudioClips \ | ||
| --loops 1 --timeout 10s | ||
|
|
||
| # With CI/LAVA parameters | ||
| ./run.sh --backend alsa --alsa-profile hamoa --device handset \ | ||
| --clip-name playback_config1 --audio-clips-path /home/AudioClips \ | ||
| --loops 1 --timeout 10s --res-suffix Hamoa_Handset \ | ||
| --lava-testcase-id AudioPlayback_Hamoa_Handset | ||
| ``` | ||
|
|
||
| **Headset Playback (stereo headphones):** | ||
| ```bash | ||
| # Test with headset device | ||
| ./run.sh --backend alsa --alsa-profile hamoa --device headset \ | ||
| --clip-name playback_config1 --audio-clips-path /home/AudioClips \ | ||
| --loops 1 --timeout 10s | ||
|
|
||
| # With CI/LAVA parameters | ||
| ./run.sh --backend alsa --alsa-profile hamoa --device headset \ | ||
| --clip-name playback_config1 --audio-clips-path /home/AudioClips \ | ||
| --loops 1 --timeout 10s --res-suffix Hamoa_Headset \ | ||
| --lava-testcase-id AudioPlayback_Hamoa_Headset | ||
| ``` | ||
|
|
||
| ### Hamoa Sample Output | ||
| ``` | ||
| ubuntu@ubuntu:tmp/Runner/suites/Multimedia/Audio/AudioPlayback$ ./run.sh --backend alsa --alsa-profile hamoa --device handset --clip-name playback_config1 --audio-clips-path /home/AudioClips --loops 1 --timeout 10s --res-suffix Hamoa_Handset --lava-testcase-id AudioPlayback_Hamoa_Handset | ||
| [INFO] 2026-04-15 19:24:11 - Using unique result file: /tmp/Runner/suites/Multimedia/Audio/AudioPlayback/AudioPlayback_Hamoa_Handset.res | ||
| [INFO] 2026-04-15 19:24:11 - Using unique log directory: /tmp/Runner/suites/Multimedia/Audio/AudioPlayback/results/AudioPlayback_Hamoa_Handset | ||
| [INFO] 2026-04-15 19:24:11 - Base build detected, no audioreach modules, skipping overlay setup | ||
| [INFO] 2026-04-15 19:24:11 - ---------------- Starting AudioPlayback ---------------- | ||
| [INFO] 2026-04-15 19:24:11 - Platform Details: machine='Qualcomm Technologies, Inc. Hamoa IoT EVK' target='unknown' kernel='7.0.0-1005-qcom' arch='aarch64' | ||
| [INFO] 2026-04-15 19:24:11 - Using backend: alsa | ||
| [INFO] 2026-04-15 19:24:11 - Using hardware-specific ALSA profile 'hamoa' - device validation handled by profile | ||
| [INFO] 2026-04-15 19:24:11 - Using ALSA profile: hamoa for device: handset | ||
| [INFO] 2026-04-15 19:24:11 - Configuring mixer for handset playback (speakers)... | ||
| [INFO] 2026-04-15 19:24:11 - Handset playback mixer configured successfully | ||
| [INFO] 2026-04-15 19:24:11 - ALSA profile configured successfully, device: plughw:0,1 | ||
| [INFO] 2026-04-15 19:24:11 - Using clip discovery mode | ||
| [INFO] 2026-04-15 19:24:12 - Discovered 1 clips to test | ||
| [INFO] 2026-04-15 19:24:12 - [play_16KHz_16b_2ch] Using clip: yesterday_16KHz_30s_16b_2ch.wav (1922036 bytes) | ||
| [INFO] 2026-04-15 19:24:12 - [play_16KHz_16b_2ch] loop 1/1 start=2026-04-15T19:24:12Z clip=yesterday_16KHz_30s_16b_2ch.wav backend=alsa sink=speakers(plughw:0,1) | ||
| [INFO] 2026-04-15 19:24:12 - [play_16KHz_16b_2ch] exec: aplay -D "plughw:0,1" "/home/AudioClips/yesterday_16KHz_30s_16b_2ch.wav" | ||
| [INFO] 2026-04-15 19:24:24 - [play_16KHz_16b_2ch] evidence: pw_streaming=0 pa_streaming=1 alsa_running=0 asoc_path_on=0 pw_log=0 | ||
| [WARN] 2026-04-15 19:24:24 - [play_16KHz_16b_2ch] nonzero rc=1 but evidence indicates playback - PASS | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix backend-specific playback validation and replace this sample with a run where:
|
||
| [PASS] 2026-04-15 19:24:25 - AudioPlayback PASS | ||
|
|
||
| ubuntu@ubuntu:tmp/Runner/suites/Multimedia/Audio/AudioPlayback$ cat AudioPlayback_Hamoa_Handset.res | ||
| AudioPlayback_Hamoa_Handset PASS | ||
| ``` | ||
|
|
||
| ### Hamoa Device Mapping | ||
| | Device | Hardware | ALSA Device | Mixer Profile | | ||
| |----------|-----------------------------|--------------|------------------------| | ||
| | handset | 4-way speaker system | plughw:0,1 | handset_playback | | ||
| | headset | Stereo headphones | plughw:0,0 | headset_playback | | ||
|
|
||
| ### Important Notes for Hamoa | ||
| - **ALSA-only**: Hamoa builds do not have PipeWire/PulseAudio. Always use `--backend alsa --alsa-profile hamoa` | ||
| - **Device parameter required**: Must specify `--device handset` or `--device headset` | ||
| - **Automatic mixer configuration**: The script automatically configures hardware mixers for each device | ||
| - **Evidence-based validation**: Uses ALSA runtime status and ASoC path validation | ||
| - **All 10 configs supported**: Same playback_config1-10 coverage as generic configs | ||
|
|
||
| ## Directory Structure | ||
|
|
||
| ```bash | ||
| Runner/ | ||
| ├── run-test.sh | ||
| ├── utils/ | ||
| │ ├── functestlib.sh | ||
| │ └── audio_common.sh | ||
| │ └── audio/ | ||
| │ ├── audio_common.sh # Generic audio utilities | ||
| │ └── alsa_common.sh # ALSA-specific utilities (Hamoa support) | ||
| └── suites/ | ||
| └── Multimedia/ | ||
| └── Audio/ | ||
|
|
@@ -92,7 +183,9 @@ Runner/ | |
| ├── AudioPlayback_Config01.yaml | ||
| ├── AudioPlayback_Config02.yaml | ||
| ├── ... | ||
| └── AudioPlayback_Config10.yaml | ||
| ├── AudioPlayback_Config10.yaml | ||
| ├── AudioPlayback_Hamoa_Handset.yaml # Hamoa handset playback | ||
| └── AudioPlayback_Hamoa_Headset.yaml # Hamoa headset playback | ||
| ``` | ||
|
|
||
| ## Usage | ||
|
|
@@ -210,7 +303,7 @@ cd Runner/suites/Multimedia/Audio/AudioPlayback | |
|
|
||
| Environment Variables: | ||
| Variable Description Default | ||
| AUDIO_BACKEND Selects backend: pipewire or pulseaudio auto-detect | ||
| AUDIO_BACKEND Selects backend: pipewire, pulseaudio, or alsa auto-detect | ||
| SINK_CHOICE Playback sink: speakers or null speakers | ||
| CLIP_NAMES Test specific clips (e.g., "playback_config1 playback_config2") playback_config1 | ||
| CLIP_FILTER Filter clips by pattern (e.g., "48KHz" or "16b" or "2ch") unset | ||
|
|
@@ -232,10 +325,14 @@ NET_PING_HOST Host used for ping reachability check 8.8.8 | |
| RES_SUFFIX Suffix for unique result file and log directory unset | ||
| LAVA_TESTCASE_ID Unique testcase ID written into the .res file for LAVA AudioPlayback | ||
|
|
||
| **Hamoa-Specific Environment Variables (ALSA backend only):** | ||
| ALSA_PROFILE ALSA hardware profile (e.g., "hamoa") unset | ||
| DEVICE Device type: handset or headset (Hamoa only) unset | ||
|
|
||
|
|
||
| CLI Options | ||
| Option Description | ||
| --backend Select backend: pipewire or pulseaudio | ||
| --backend Select backend: pipewire, pulseaudio, or alsa | ||
| --sink Playback sink: speakers or null | ||
| --clip-name <names> Test specific clips using playback_config1-playback_config10 or descriptive names (space-separated) | ||
| --clip-filter <patterns> Filter clips by sample rate, bit rate, or channels (space-separated patterns) | ||
|
|
@@ -254,6 +351,10 @@ Option Description | |
| --verbose Enable verbose logging | ||
| --help Show usage instructions | ||
|
|
||
| **Hamoa-Specific CLI Options (ALSA backend only):** | ||
| --alsa-profile <profile> ALSA hardware profile (e.g., "hamoa") | ||
| --device <type> Device type: handset or headset (Hamoa only) | ||
|
|
||
| ``` | ||
|
|
||
| Sample Output: | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -36,7 +36,7 @@ fi | |
| # shellcheck disable=SC1091 | ||
| . "$TOOLS/functestlib.sh" | ||
| # shellcheck disable=SC1091 | ||
| . "$TOOLS/audio_common.sh" | ||
| . "$TOOLS/audio/audio_common.sh" | ||
| # shellcheck disable=SC1091 | ||
| . "$TOOLS/lib_video.sh" | ||
|
|
||
|
|
@@ -71,6 +71,8 @@ export AUDIO_TAR_URL | |
|
|
||
| # ------------- Defaults / CLI ------------- | ||
| AUDIO_BACKEND="" | ||
| ALSA_PROFILE="${ALSA_PROFILE:-generic}" # ALSA profile (hamoa, generic) | ||
| DEVICE="${DEVICE:-}" # Device type for ALSA profiles (handset, headset) | ||
| SINK_CHOICE="${SINK_CHOICE:-speakers}" # speakers|null | ||
| FORMATS="" # Will be set to default only if using legacy mode | ||
| DURATIONS="" # Will be set to default only if using legacy mode | ||
|
|
@@ -111,7 +113,9 @@ PASSWORD="" | |
| usage() { | ||
| cat <<EOF | ||
| Usage: $0 [options] | ||
| --backend {pipewire|pulseaudio} | ||
| --backend {pipewire|pulseaudio|alsa} | ||
| --alsa-profile {hamoa|generic} # ALSA profile (when backend=alsa, default: generic) | ||
| --device {handset|headset} # Device type for ALSA profiles (required with --alsa-profile) | ||
| --sink {speakers|null} | ||
| --formats "wav" # Legacy matrix mode only | ||
| --durations "short|short medium" # Legacy matrix mode only (not recommended for new tests) | ||
|
|
@@ -158,6 +162,14 @@ while [ $# -gt 0 ]; do | |
| AUDIO_BACKEND="$2" | ||
| shift 2 | ||
| ;; | ||
| --alsa-profile) | ||
| ALSA_PROFILE="$2" | ||
| shift 2 | ||
| ;; | ||
| --device) | ||
| DEVICE="$2" | ||
| shift 2 | ||
| ;; | ||
| --sink) | ||
| SINK_CHOICE="$2" | ||
| shift 2 | ||
|
|
@@ -466,6 +478,21 @@ else | |
| log_info "Sub-run: skipping initial network bring-up." | ||
| fi | ||
|
|
||
| # Hardware-specific ALSA profiles require direct ALSA backend | ||
| # Profiles like 'hamoa' configure hardware mixer controls and route to specific | ||
| # ALSA devices (e.g., plughw:0,1). These operations require direct ALSA access. | ||
| # Auto-detection may select PipeWire/PulseAudio which adds an abstraction layer | ||
| # that can interfere with low-level mixer configuration and device routing. | ||
| if [ "$ALSA_PROFILE" != "generic" ] && [ -n "$ALSA_PROFILE" ]; then | ||
| if [ -z "$AUDIO_BACKEND" ]; then | ||
| AUDIO_BACKEND="alsa" | ||
| log_info "ALSA profile '$ALSA_PROFILE' requires direct hardware access - using backend: alsa" | ||
| elif [ "$AUDIO_BACKEND" != "alsa" ]; then | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. A hardware-specific ALSA profile used with a non-ALSA backend only produces warnings: elif [ "$AUDIO_BACKEND" != "alsa" ]; then The runner continues with PipeWire or PulseAudio, while the requested Hamoa mixer setup is only executed in the ALSA backend branch. Recommended fix: Treat this as an invalid configuration and report SKIP before backend initialization: if [ "$ALSA_PROFILE" != "generic" ] && Apply the same validation in "AudioRecord/run.sh". |
||
| log_warn "ALSA profile '$ALSA_PROFILE' specified with backend '$AUDIO_BACKEND'" | ||
| log_warn "Hardware-specific profiles work best with direct ALSA backend" | ||
| fi | ||
| fi | ||
|
|
||
| # Resolve backend | ||
| if [ -z "$AUDIO_BACKEND" ]; then | ||
| AUDIO_BACKEND="$(detect_audio_backend 2>/dev/null || echo "")" | ||
|
|
@@ -510,7 +537,13 @@ log_info "Using backend: $AUDIO_BACKEND" | |
|
|
||
| backend_ok=0 | ||
| if [ "$AUDIO_BACKEND" = "alsa" ]; then | ||
| if audio_playback_alsa_probe; then | ||
| # Hardware-specific ALSA profiles provide explicit device paths and mixer configurations. | ||
| # The profile setup functions validate device availability, so additional probing is | ||
| # unnecessary and may fail when other audio servers (PipeWire/PulseAudio) are present. | ||
| if [ "$ALSA_PROFILE" != "generic" ] && [ -n "$ALSA_PROFILE" ]; then | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Playback marks the ALSA backend ready for any non-generic profile: if [ "$ALSA_PROFILE" != "generic" ] && [ -n "$ALSA_PROFILE" ]; then This happens before validating "DEVICE", checking whether the profile is supported on the detected target, or verifying that the expected setup/getter functions exist. Recommended fix: Validate the complete profile configuration before setting "backend_ok=1". At minimum, require: profile=hamoa The profile setup should be considered ready only after card resolution and profile preflight succeed. |
||
| backend_ok=1 | ||
| log_info "Using hardware-specific ALSA profile '$ALSA_PROFILE' - device validation handled by profile" | ||
| elif audio_playback_alsa_probe; then | ||
| backend_ok=1 | ||
| fi | ||
| else | ||
|
|
@@ -680,11 +713,26 @@ case "$AUDIO_BACKEND:$SINK_CHOICE" in | |
| SINK_ID="null" | ||
| ;; | ||
| alsa:*) | ||
| audio_playback_alsa_prepare >/dev/null 2>&1 || true | ||
| if [ -n "${AUDIO_ALSA_PLAYBACK_DEVICE:-}" ]; then | ||
| SINK_ID="$AUDIO_ALSA_PLAYBACK_DEVICE" | ||
| # Check if using ALSA profile (e.g., Hamoa) | ||
| if [ "$ALSA_PROFILE" != "generic" ] && [ -n "$DEVICE" ]; then | ||
| # Use profile-specific setup | ||
| log_info "Using ALSA profile: $ALSA_PROFILE for device: $DEVICE" | ||
| if setup_alsa_profile_"${ALSA_PROFILE}"_playback_"${DEVICE}" "$LOGDIR"; then | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The profile and device values are used directly to build function names: setup_alsa_profile_"${ALSA_PROFILE}"playback"${DEVICE}" There is no fixed allowlist or "command -v" validation before dispatch. When a non-generic profile is supplied without a device, the condition is false and the runner silently takes the generic ALSA path. Recommended fix: Validate through an explicit mapping: case "$ALSA_PROFILE:$DEVICE" in Also check all profile dependencies before modifying mixer state: check_dependencies "aplay amixer grep sed" Use "arecord amixer grep sed" for capture. |
||
| SINK_ID="$(get_alsa_device_"${ALSA_PROFILE}"_playback_"${DEVICE}")" | ||
| log_info "ALSA profile configured successfully, device: $SINK_ID" | ||
| else | ||
| log_error "Failed to setup ALSA profile: $ALSA_PROFILE for device: $DEVICE" | ||
| echo "$RESULT_TESTNAME FAIL" >"$RES_FILE" | ||
| exit 1 | ||
| fi | ||
| else | ||
| SINK_ID="$(audio_playback_pick_alsa_sink)" | ||
| # Generic ALSA (existing behavior) | ||
| audio_playback_alsa_prepare >/dev/null 2>&1 || true | ||
| if [ -n "${AUDIO_ALSA_PLAYBACK_DEVICE:-}" ]; then | ||
| SINK_ID="$AUDIO_ALSA_PLAYBACK_DEVICE" | ||
| else | ||
| SINK_ID="$(audio_playback_pick_alsa_sink)" | ||
| fi | ||
| fi | ||
| ;; | ||
| esac | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,27 @@ | ||
| metadata: | ||
| name: audio-record-hamoa-handset | ||
| format: "Lava-Test Test Definition 1.0" | ||
| description: "Audio Hamoa handset capture validation (built-in microphone)" | ||
| os: | ||
| - linux | ||
| scope: | ||
| - functional | ||
|
|
||
| params: | ||
| AUDIO_BACKEND: "alsa" # Audio backend: alsa, default: alsa | ||
| ALSA_PROFILE: "hamoa" # ALSA profile: hamoa, default: hamoa | ||
| DEVICE: "handset" # Device to test: handset or headset, default: handset | ||
| CONFIG_NAMES: "record_config1" # Test specific configs (e.g., "record_config1 record_config2"), default: record_config1 | ||
| RECORD_SECONDS: "5s" # Recording duration with unit suffix (e.g., "5s", "10s", "30s"), default: 5s | ||
| LOOPS: 1 # Number of recording loops, default: 1 | ||
| DMESG_SCAN: 1 # Scan dmesg for errors after recording, default: 1 | ||
| VERBOSE: 0 # Enable verbose logging, default: 0 | ||
| RES_SUFFIX: "Hamoa_Handset" # Suffix for unique result file, default: Hamoa_Handset | ||
| LAVA_TESTCASE_ID: "AudioRecord_Hamoa_Handset" # Unique testcase ID for LAVA, default: AudioRecord_Hamoa_Handset | ||
|
|
||
| run: | ||
| steps: | ||
| - REPO_PATH=$PWD | ||
| - cd Runner/suites/Multimedia/Audio/AudioRecord/ | ||
| - ./run.sh --backend "${AUDIO_BACKEND}" --alsa-profile "${ALSA_PROFILE}" --device "${DEVICE}" --config-name "${CONFIG_NAMES}" --record-seconds "${RECORD_SECONDS}" --loops "${LOOPS}" --res-suffix "${RES_SUFFIX}" --lava-testcase-id "${LAVA_TESTCASE_ID}" || true | ||
| - $REPO_PATH/Runner/utils/send-to-lava.sh AudioRecord${RES_SUFFIX:+_${RES_SUFFIX}}.res |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,27 @@ | ||
| metadata: | ||
| name: audio-record-hamoa-headset | ||
| format: "Lava-Test Test Definition 1.0" | ||
| description: "Audio Hamoa headset capture validation (headset microphone)" | ||
| os: | ||
| - linux | ||
| scope: | ||
| - functional | ||
|
|
||
| params: | ||
| AUDIO_BACKEND: "alsa" # Audio backend: alsa, default: alsa | ||
| ALSA_PROFILE: "hamoa" # ALSA profile: hamoa, default: hamoa | ||
| DEVICE: "headset" # Device to test: handset or headset, default: headset | ||
| CONFIG_NAMES: "record_config1" # Test specific configs (e.g., "record_config1 record_config2"), default: record_config1 | ||
| RECORD_SECONDS: "5s" # Recording duration with unit suffix (e.g., "5s", "10s", "30s"), default: 5s | ||
| LOOPS: 1 # Number of recording loops, default: 1 | ||
| DMESG_SCAN: 1 # Scan dmesg for errors after recording, default: 1 | ||
| VERBOSE: 0 # Enable verbose logging, default: 0 | ||
| RES_SUFFIX: "Hamoa_Headset" # Suffix for unique result file, default: Hamoa_Headset | ||
| LAVA_TESTCASE_ID: "AudioRecord_Hamoa_Headset" # Unique testcase ID for LAVA, default: AudioRecord_Hamoa_Headset | ||
|
|
||
| run: | ||
| steps: | ||
| - REPO_PATH=$PWD | ||
| - cd Runner/suites/Multimedia/Audio/AudioRecord/ | ||
| - ./run.sh --backend "${AUDIO_BACKEND}" --alsa-profile "${ALSA_PROFILE}" --device "${DEVICE}" --config-name "${CONFIG_NAMES}" --record-seconds "${RECORD_SECONDS}" --loops "${LOOPS}" --res-suffix "${RES_SUFFIX}" --lava-testcase-id "${LAVA_TESTCASE_ID}" || true | ||
| - $REPO_PATH/Runner/utils/send-to-lava.sh AudioRecord${RES_SUFFIX:+_${RES_SUFFIX}}.res |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wire the values to the runner or remove them. For flag-based arguments:
Apply the same fix to all four new Hamoa YAML files.