Audio: Add YAML configuration files for AudioPlayback and AudioRecord test cases#262
Audio: Add YAML configuration files for AudioPlayback and AudioRecord test cases#262smuppand merged 1 commit intoqualcomm-linux:mainfrom
Conversation
tmoida
commented
Jan 28, 2026
- Created 10 AudioPlayback configuration files (Config1-Config10)
- Created 10 AudioRecord configuration files (Config1-Config10)
- Organized files into AudioPlayback_Configs and AudioRecord_Configs directories
- Updated README files with new directory structure and usage instructions
- Added documentation for YAML configuration files and LAVA test commands
smuppand
left a comment
There was a problem hiding this comment.
- Fix Config mapping mismatch (README vs YAML vs clip names).
- Standardize names:
- Use Config01 everywhere (metadata, RES_SUFFIX, result files, docs).
- Remove || true from send-to-lava.sh step
- Make TIMEOUT types consistent (strings with units or numeric everywhere).
- Shorten metadata.description and move long text to README.
- Convert README config listing into a proper markdown table (and correct ordering).
|
Hi @smuppand, As per your suggestions, I have fixed all the issues in the PR. Please review the latest changes and let me know if any further modifications are required. |
| @@ -1,7 +1,7 @@ | |||
| metadata: | |||
| name: audio-playback | |||
| name: audio-playback-config01 | |||
There was a problem hiding this comment.
Backward compatibility break you moved AudioPlayback.yaml
AudioPlayback.yaml → AudioPlayback_Configs/AudioPlayback_Config01.yaml
This can break:
existing LAVA jobs referencing the old YAML path
docs / CI scripts expecting .../AudioPlayback
Request: keep a compatibility YAML at the old location:
Runner/suites/Multimedia/Audio/AudioPlayback/AudioPlayback.yaml
Those can simply be copies of Config01 with legacy metadata name (or same, doesn’t matter much), but the file path must exist.
There was a problem hiding this comment.
Fixed. I've kept AudioPlayback.yaml at its original location to maintain backward compatibility with existing LAVA jobs and CI scripts.
| @@ -1,7 +1,7 @@ | |||
| metadata: | |||
| name: audio-record | |||
| name: audio-record-config01 | |||
There was a problem hiding this comment.
Backward compatibility break: moved AudioRecord.yaml
They renamed:
AudioRecord.yaml → AudioRecord_Configs/AudioRecord_Config01.yaml
This can break:
existing LAVA jobs referencing the old YAML path
docs / CI scripts expecting ...AudioPlayback.yaml
Request: keep a compatibility YAML at the old location:
Runner/suites/Multimedia/Audio/AudioRecord/AudioRecord.yaml
Those can simply be copies of Config01 with legacy metadata name (or same, doesn’t matter much), but the file path must exist.
There was a problem hiding this comment.
Fixed. I've kept AudioPlayback.yaml at its original location to maintain backward compatibility with existing LAVA jobs and CI scripts.
| - cd Runner/suites/Multimedia/Audio/AudioRecord/ | ||
| - ./run.sh --backend "${AUDIO_BACKEND}" --source "${SOURCE_CHOICE}" --config-name "${CONFIG_NAMES}" --config-filter "${CONFIG_FILTER}" --record-seconds "${RECORD_SECONDS}" --loops "${LOOPS}" --timeout "${TIMEOUT}" --strict "${STRICT}" --res-suffix "${RES_SUFFIX}" || true | ||
| - $REPO_PATH/Runner/utils/send-to-lava.sh AudioRecord${RES_SUFFIX:+_${RES_SUFFIX}}.res || true | ||
| - ./run.sh --backend "${AUDIO_BACKEND}" --source "${SOURCE_CHOICE}" --config-name "${CONFIG_NAMES}" --config-filter "${CONFIG_FILTER}" --record-seconds "${RECORD_SECONDS}" --loops "${LOOPS}" --timeout "${TIMEOUT}" --strict "${STRICT}" --res-suffix "${RES_SUFFIX}" |
There was a problem hiding this comment.
Fixed. I've restored the || true for run.sh calls in all YAML files while keeping send-to-lava.sh without it.
| ``` | ||
| | Config | Config Name | Sample Rate | Bit Rate | Channels | | ||
| |----------|-------------------|-------------|----------|----------| | ||
| | Config01 | playback_config1 | 8 KHz | 8-bit | 1ch | |
There was a problem hiding this comment.
Config01 → playback_config1 (no zero)
But the YAML uses:
CLIP_NAMES: playback_config01
Same for record side.
There was a problem hiding this comment.
Fixed. I've updated all YAML files to use config names without leading zeros (playback_config1, record_config1) to match the source code in audio_common.sh. File names still use the Config01 format (with leading zero) for better sorting and organization.
| case "$config_name" in | ||
| record_config0*) | ||
| # Extract number and remove leading zero for internal processing | ||
| config_num="$(printf '%s' "$config_name" | sed -n 's/^record_config0*\([0-9][0-9]*\)$/\1/p')" |
There was a problem hiding this comment.
sed returns empty (unexpected input), normalized_name becomes record_config which won’t match any case labels and could change behavior subtly.
config_num="$(...)"
if [ -n "$config_num" ]; then
normalized_name="record_config$config_num"
fi
Same pattern applies anywhere they normalize playback_config0*.
There was a problem hiding this comment.
Fixed. I've added validation to the normalization code in audio_common.sh to handle cases where sed extraction fails. The code now checks if config_num is non-empty before creating the normalized name, preventing silent failures with unexpected input formats.
… test cases - Created 10 AudioPlayback configuration files (Config01-Config10) with standardized naming - Created 10 AudioRecord configuration files (Config01-Config10) with standardized naming - Reorganized YAML files from subdirectories to parent directories - Added legacy files (AudioPlayback.yaml and AudioRecord.yaml) for backward compatibility - Updated README files with proper markdown tables and usage instructions - Removed error masking (|| true) from send-to-lava.sh calls for proper error propagation - Shortened metadata descriptions for better readability - Updated audio_common.sh to handle standardized naming conventions - Added documentation for YAML configuration files and LAVA test commands Signed-off-by: Teja Swaroop Moida <tmoida@qti.qualcomm.com>
|
Hi @smuppand,
Please review the latest changes and let me know if any further modifications are required. |
| # Input: record_config1 or record_config01 | ||
| # Output: record_8KHz_1ch | ||
| # Returns: 0=success, 1=invalid config | ||
| generate_record_testcase_name() { |
There was a problem hiding this comment.
generate_record_testcase_name() sets normalized_name="record_config$config_num" even if config_num is empty (it doesn’t guard like the other function). That’s minor but could create "record_config" and fall into invalid case anyway. Not a big deal, but if you want it fully consistent, add the same guard.
There was a problem hiding this comment.
This can be addressed in a separate PR. For now, I am merging the change. Please take note.