Repository navigation
Add test filter standardisation for miopen-provider - #5775
Conversation
Paired with rocm-libraries branch users/dravindr/tf_miopen_prov which adds dnn-providers/miopen-provider/test_categories.yaml and installs a YAML-generated bin/miopen_plugin/CTestTestfile.cmake (via the shared apply_test_category_labels() helper, applied to both miopen_plugin_tests and miopen_plugin_integration_tests). - fetch_test_configurations.py: miopenprovider test_script switched from test_miopenprovider.py to the generic test_runner.py. The generic runner drives ctest from THEROCK_BIN_DIR/miopen_plugin using the YAML-generated quick / standard / comprehensive / full category labels instead of the legacy GTEST_FILTER="-Full*" one-off. - test_executable_scripts/test_runner.py: add "miopenprovider": "miopen_plugin" to COMPONENT_DIR_MAPPING so the runner CDs into THEROCK_BIN_DIR/miopen_plugin/ (the install dir name differs from the job name, as already noted in artifact-miopenprovider.toml). - ml-libs/artifact-miopenprovider.toml: broaden the test component's include from individually-listed CTestTestfile.cmake + *.toml entries to bin/miopen_plugin/** so the install-tree CTestTestfile.cmake and any sibling config TOMLs (e.g. MIOPEN_ENGINE.toml) are bundled in the miopenprovider artifact. Without this, test_runner.py errors with "Test directory does not exist: build/bin/miopen_plugin". Legacy test_miopenprovider.py is kept in this PR as a fallback for one release and as the documented source of the YAML's exclude list. Co-authored-by: Cursor <cursoragent@cursor.com>
❌ PR Check — Action Required
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
❌ PR Check — Action Required
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
|
🚫 Please fix the failed policies before requesting reviews. The following policy checks failed:
The |
1 similar comment
|
🚫 Please fix the failed policies before requesting reviews. The following policy checks failed:
The |
geomin12
left a comment
There was a problem hiding this comment.
tests pass but 11 mins for "quick" tests is too long
@geomin12 Thanks for bringing this into attention. I looked into this and the increase in time is caused by the heavy logs produced by ctest -V, which is not there in test_miopenprovider.py. I've landed an opt out from -V option in #5522 . |
## Summary Switches TheRock's `hipkernelprovider` test job from the bespoke `test_hipkernelprovider.py` to the shared `test_runner.py`, so hip-kernel-provider tests are selected by the standardized `quick`/`standard`/`comprehensive`/`full` CTest category labels instead of an ad hoc `GTEST_FILTER=-Full*`. This mirrors the miopen-provider standardization in [PR #5775](#5775). The labeled `bin/hip_kernel_provider/CTestTestfile.cmake` this relies on comes in through the regular `rocm-libraries` submodule pointer on `main`; this PR no longer bumps the submodule itself. JIRA ID : ALMIOPEN-2278 ## Risk Assessment Low risk. CI configuration only — no product code, no public API, no build wiring, no submodule movement. The behavioral change is which tests the `hipkernelprovider` job selects; a mislabeled or missing CTest label surfaces as tests being skipped rather than as a build or product failure. ## ASIC Coverage TheRock PR CI runs the `hipkernelprovider` component job on all supported GPU families (the job declares no `exclude_family`), so passing PR CI is the required coverage; no separate multi-arch sweep is needed. The label-driven selection is arch-independent — `HIP_MLOPS_ENGINE_test_categories.yaml` matches on GTest names, not architecture — so no arch-scoped gate applies. ## Testing Summary - Unit coverage for the CI configuration generator, confirming the `hipkernelprovider` entry still produces a valid test configuration after the `test_script` swap. - Runtime validation of the new path (label discovery, `ctest -L ^quick$` selection, install-dir resolution) is deferred to PR CI, which is the only place the built artifact exists. - Requires the `rocm-libraries` pointer on `main` to already carry the labeled install-tree `CTestTestfile.cmake`; if PR CI reports zero selected tests, that pointer has not landed yet. ## Testing Checklist - [x] CI config generator unit tests - `pytest build_tools/github_actions/tests/fetch_test_configurations_test.py` - Status: Passed - [ ] hipkernelprovider component tests - `test_runner.py` with `TEST_COMPONENT=hipkernelprovider` - Status: Pending - [ ] Test coverage for the new `COMPONENT_DIR_MAPPING` entry - Status: Not added - [ ] PR CI - GitHub PR checks - Status: Pending ## Technical Changes - `fetch_test_configurations.py`: `hipkernelprovider` `test_script` now points at `test_runner.py`, so the generic runner drives `ctest` from `THEROCK_BIN_DIR/hip_kernel_provider` using the category labels, replacing the legacy `test_hipkernelprovider.py` one-off. - `test_runner.py`: adds `hipkernelprovider -> hip_kernel_provider` to `COMPONENT_DIR_MAPPING`. `TEST_COMPONENT` is set from the job name, which does not match the provider's install directory name under `THEROCK_BIN_DIR`. - `rocm-libraries`: no longer touched. The earlier bump to `8e3b05a0dd51` has been reverted to the base pointer; the labeled `CTestTestfile.cmake` and tiered GTest/external-integration/rocKE labels arrive via the normal submodule advance on `main`. - `ml-libs/artifact-hipkernelprovider.toml` intentionally unchanged: unlike the miopen-provider manifest, its test component already ships `CTestTestfile.cmake`, both GTest binaries, the engine config TOMLs, and the rocKE test payload, so no include broadening is required.
Motivation
Add test filter standardisation for miopen-provider.
This works with the companion PR ROCm/rocm-libraries#7901
Technical Details
fetch_test_configurations.py: miopenprovidertest_script->test_runner.pyso the generic runner drivesctestfromTHEROCK_BIN_DIR/miopen_pluginusing the quick/standard/comprehensive/full category labels (replacing the legacytest_miopenprovider.pyone-off).test_runner.py: addmiopenprovider -> miopen_plugintoCOMPONENT_DIR_MAPPINGso the job name maps to the actual install dir name underTHEROCK_BIN_DIR.ml-libs/artifact-miopenprovider.toml: broaden the test-component include tobin/miopen_plugin/**so the YAML-generated install-treeCTestTestfile.cmake(and the binaries it references via relative paths) ship in the artifact. The companion rocm-libraries change inusers/dravindr/tf_miopen_provwrites that file tobin/miopen_plugin/CTestTestfile.cmake.Test Plan
Confirm that the CI tests for miopen-provider work once ROCm/rocm-libraries#7901 is merged.
Submission Checklist
Made with Cursor