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

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-level filtering with runtime validation to enable
FastRPC testing on QRB2210 and Glymur CRD.

  • SoC filtering removed: the hardcoded skip for QRB2210/Glymur CRD and the
    per-SoC GPDSP0/GPDSP1 blacklist (QCS9075, QCS8275, QCS8300, QCS9100) are
    replaced entirely by runtime domain discovery via DT/remoteproc
  • Artifact gates: execution is gated on FastRPC system libraries
    (libadsprpc/libcdsprpc/libsdsprpc), DSP skeletons (v75/v68), and
    test libraries (libcalculator/libhap_example/libmultithreading) being
    present; missing artifacts produce a clean SKIP instead of a runtime failure;
    test library detection uses glob matching to handle versioned Debian installs
  • Endpoint detection: domain_to_endpoint_label() maps domain numbers to
    their DT binding labels (GPDSP0/1 → gdsp0/gdsp1);
    fastrpc_domain_endpoint_available() checks both /dev/fastrpc-<label> and
    /dev/fastrpc-<label>-secure so secure-only domains are not incorrectly filtered
  • Failure semantics: explicitly selected domains (--domain / --domain-name
    / single mode) with no usable endpoint produce FAIL with remoteproc diagnostics;
    auto-discovered domains with a missing endpoint emit a warning visible without
    --verbose and dump remoteproc state before the all-domain SKIP
  • Cleanup: only_hap_example_failed() and the SM8850 libhap_example
    exception are removed so results are reported consistently across all targets

Files changed

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

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

anankulk Please address the pending comments too

Comment thread Runner/suites/Multimedia/CDSP/fastrpc_test/run.sh
Comment thread Runner/suites/Multimedia/CDSP/fastrpc_test/fastrpc_test.yaml Outdated
Comment thread Runner/utils/lib_fastrpc.sh
Comment thread Runner/suites/Multimedia/CDSP/fastrpc_test/run.sh
Comment thread Runner/suites/Multimedia/CDSP/fastrpc_test/run.sh Outdated
Comment thread Runner/utils/lib_fastrpc.sh Outdated
Comment thread Runner/utils/lib_fastrpc.sh Outdated
Replace hardcoded SoC/GPDSP skip lists with runtime discovery to enable
FastRPC testing on QRB2210 and Glymur CRD.

- Remove SoC-based filtering, SOC_MACHINE variable, and only_hap_example_failed()
- Consolidate domain metadata into fastrpc_domain_info() table (name, endpoint
  label, fw aliases, supported PDs, required syslib, interface type); all
  accessors derive from it
- Add domain_to_endpoint_label() mapping GPDSP0/1 to DT labels gdsp0/gdsp1
- Add fastrpc_domain_endpoint_available() accepting both /dev/fastrpc-<label>
  and /dev/fastrpc-<label>-secure
- Resolve libadsprpc/libcdsprpc/libsdsprpc independently; gate each domain on
  its own required library via fastrpc_syslib_available_for_domain()
- Discover skeleton ABI subdirectories dynamically; validate .so artifacts present
- Require all three test libs; report exact missing names on SKIP
- Explicitly selected domains with missing syslib or endpoint produce FAIL with
  remoteproc diagnostics; auto-discovered domains are silently skipped
- Scope suite as character-device-only (/dev/fastrpc-* interface)
- Reject --timeout 0; wrap all execution branches with runWithTimeoutIfSet;
  default TIMEOUT=120; log worst-case matrix duration

Signed-off-by: Anand Kulkarni <anankulk@qti.qualcomm.com>
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