Skip to content

fastrpc-test: Add runtime validation and remove SoC-based filtering - #532

Open
anankulk wants to merge 1 commit into
qualcomm-linux:mainfrom
anankulk:enable_glymur_rb1
Open

fastrpc-test: Add runtime validation and remove SoC-based filtering#532
anankulk wants to merge 1 commit into
qualcomm-linux:mainfrom
anankulk:enable_glymur_rb1

Conversation

@anankulk

@anankulk anankulk commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Summary

Replace hardcoded SoC-specific FastRPC test filtering with runtime
validation of actual test prerequisites.

  • Enable FastRPC testing on QRB2210 and Glymur CRD by removing the
    hardcoded SoC-level skip.
  • Remove the GPDSP0/GPDSP1 blacklist for QCS9075, QCS8275, QCS8300,
    and QCS9100. GPDSP availability is now determined entirely through
    runtime discovery.
  • Validate FastRPC system library, DSP skeleton, and
    /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.
  • Remove the SM8850 libhap_example HAP_mem DMA exception
    (only_hap_example_failed) so results are reported consistently
    across all targets.

Files changed

  • Runner/suites/Multimedia/CDSP/fastrpc_test/run.sh
  • Runner/utils/lib_fastrpc.sh

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread Runner/suites/Multimedia/CDSP/fastrpc_test/run.sh
# 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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@anankulk

Copy link
Copy Markdown
Contributor Author

Hi Srikanth Muppandam (@smuppand),

With the upcoming tag to be released for fastrpc recipe : we are enabling gpdsp test support as-well.
Once the tag is released, will address the comments and enable gdsp as-well along with the on-going changes.

@anankulk anankulk changed the title fastrpc-test :enable tests on QRB2210, Glymur CRD, and SM8850 fastrpc-test :fastrpc-test: Add runtime validation and remove SoC-based filtering Aug 27, 2026
@anankulk anankulk changed the title fastrpc-test :fastrpc-test: Add runtime validation and remove SoC-based filtering fastrpc-test: Add runtime validation and remove SoC-based filtering Aug 27, 2026

@smuppand Srikanth Muppandam (smuppand) left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread Runner/suites/Multimedia/CDSP/fastrpc_test/run.sh Outdated
Comment thread Runner/suites/Multimedia/CDSP/fastrpc_test/run.sh Outdated
Comment thread Runner/utils/lib_fastrpc.sh
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>
esac
dom_name="$(domain_to_name "$d")"
fastrpc_dev="/dev/fastrpc-$(domain_to_endpoint_label "$d")"
if [ -c "$fastrpc_dev" ]; then

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants