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.


case "$SOC_MACHINE" in
*QRB2210*|*"Glymur CRD"*)

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.

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

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
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>
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:]')"

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 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() {

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.

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.

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