Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions Runner/config/pkg_command_map.conf
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,9 @@ ubuntu:benchmark_model=tensorflow-lite-qcom-apps
debian:qnn-net-run=qnn-tools
ubuntu:qnn-net-run=qnn-tools

# Audio asset downloads use only image-provided curl or wget clients.
# AudioPlayback installs this complete set on Ubuntu only when a requested
# network asset is missing and neither downloader is already available.
ubuntu:package-set:audio-download=curl wget

# ---------------------------------------------------------------------------
# Bluetooth userspace stack and firmware.
Expand Down Expand Up @@ -304,10 +306,9 @@ opkg:Sensors:sns_test=qcom-sensors-api qcom-sensors-core qcom-sensors-registry q
# ---------------------------------------------------------------------------
# Qualcomm FastRPC package set.
#
# Used by tests that explicitly call:
# pkg_ensure_package_set fastrpc
# or:
# pkg_ensure_optional_package_set fastrpc ...
# The FastRPC test uses this complete set when /usr/bin/fastrpc_test is missing
# on a host distribution with an exact mapping. Recovery uses the target's
# configured repositories.
#
# No qcom-distro/rpm mapping is provided, so Yocto remains no-op unless a
# supported mapping is added later.
Expand Down Expand Up @@ -435,6 +436,7 @@ centos:package-set:graphics=kgsl-dkms gbm-msm-backend adreno-common adreno-gles1
#
# Debian and CentOS Audio tests use the base Audio stack by default. Qualcomm
# AudioReach packages are installed only when --overlay is explicitly requested.
# Ubuntu supports only its base server or desktop Audio package profile.
#
# CentOS Stream 10 uses the verified Qualcomm RPM package names below. No opkg,
# qcom-distro, or generic provider package-set mapping is provided, so Yocto
Expand Down Expand Up @@ -465,7 +467,7 @@ centos:package-set:audio-client-pulseaudio=pulseaudio-utils
#
# This package set is complete by itself because overlay mode checks only
# "audio"; it does not check "audio-base" first.
debian:package-set:audio=alsa-utils pipewire-bin wireplumber pulseaudio-utils audioreach-pipewire-plugin audioreach-kernel-dkms audioreach-config
debian:package-set:audio=alsa-utils pipewire-bin wireplumber pulseaudio-utils audioreach-pipewire-plugin audioreach-dkms audioreach-conf

# CentOS Stream 10 Qualcomm AudioReach overlay.
centos:package-set:audio=audioreach-dkms audioreach-pal audioreach-pipewire-plugin
Expand Down
13 changes: 9 additions & 4 deletions Runner/suites/Multimedia/Audio/AudioPlayback/Read_me.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,10 +85,12 @@ Yocto continues to use image-provided clients.

When run as root, the suite uses the shared package provider to install missing
Ubuntu audio packages. It does not run a blanket distribution upgrade.
Network download uses an image-provided `curl` or `wget` and never installs a
downloader package at runtime. Each displayed download attempt runs one client
invocation with a finite deadline. When neither tool is available, the suite
skips the download and reports the missing image prerequisite.
When network download is requested and neither downloader is present, Ubuntu
uses the shared package provider to install the complete `audio-download` set,
`curl wget`, from the image's configured APT sources. Other distributions keep
their image-provided downloader policy. Each displayed download attempt has a
finite deadline. If recovery is unavailable or fails, the suite skips and
reports the missing prerequisite.

If the target already has a valid global IPv4 address but the generic ICMP
probe is blocked, the suite preserves the active interface and lets the bounded
Expand All @@ -103,6 +105,9 @@ when network activation is actually required. The absence of
- `server` ensures `alsa-utils` for ALSA playback.
- `desktop` ensures `alsa-utils`, `pipewire`, `pipewire-pulse`, `wireplumber`,
`pipewire-bin`, and `pulseaudio-utils`.
- AudioReach is not enabled for Ubuntu. An explicit `--overlay` request reports
SKIP before any AudioReach source refresh or package operation. Rerun without
`--overlay` to validate the Ubuntu base Audio stack.
- Set `AUDIO_PACKAGE_UPDATE=1` only when installed packages should be upgraded
as part of the test preparation.

Expand Down
8 changes: 7 additions & 1 deletion Runner/suites/Multimedia/Audio/AudioPlayback/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ Usage: $0 [options]
On Debian or CentOS, ensure the Qualcomm AudioReach package set before
playback. Both prepare the regular-user PipeWire runtime. Without this flag,
use the native/base audio stack. qcom-distro/Yocto remains unchanged.
Ubuntu reports SKIP because AudioReach is not enabled there.
--formats "wav" # Legacy matrix mode only
--durations "short|short medium" # Legacy matrix mode only (not recommended for new tests)
--clip-name "play_48KHz_16b_2ch" # Test specific clip(s) by name (space-separated)
Expand Down Expand Up @@ -291,6 +292,11 @@ case "$audio_prepare_rc" in
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
exit 0
;;
3)
log_skip "$TESTNAME SKIP - AudioReach is not enabled for Ubuntu, rerun without --overlay to validate the base Audio stack"
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
exit 0
;;
*)
log_fail "$TESTNAME FAIL - audio package preparation failed"
echo "$RESULT_TESTNAME FAIL" >"$RES_FILE"
Expand Down Expand Up @@ -777,7 +783,7 @@ if [ "$TOP_LEVEL_RUN" -eq 1 ]; then
log_info "Audio clips downloaded and extracted successfully"
else
log_error "Failed to download or extract audio clips from: $AUDIO_TAR_URL"
log_skip "$TESTNAME SKIP - Audio clips download failed"
log_skip "$TESTNAME SKIP - audio clips could not be downloaded or extracted, enable Ubuntu package recovery for curl and wget with HTTPS access or pre-provision clips under ${AUDIO_CLIPS_BASE_DIR:-AudioClips}"
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
exit 0
fi
Expand Down
4 changes: 4 additions & 0 deletions Runner/suites/Multimedia/Audio/AudioRecord/Read_me.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,10 @@ If the matching remoteproc is `running`, the suite records its name and firmware

## Overlay Build Support

AudioReach is not enabled for Ubuntu. An explicit `./run.sh --overlay` request
reports SKIP before any AudioReach source refresh or package operation. Rerun
without `--overlay` to validate the Ubuntu base Audio stack.

On CentOS Stream 10, an explicit `./run.sh --overlay` request ensures EPEL and
the Qualcomm aarch64 and noarch RPM repositories, refreshes DNF metadata, and
installs `audioreach-dkms`, `audioreach-pal`, and
Expand Down
6 changes: 6 additions & 0 deletions Runner/suites/Multimedia/Audio/AudioRecord/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ Usage: $0 [options]
--source {mic|null}
--overlay Prepare the Debian or CentOS Qualcomm AudioReach overlay
Without this flag, use the native/base stack.
Ubuntu reports SKIP because AudioReach is not enabled.
--config-name "record_config1" # Test specific config(s) by name (space-separated)
# Also supports record_config1, record_config2, ..., record_config10
--config-filter "48KHz" # Filter configs by pattern
Expand Down Expand Up @@ -211,6 +212,11 @@ case "$audio_prepare_rc" in
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
exit 0
;;
3)
log_skip "$TESTNAME SKIP - AudioReach is not enabled for Ubuntu, rerun without --overlay to validate the base Audio stack"
echo "$RESULT_TESTNAME SKIP" >"$RES_FILE"
exit 0
;;
*)
log_fail "$TESTNAME FAIL - audio package preparation failed"
echo "$RESULT_TESTNAME FAIL" >"$RES_FILE"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,10 @@ The test reports `FAIL` when:

## Command Line Usage

AudioReach is not enabled for Ubuntu. An explicit `--overlay` request reports
SKIP before any AudioReach source refresh or package operation. Run without
`--overlay` to validate Ubuntu ALSA card registration.

On CentOS Stream 10, `--overlay` prepares EPEL and the Qualcomm aarch64 and
noarch RPM repositories, refreshes DNF metadata, and installs
`audioreach-dkms`, `audioreach-pal`, and `audioreach-pipewire-plugin`. The
Expand Down
6 changes: 6 additions & 0 deletions Runner/suites/Multimedia/Audio/Audio_Card_Registration/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ Options:
On Debian or CentOS, ensure the Qualcomm AudioReach package set before
validating ALSA card registration. Without this flag, use the
native/base audio stack. This test never starts or restarts PipeWire.
Ubuntu reports SKIP because AudioReach is not enabled there.

--wait-secs N
Wait time for ALSA sound card registration.
Expand Down Expand Up @@ -173,6 +174,11 @@ case "$audio_prepare_rc" in
echo "$TESTNAME SKIP" > "$RES_FILE"
exit 0
;;
3)
log_skip "$TESTNAME SKIP: AudioReach is not enabled for Ubuntu, rerun without --overlay to validate the base Audio stack"
echo "$TESTNAME SKIP" > "$RES_FILE"
exit 0
;;
*)
log_fail "$TESTNAME FAIL: audio package preparation failed"
echo "$TESTNAME FAIL" > "$RES_FILE"
Expand Down
14 changes: 11 additions & 3 deletions Runner/suites/Multimedia/CDSP/fastrpc_test/fastrpc_test_README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,10 @@ Supported capabilities:

Have these on the target (or specify paths with the flags below):

