fastrpc-test: Add runtime validation and remove SoC-based filtering - #532
fastrpc-test: Add runtime validation and remove SoC-based filtering#532anankulk wants to merge 1 commit into
Conversation
Srikanth Muppandam (smuppand)
left a comment
There was a problem hiding this comment.
only_hap_example_failed() now has no callers and still documents the SM8850 exception being removed. Remove the function and obsolete comment in this PR.
| # Do not skip Glymur CRD by SoC name. Newer Glymur/Debian images expose | ||
| # ADSP/CDSP remoteproc instances and FastRPC skeletons, so runtime discovery | ||
| # should decide whether the test can run. | ||
| soc_skip_all=0 |
There was a problem hiding this comment.
soc_skip_all is initialized to 0 but can no longer become 1.Remove soc_skip_all and its block at lines 251–255 rename the section to describe the remaining GPDSP filter.
|
Hi Srikanth Muppandam (@smuppand), With the upcoming tag to be released for fastrpc recipe : we are enabling gpdsp test support as-well. |
2adfe81 to
d8a040c
Compare
There was a problem hiding this comment.
With these new changes, you have to fix the following code as well.
Runner/utils/lib_fastrpc.sh:151 — artifact discovery validates generic directories, not FastRPC artifacts
-
Issue: FASTRPC_RESOLVED_LIB_SYS_DIR becomes /usr/lib whenever that directory exists. Likewise, the runner checks FASTRPC_RESOLVED_SKEL_BASE,
although the base can exist without either v75 or v68. FASTRPC_RESOLVED_LIB_TEST_DIR is discovered but never required. -
Recommended fix: Resolve and validate the actual required library files, require a non-empty FASTRPC_RESOLVED_SKEL_PATH, and validate the required
test-library artifacts rather than generic directories.
Runner/suites/Multimedia/CDSP/fastrpc_test/fastrpc_test.yaml:11 — YAML still documents removed GPDSP filtering
- Issue: The description says GPDSP domains are skipped on QCS9075/QCS8275/QCS8300/QCS9100, while the PR removes that blacklist.
- Recommended fix: Describe runtime domain and endpoint discovery instead.
Runner/suites/Multimedia/CDSP/fastrpc_test/run.sh:188 — remove unused SOC_MACHINE
- Recommended fix: Remove the assignment.
d8a040c to
283b5cf
Compare
Enable FastRPC testing on QRB2210 and Glymur CRD by removing the hardcoded SoC-level skip. Remove the SoC-specific GPDSP0/GPDSP1 blacklist for QCS9075, QCS8275, QCS8300, and QCS9100; GPDSP availability is now determined entirely through runtime discovery. Add validation of FastRPC system library, DSP skeleton, and /dev/fastrpc-<domain> endpoint availability before test execution. Domains or configurations that are not usable are skipped early with a clear message instead of being invoked and failing. Remove the SM8850 libhap_example HAP_mem DMA exception (only_hap_example_failed) so results are reported consistently across all targets. Signed-off-by: Anand Kulkarni <anankulk@qti.qualcomm.com>
283b5cf to
7dac287
Compare
| esac | ||
| dom_name="$(domain_to_name "$d")" | ||
| fastrpc_dev="/dev/fastrpc-$(domain_to_endpoint_label "$d")" | ||
| if [ -c "$fastrpc_dev" ]; then |
There was a problem hiding this comment.
This accepts only /dev/fastrpc-. A secure-only FastRPC domain is therefore rejected even though it is usable: the existing AudioPD FastRPC precheck already recognizes /dev/fastrpc-adsp-secure as a valid ADSP endpoint before falling back to /dev/fastrpc-adsp.
Because the presence of the secure node enables fastrpc_chardev_iface, auto mode filters that domain out and explicit selection fails. Put a shared fastrpc_domain_endpoint_available helper in lib_fastrpc.sh that accepts the secure and non-secure endpoint variants, then use it in both this pre-filter and the defensive re-check.
| # guarantee the FastRPC libraries, DSP skeletons, and endpoint device nodes are | ||
| # usable. Without them every invocation would fail rather than skip, which is | ||
| # the wrong signal. | ||
| if [ -z "${FASTRPC_RESOLVED_LIB_SYS_DIR:-}" ]; then |
There was a problem hiding this comment.
The new discovery correctly resolves FASTRPC_RESOLVED_LIB_TEST_DIR only when libcalculator.so, libhap_example.so, or libmultithreading.so exists, but this prerequisite gate never requires it. A target with the system library and skeletons but without the test libraries still reaches fastrpc_test and fails at runtime, contradicting this change’s “missing artifacts should skip” policy. Add a clean SKIP gate for an empty FASTRPC_RESOLVED_LIB_TEST_DIR alongside the system-library and skeleton checks.
Summary
Replace hardcoded SoC-specific FastRPC test filtering with runtime
validation of actual test prerequisites.
hardcoded SoC-level skip.
and QCS9100. GPDSP availability is now determined entirely through
runtime discovery.
/dev/fastrpc-<domain>endpoint availability before execution.Domains or configurations that are not usable are skipped early
with a clear message instead of being invoked and failing.
libhap_exampleHAP_mem DMA exception(
only_hap_example_failed) so results are reported consistentlyacross all targets.
Files changed
Runner/suites/Multimedia/CDSP/fastrpc_test/run.shRunner/utils/lib_fastrpc.sh