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.
|
|
||
| case "$SOC_MACHINE" in | ||
| *QRB2210*|*"Glymur CRD"*) |
There was a problem hiding this comment.
QRB2210 and Glymur now reach generic discovery, but discover_supported_domains() checks remoteproc/DT presence—not whether the corresponding FastRPC endpoint, libraries, and skeletons are usable. Runtime-layout discovery merely warns when artifacts are absent.
| # 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.
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 <[email protected]>
d8a040c to
283b5cf
Compare
| available_domains="" | ||
| for d in $DOMAINS_TO_TEST; do | ||
| dom_name="$(domain_to_name "$d")" | ||
| fastrpc_dev="/dev/fastrpc-$(printf '%s' "$dom_name" | tr '[:upper:]' '[:lower:]')" |
There was a problem hiding this comment.
The FastRPC DT binding labels these domains gdsp0 and gdsp1, and the driver creates /dev/fastrpc-. As a result, valid GPDSP domains will be excluded from auto-discovery, while explicit --domain 5/6 runs fail before execution.
domain_to_name 5/6 returns the presentation names GPDSP0/GPDSP1, but the FastRPC endpoint is named from the DT label, which is gdsp0/gdsp1. This check therefore probes /dev/fastrpc-gpdsp0 and filters valid GPDSP endpoints. Please add a separate domain-to-endpoint-label helper, mapping 5/6 to gdsp0/gdsp1, and use it for both endpoint checks.
| # Returns the first directory in the space-separated candidate_dirs list that | ||
| # contains at least one shared library (*.so or *.so.*). Avoids accepting | ||
| # generic directories that exist without any test artifacts installed. | ||
| fastrpc_first_dir_with_testlib() { |
There was a problem hiding this comment.
accepts any *.so in a candidate directory. The generic fallback /usr/lib almost always contains shared libraries, so the helper can report a “FastRPC test library dir” even when no FastRPC test artifact is present. search for the expected FastRPC test libraries, or do not present this as validation.
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