You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Introduce unified audio test workflow and enhancements
- Modular runner supports both PipeWire and PulseAudio backends
- Validation improved with evidence-based checks for playback and recording
- Automatic handling of audio assets (download and extraction)
- Enhanced diagnostics: dmesg scan, mixer dumps, JUnit XML output for CI
- Added CLI options and environment variable support for configuration
- Utility scripts refactored for better extensibility and maintainability
Signed-off-by: Teja Swaroop Moida <[email protected]>
# Audio playback Validation Script for Qualcomm Linuxbased platform (Yocto)
1
+
# Audio Playback Validation Script for Qualcomm Linux-based Platform (Yocto)
2
2
3
3
## Overview
4
4
5
-
This script automates the validation of audio playback capabilities on the Qualcomm Linux based platform running a Yocto-based Linux system. It utilizes pulseaudio test app to decode wav file.
5
+
This suite automates the validation of audio playback capabilities on Qualcomm Linux-based platforms running a Yocto-based Linux system. It supports both PipeWire and PulseAudio backends, with robust evidence-based PASS/FAIL logic, asset management, and diagnostic logging.
6
+
6
7
7
8
## Features
8
9
9
-
- Decoding PCM clip
10
-
- Compatible with Yocto-based root filesystem
10
+
11
+
- Supports **PipeWire** and **PulseAudio** backends
12
+
- Plays audio clips with configurable format, duration, and loop count
13
+
- Automatically downloads and extracts audio assets if missing
14
+
- Validates playback using multiple evidence sources:
- Generates `.res` result file and optional JUnit XML output
21
+
11
22
12
23
## Prerequisites
13
24
14
25
Ensure the following components are present in the target Yocto build:
15
26
16
-
-`paplay` binary(available at /usr/bin)
27
+
- PipeWire: `pw-play`, `wpctl`
28
+
- PulseAudio: `paplay`, `pactl`
29
+
- Common tools: `pgrep`, `timeout`, `grep`, `wget`, `tar`
30
+
- Daemon: `pipewire` or `pulseaudio` must be running
17
31
18
32
## Directory Structure
19
33
20
34
```bash
21
35
Runner/
22
-
├──suites/
23
-
├ ├── Multimedia/
24
-
│ ├ ├── Audio/
25
-
│ ├ ├ ├── AudioPlayback/
26
-
│ ├ ├ ├ ├ └── run.sh
27
-
├ ├ ├ ├ ├ └── Read_me.md
36
+
├── run-test.sh
37
+
├── utils/
38
+
│ ├── functestlib.sh
39
+
│ └── audio_common.sh
40
+
└── suites/
41
+
└── Multimedia/
42
+
└── Audio/
43
+
├── AudioPlayback/
44
+
├── run.sh
45
+
└── Read_me.md
28
46
```
29
47
30
48
## Usage
31
49
32
-
33
-
Instructions
34
-
50
+
Instructions:
35
51
1. Copy repo to Target Device: Use scp to transfer the scripts from the host to the target device. The scripts should be copied to any directory on the target device.
36
-
37
-
2. Verify Transfer: Ensure that the repo have been successfully copied to any directory on the target device.
38
-
52
+
2. Verify Transfer: Ensure that the repo has been successfully copied to any directory on the target device.
39
53
3. Run Scripts: Navigate to the directory where these files are copied on the target device and execute the scripts as needed.
40
54
41
55
Run a specific test using:
@@ -46,33 +60,92 @@ git clone <this-repo>
46
60
cd <this-repo>
47
61
scp -r Runner user@target_device_ip:<Path in device>
48
62
ssh user@target_device_ip
49
-
cd <Path in device>/Runner && ./run-test.sh AudioPlayback
63
+
64
+
**Using Unified Runner**
65
+
cd <Path in device>/Runner
66
+
# Run AudioPlayback using PipeWire (auto-detects backend if not specified)
0 commit comments