- `fastrpc_test` binary (from [github.com/quic/fastrpc](https://github.com/quic/fastrpc))
- `fastrpc_test` binary (from [github.com/quic/fastrpc](https://github.com/quic/fastrpc)).
Supported Debian and Ubuntu image repositories provide it through the
`fastrpc-tests` package. The mapped runtime set also includes
`fastrpc-support`.
- Optional `fastrpc-healthcheck`. When installed, this is the primary distro-independent
capability source. An installed healthcheck that fails, times out, or produces an
unrecognized or malformed report fails the suite. Runtime fallback is used only when the tool
Expand All @@ -56,8 +59,13 @@ Have these on the target (or specify paths with the flags below):
search entries. The same merged value is exported through the domain-specific library paths.
- Optional but recommended:
- `stdbuf` for line-buffered output. Execution remains bounded without it.
- The suite does not install packages at runtime on Yocto, Debian, Ubuntu, CentOS, or other
distributions. Provision `fastrpc_test`, its host libraries, and DSP skeletons in the image.
- When the default `/usr/bin/fastrpc_test` is missing on Debian or Ubuntu, the
suite uses the shared package provider to recover the complete mapped
`fastrpc-support fastrpc-tests` set from the target's configured APT sources.
It does not add Debian `qli` sources on Ubuntu.
- Yocto, CentOS, and distributions without an exact package mapping remain
image-managed and report SKIP when the binary is absent. A missing binary in
an explicitly selected `--bin-dir` also reports SKIP without package changes.
- Missing optional image assets are reported as SKIP unless the operator explicitly selected a
domain whose required runtime library is absent.

Expand Down
26 changes: 25 additions & 1 deletion Runner/suites/Multimedia/CDSP/fastrpc_test/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ fi
# shellcheck disable=SC1091
. "$TOOLS/functestlib.sh"

# shellcheck disable=SC1090,SC1091
. "$TOOLS/lib_pkg_provider.sh"

# shellcheck disable=SC1090,SC1091
. "$TOOLS/lib_fastrpc.sh"

Expand Down Expand Up @@ -324,7 +327,28 @@ RUN_DIR="$BIN_DIR"
RUN_BIN="$RUN_DIR/fastrpc_test"

if [ ! -x "$RUN_BIN" ]; then
test_result_finish "SKIP" "$TESTNAME SKIP - image-provided fastrpc_test is unavailable, expected=$RUN_BIN"
if [ "$RUN_DIR" = "/usr/bin" ] &&
command -v pkg_ensure_host_distro_package_set_present >/dev/null 2>&1; then
log_info "FastRPC test binary is unavailable, attempting mapped package recovery"
pkg_ensure_host_distro_package_set_present fastrpc
package_recovery_rc=$?

case "$package_recovery_rc" in
0)
if [ ! -x "$RUN_BIN" ]; then
test_result_finish "FAIL" "$TESTNAME FAIL - FastRPC package set was installed but fastrpc_test is still unavailable, expected=$RUN_BIN"
fi
;;
2)
test_result_finish "SKIP" "$TESTNAME SKIP - fastrpc_test is unavailable and no exact package recovery mapping applies to this operating system, expected=$RUN_BIN, provision the test binary in the image or use --bin-dir"
;;
*)
test_result_finish "FAIL" "$TESTNAME FAIL - failed to recover the mapped FastRPC package set, expected packages=fastrpc-support fastrpc-tests binary=$RUN_BIN"
;;
esac
else
test_result_finish "SKIP" "$TESTNAME SKIP - fastrpc_test is unavailable at the requested location, expected=$RUN_BIN, provision the test binary or select its directory with --bin-dir"
fi
fi

# -------------------- Logging root -----------------------------
Expand Down
20 changes: 17 additions & 3 deletions Runner/suites/Multimedia/Graphics/KMSCube/README_KMSCube.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,13 +67,27 @@ Direct runner usage:

```sh
./run.sh
./run.sh --base
./run.sh --overlay
./run.sh --auto
./run.sh --timeout 90
./run.sh --help
```

`--overlay` requests the Qualcomm graphics overlay on supported desktop
distributions. `-h` and `--help` print usage and exit without changing package,
GPU, display-manager, or Weston state. Unknown arguments are reported as FAIL.
Ubuntu Desktop defaults to `--overlay`, so a plain `./run.sh` validates the
Qualcomm KGSL/Adreno stack without requiring an explicit mode argument. Ubuntu
Server is treated as headless and reports SKIP before graphics package or DRM
runtime preparation. Debian, CentOS, RHEL, and Fedora default to `--base`. Use
`--base`, `--overlay`, or `--auto` to override that policy explicitly on
applicable desktop systems. An explicit `--base` request on Ubuntu Desktop
reports SKIP because the supported Ubuntu graphics configuration is the
Qualcomm overlay.

KMSCube execution is bounded to 60 seconds by default. `--timeout SECONDS`
changes that limit. A timeout is reported as FAIL, and display-manager or Weston
state stopped by the suite is restored before exit. `-h` and `--help` print
usage and exit without changing package, GPU, display-manager, or Weston state.
Unknown arguments are reported as FAIL.

#### Sample output:
```
Expand Down
Loading
Loading