[hipsolver]Add test filter standardization for hipsolver.#7546
Conversation
Mirror the rocSOLVER test categorization pattern from PR #6943. - Add projects/hipsolver/clients/gtest/test_categories.yaml with quick/standard/comprehensive/full categories. The shared exclude list mirrors test/therock/test_hipsolver.py. - Set ROCM_LIBRARIES_ROOT in projects/hipsolver/CMakeLists.txt for shared/ctest infrastructure. - Wire apply_test_category_labels() in clients/gtest/CMakeLists.txt with install-time CTestTestfile.cmake for TheRock relocatable tests. No weekly_* tier is included; hipSOLVER has no weekly_* INSTANTIATE_TEST_SUITE_P entries. Co-authored-by: Cursor <cursoragent@cursor.com>
Switch therock-test-component.yml and therock-test-packages.yml to check out the paired TheRock branch users/dravindr/tr_hipsolver (ROCm/TheRock@1f02638b) instead of the pinned 2026-05-13 commit, so the test job uses test_runner.py and the artifact glob that bundles bin/hipsolver/CTestTestfile.cmake. Same pattern as PR #7215. WIP: revert to a pinned ROCm/TheRock SHA before merge. Co-authored-by: Cursor <cursoragent@cursor.com>
Codecov Report✅ All modified and coverable lines are covered by tests. ❌ Your project status has failed because the head coverage (69.18%) is below the target coverage (80.00%). You can increase the head coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## develop #7546 +/- ##
===========================================
+ Coverage 61.78% 66.35% +4.57%
===========================================
Files 2091 1606 -485
Lines 359586 267985 -91601
Branches 54392 37395 -16997
===========================================
- Hits 222148 177817 -44331
+ Misses 118662 75227 -43435
+ Partials 18776 14941 -3835
*This pull request uses carry forward flags. Click here to find out more. 🚀 New features to boost your workflow:
|
The build stage was pinned to TheRock SHA 4e469b56 (2026-05-13), which predates the artifact-blas.toml update that adds bin/hipsolver/** to the hipSOLVER test include list. As a result, the produced artifact tarball omitted bin/hipsolver/CTestTestfile.cmake, and test_runner.py failed with "Test directory does not exist: build/bin/hipsolver". Align the build ref with the test workflows (already on users/dravindr/tr_hipsolver) so build and test use the same TheRock state. Co-authored-by: Cursor <cursoragent@cursor.com>
…hipsolver The Windows build stage was pinned to TheRock SHA e44b42bb (2026-05-20), which predates the artifact-blas.toml update that adds bin/hipsolver/** to the hipSOLVER test include list. As a result, the produced Windows artifact tarball omitted bin/hipsolver/CTestTestfile.cmake, and test_runner.py failed with "Test directory does not exist: build\bin\hipsolver". Align the Windows build ref with therock-ci-linux.yml, therock-test-component.yml, and therock-test-packages.yml (already on users/dravindr/tr_hipsolver) so build and test use the same TheRock state on both platforms. Co-authored-by: Cursor <cursoragent@cursor.com>
geomin12
left a comment
There was a problem hiding this comment.
going to let hipsolver team review
also, please add a better PR description and it seems this is still testing, so a draft PR may be good too
Restore all four TheRock-side workflow refs to the develop-tracked pin e44b42bb (2026-05-20): - .github/workflows/therock-ci-linux.yml - .github/workflows/therock-ci-windows.yml - .github/workflows/therock-test-component.yml - .github/workflows/therock-test-packages.yml Reverts the workflow ref changes from 71e281c, 17acb08 and daaa6a4, which temporarily pointed all four files at the paired TheRock branch users/dravindr/tr_hipsolver. At the develop-pinned TheRock SHA, fetch_test_configurations.py still runs the legacy test_hipsolver.py for hipsolver (not test_runner.py), and math-libs/BLAS/artifact-blas.toml does not include bin/hipsolver/**, so the new install-tree CTestTestfile.cmake and apply_test_category_labels() metadata added by this PR remain dormant until ROCm/TheRock#5490 merges and these refs are bumped to a main-tracked SHA that contains it. Until then the hipsolver Linux/Windows test shards behave exactly as on develop. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Pull request overview
This PR standardizes hipSOLVER’s CTest labeling so that ctest -L {quick|standard|comprehensive|full} works consistently both from the build tree and from an installed/packaged test tree (as consumed by TheRock CI), by introducing a YAML-driven category configuration and wiring it into the hipSOLVER gtest client build/install.
Changes:
- Add a
test_categories.yamldefiningquick/standard/comprehensive/fullsuites and exclusions for hipSOLVER gtests. - Wire in the shared
shared/ctest/TestCategories.cmakeinfrastructure (viaROCM_LIBRARIES_ROOT) and apply YAML-derived labels tohipsolver-test. - Generate and install an install-time
CTestTestfile.cmakeunderbin/hipsolver/to keep labels available in relocatable test artifacts.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| projects/hipsolver/CMakeLists.txt | Defines ROCM_LIBRARIES_ROOT default so shared CTest category infrastructure can be found in the monorepo. |
| projects/hipsolver/clients/gtest/test_categories.yaml | Adds YAML configuration for standardized test categories/labels and excludes. |
| projects/hipsolver/clients/gtest/CMakeLists.txt | Includes shared category module when present, generates labeled CTest tests + install-time CTestTestfile.cmake, and installs it for TheRock. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
## Motivation Add test filter standardisation for hipsolver. This works with the companion PR ROCm/rocm-libraries#7546 ## Technical Details - fetch_test_configurations.py: hipsolver test_script -> test_runner.py so the generic runner drives ctest from THEROCK_BIN_DIR/hipsolver using the quick/standard/comprehensive/full category labels. - artifact-blas.toml: include bin/hipsolver/** in the hipSOLVER test component so the install-tree CTestTestfile.cmake is bundled (same pattern as bin/rocblas/**). ## Test Plan Confirm that the CI tests for hipsolver works good once ROCm/rocm-libraries#7546 is merged. ## Test Result https://github.com/ROCm/TheRock/actions/runs/27141532171/job/80365435590?pr=5490 https://github.com/ROCm/TheRock/actions/runs/27141532171/job/80365749440?pr=5490 ## Submission Checklist - [ ] Look over the contributing guidelines at https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests. Co-authored-by: Cursor <cursoragent@cursor.com>
Motivation
Implements test filter standardization for hipSOLVER so that
ctest -L {quick|standard|comprehensive|full}works both in the build tree and from the installed/packaged tree that TheRock CI consumes.Technical Details
hipSOLVER-side wiring:
projects/hipsolver/clients/gtest/test_categories.yaml(new) is added which defines the test categories that can be used by theRock CI. Tests can be added/removed/excluded as required under these categories.projects/hipsolver/CMakeLists.txt— setsROCM_LIBRARIES_ROOTsoshared/ctest/TestCategories.cmakeis reachable from the project.projects/hipsolver/clients/gtest/CMakeLists.txt— includes the shared module, callsapply_test_category_labels()onhipsolver-test, and installs the generated install-timeCTestTestfile.cmaketobin/hipsolver/(underCOMPONENT tests) so TheRock's relocatable test artifact carries the labels. Guarded withif(EXISTS shared/ctest/TestCategories.cmake)so standalone / sparse checkouts keep building.This work together with TheRock side PR ROCm/TheRock#5490.
Test Plan
Build tree:
Install tree (matches what TheRock CI sees):
CI: covered by both Linux (gfx94X-dcgpu, gfx950-dcgpu) and Windows (gfx1151) hipsolver test shards in this PR's
therock-ci-*runs.Test Result
Test run: https://github.com/ROCm/rocm-libraries/actions/runs/26532647528/job/78175500172?pr=7546
Submission Checklist