[hipblaslt-provider] Add test filter standardization#7913
Draft
dileepr1 wants to merge 2 commits into
Draft
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 installedbin/hipblaslt_plugin/tree via the generictest_runner.py(replacing the legacy per-componenttest_hipblasltprovider.pyone-off).This mirrors the miopen-provider standardization on
users/dravindr/tf_miopen_provand follows the Test Filter Standardization (RFC0010) pattern already adopted by rocPRIM, MIOpen, etc.Paired TheRock PR
users/dravindr/tr_hipblaslt_prov(separate PR to be opened)The TheRock branch:
hipblasltproviderjob'stest_scriptfromtest_hipblasltprovider.pytotest_runner.py,hipblasltprovider -> hipblaslt_plugintoCOMPONENT_DIR_MAPPING, andml-libs/artifact-hipblasltprovider.tomlto bundle the entirebin/hipblaslt_plugin/**install tree (so the YAML-generatedCTestTestfile.cmakeand 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):* - *DISABLED* - Full** - *DISABLED* - Full** - *DISABLED** - *DISABLED*The quick / standard tiers exclude
Full*parameterised expansions to match the legacyGTEST_FILTER=\"-Full*\"used bytest_hipblasltprovider.py. There are noINSTANTIATE_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_IGNOREmap, so this YAML carries noexclude_gpublock. Add one (the OS-suffixed key shape supported byshared/ctest/parse_test_categories.pyvia the rocPRIM / miopen-provider work) if a GPU+OS-specific carve-out becomes necessary later.dnn-providers/hipblaslt-provider/CMakeLists.txtROCM_LIBRARIES_ROOTsoshared/ctest/TestCategories.cmakeis discoverable from the monorepo root (guarded withEXISTSso standalone / sparse checkouts keep building).apply_test_category_labels()once per test binary, writing both sets of suites into a single install-timeCTestTestfile.cmakewith relative paths (../hipblaslt_plugin_tests,../hipblaslt_plugin_integration_tests).CTestTestfile.cmaketobin/hipblaslt_plugin/when available; otherwise fall back toinstall_provider_ctest_files()so standalone builds keep their existing unlabeled install file..github/actions/ci-env/action.ymlWIP: bump
therock-reffrom the pinned 2026-05-29 SHA to the paired branchusers/dravindr/tr_hipblaslt_provso alltherock-*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.pyagainst 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
Follow-ups (not in this PR)
Made with Cursor