Skip to content

[hipblaslt-provider] Add test filter standardization#7913

Draft
dileepr1 wants to merge 2 commits into
developfrom
users/dravindr/tf_hipblaslt_prov
Draft

[hipblaslt-provider] Add test filter standardization#7913
dileepr1 wants to merge 2 commits into
developfrom
users/dravindr/tf_hipblaslt_prov

Conversation

@dileepr1
Copy link
Copy Markdown
Contributor

Summary

Adds YAML-driven CTest test categorization for the hipblaslt-provider plugin so that TheRock CI can drive ctest -L {quick,standard,comprehensive,full} against the installed bin/hipblaslt_plugin/ tree via the generic test_runner.py (replacing the legacy per-component test_hipblasltprovider.py one-off).

This mirrors the miopen-provider standardization on users/dravindr/tf_miopen_prov and follows the Test Filter Standardization (RFC0010) pattern already adopted by rocPRIM, MIOpen, etc.

Paired TheRock PR

The TheRock branch:

  1. switches the hipblasltprovider job's test_script from test_hipblasltprovider.py to test_runner.py,
  2. adds hipblasltprovider -> hipblaslt_plugin to COMPONENT_DIR_MAPPING, and
  3. broadens ml-libs/artifact-hipblasltprovider.toml to bundle the entire bin/hipblaslt_plugin/** install tree (so the YAML-generated CTestTestfile.cmake and its referenced binaries reach the runner).

Changes

dnn-providers/hipblaslt-provider/test_categories.yaml (new)

Tier definitions shared by both test binaries (hipblaslt_plugin_tests, hipblaslt_plugin_integration_tests):

tier filter shape timeout
quick * - *DISABLED* - Full* 5 min
standard * - *DISABLED* - Full* 45 min
comprehensive * - *DISABLED* 7 hours
full * - *DISABLED* 8 hours

The quick / standard tiers exclude Full* parameterised expansions to match the legacy GTEST_FILTER=\"-Full*\" used by test_hipblasltprovider.py. There are no INSTANTIATE_TEST_SUITE_P(Full, ...) entries in the source today, so this is forward-compatible insurance for future Full* parameterisations rather than a no-op.

The legacy script has no TEST_TO_IGNORE map, so this YAML carries no exclude_gpu block. Add one (the OS-suffixed key shape supported by shared/ctest/parse_test_categories.py via the rocPRIM / miopen-provider work) if a GPU+OS-specific carve-out becomes necessary later.

dnn-providers/hipblaslt-provider/CMakeLists.txt

  • Define ROCM_LIBRARIES_ROOT so shared/ctest/TestCategories.cmake is discoverable from the monorepo root (guarded with EXISTS so standalone / sparse checkouts keep building).
  • Call apply_test_category_labels() once per test binary, writing both sets of suites into a single install-time CTestTestfile.cmake with relative paths (../hipblaslt_plugin_tests, ../hipblaslt_plugin_integration_tests).
  • Install the YAML-generated CTestTestfile.cmake to bin/hipblaslt_plugin/ when available; otherwise fall back to install_provider_ctest_files() so standalone builds keep their existing unlabeled install file.

.github/actions/ci-env/action.yml

WIP: bump therock-ref from the pinned 2026-05-29 SHA to the paired branch users/dravindr/tr_hipblaslt_prov so all therock-* workflows test against the matching TheRock state. Will be reverted to a pinned SHA before merge once the TheRock PR lands.

Local validation

Dry-ran shared/ctest/parse_test_categories.py against the new YAML for both binaries:

```
add_test(hipblaslt_plugin_tests_quick_suite "../hipblaslt_plugin_tests" --gtest_filter=-DISABLED:Full)
set_tests_properties(... PROPERTIES LABELS "quick;pre-commit;smoke" TIMEOUT 300)

add_test(hipblaslt_plugin_tests_standard_suite "../hipblaslt_plugin_tests" --gtest_filter=-DISABLED:Full)
set_tests_properties(... PROPERTIES LABELS "standard;pr;precheckin" TIMEOUT 2700)

add_test(hipblaslt_plugin_tests_comprehensive_suite "../hipblaslt_plugin_tests" --gtest_filter=*-DISABLED)
set_tests_properties(... PROPERTIES LABELS "comprehensive;nightly;extended" TIMEOUT 25200)

add_test(hipblaslt_plugin_tests_full_suite "../hipblaslt_plugin_tests" --gtest_filter=*-DISABLED)
set_tests_properties(... PROPERTIES LABELS "full;all" TIMEOUT 28800)

... and the same 4 entries for hipblaslt_plugin_integration_tests

```

8 entries (4 tiers × 2 binaries), all properly labeled. Relative paths keep the install-time CTestTestfile.cmake portable.

Test plan

  • CI green on this branch (using paired TheRock branch via the WIP `therock-ref` bump)
  • Manually verify on a checkout: `ctest --test-dir bin/hipblaslt_plugin -L quick -N` lists exactly 2 entries (one per binary) with the `quick` label
  • Manually verify `ctest --test-dir bin/hipblaslt_plugin -L full -N` lists 2 entries with the `full` label
  • Open paired TheRock PR for `users/dravindr/tr_hipblaslt_prov`
  • Before merge: revert `.github/actions/ci-env/action.yml` to a pinned ROCm/TheRock SHA once the TheRock PR lands

Follow-ups (not in this PR)

  • Delete `build_tools/github_actions/test_executable_scripts/test_hipblasltprovider.py` from TheRock once this PR + the paired TheRock PR are merged and the legacy script is no longer referenced anywhere.

Made with Cursor

dileepr1 and others added 2 commits May 30, 2026 07:14
Add YAML-driven CTest test categorization for the hipblaslt-provider plugin
so TheRock CI can drive `ctest -L {quick|standard|comprehensive|full}`
from the installed bin/hipblaslt_plugin/ tree via the generic test_runner.py
(replacing the legacy test_hipblasltprovider.py one-off). Mirrors the
miopen-provider standardization on users/dravindr/tf_miopen_prov.

- dnn-providers/hipblaslt-provider/test_categories.yaml: tier definitions
  shared by both hipblaslt_plugin_tests (unit) and
  hipblaslt_plugin_integration_tests. quick / standard exclude Full*
  parameterised expansions to match the legacy GTEST_FILTER="-Full*"
  used by test_hipblasltprovider.py; comprehensive / full include them.
  (No INSTANTIATE_TEST_SUITE_P(Full, ...) entries exist today, so the
  Full* exclusion is forward-compatible insurance.) The legacy script
  has no TEST_TO_IGNORE map, so this YAML carries no exclude_gpu block.
- dnn-providers/hipblaslt-provider/CMakeLists.txt:
  - Set ROCM_LIBRARIES_ROOT so shared/ctest/TestCategories.cmake is
    discoverable from the monorepo root (guarded with EXISTS so
    standalone / sparse checkouts keep building).
  - Call apply_test_category_labels() once per test binary, writing both
    sets of suites into a single install-time CTestTestfile.cmake with
    relative paths (../hipblaslt_plugin_tests, ../hipblaslt_plugin_integration_tests).
  - Install the YAML-generated CTestTestfile.cmake to bin/hipblaslt_plugin/
    when available; otherwise fall back to install_provider_ctest_files()
    so standalone builds keep their existing unlabeled install file.

Paired with the TheRock branch users/dravindr/tr_hipblaslt_prov which
switches the hipblasltprovider job's test_script to test_runner.py, adds
hipblasltprovider -> hipblaslt_plugin to COMPONENT_DIR_MAPPING, and
broadens artifact-hipblasltprovider.toml's test include to
bin/hipblaslt_plugin/**.

Co-authored-by: Cursor <cursoragent@cursor.com>
…pblaslt_prov

Bump the therock-ref output in .github/actions/ci-env/action.yml from
the pinned 2026-05-29 SHA (685f8c3b890063...) to the paired TheRock
branch users/dravindr/tr_hipblaslt_prov, so all therock-* workflows
(therock-ci-linux.yml, therock-ci-windows.yml, therock-ci.yml,
therock-test-component.yml, therock-test-packages.yml) build and test
against the TheRock state that:

- switches the hipblasltprovider job's test_script to test_runner.py, and
- bundles bin/hipblaslt_plugin/** (including the YAML-generated install-tree
  CTestTestfile.cmake from the previous commit) in the hipblasltprovider
  artifact.

Without this paired ref, the build artifact would be missing the
install-tree CTestTestfile.cmake and test_runner.py would fail with
"Test directory does not exist: build/bin/hipblaslt_plugin".

WIP: revert to a pinned ROCm/TheRock SHA before merge, once the paired
TheRock PR lands and gives us a stable commit on main.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant