Add test filter standardization for rocshmem#5691
Draft
dileepr1 wants to merge 8 commits into
Draft
Conversation
Paired with rocm-systems#6334, which adds native CTest integration for
rocSHMEM (tests/test_categories.yaml + apply_ctest_category_labels) and
installs relocatable bin/rocshmem/**/CTestTestfile.cmake files carrying the
quick/standard/comprehensive/full tier labels.
TheRock side:
- comm-libs/CMakeLists.txt: pass -DBUILD_CTESTS=${THEROCK_BUILD_TESTING} to the
rocshmem subproject so the CTest registration runs and the install-tree
CTestTestfile.cmake files are produced (the registration is gated behind
BUILD_CTESTS, which defaults OFF).
- comm-libs/artifact-rocshmem.toml: include the install-tree CTest files
(bin/rocshmem/**), the unit test binary, the CTest wrapper scripts and the
device_bitcode HSACOs in the test component so the artifact bundles
everything ctest needs (the functional binary and rocshmem_info come from
the run component).
- install_rocm_from_artifacts.py: add a --rocshmem artifact selector that
fetches rocshmem_lib/_run/_test plus OpenMPI (mpirun + libs) for the tests.
- fetch_test_configurations.py: add a rocshmem test job driven by the generic
test_runner.py (ctest -L <quick|standard|comprehensive|full> from
THEROCK_BIN_DIR/rocshmem) on linux multi-GPU runners.
- fetch_test_configurations_test.py: relax the single-multi-GPU-job assertion
now that rocshmem is a second multi-GPU job alongside rccl.
WIP: depends on rocm-systems#6334. Do not merge until #6334 lands and TheRock's
rocm-systems source includes it; paired validation runs from #6334 CI by
pointing its TheRock ref at users/dravindr/tr_rocshmem.
Co-authored-by: Cursor <cursoragent@cursor.com>
Point the rocm-systems submodule to the latest develop tip (068718c) which now contains the merged rocshmem CTest test-filter standardization work (rocm-systems#6334, merge c541756). This lets TheRock build rocshmem with the native CTest infrastructure and exercise the tsf test job end-to-end. Co-authored-by: Cursor <cursoragent@cursor.com>
Point the rocm-systems submodule at develop tip 87fa69c, which now includes rocshmem#6804 (Simple Local Runtime). #6804 removes the configure-time MPIEXEC early-return in CTestFunctionalTests.cmake that was force-disabling BUILD_CTESTS and preventing installation of bin/rocshmem/CTestTestfile.cmake. With SLR as the MPI-less fallback, the install-tree CTest file is generated and test_runner.py can find build/bin/rocshmem. Co-authored-by: Cursor <cursoragent@cursor.com>
Bump the rocm-systems submodule to rocshmem/therock-ci-fix (51ec214), which fixes the install-tree CTest gating so ctest can discover tests on a no-MPI test host. The install-root CTestTestfile template now gates the mpiexec early-return behind USE_SLR_LAUNCHER, so in SLR mode it falls through to the subdirs() calls and bin/rocshmem tests are listed (previously "No tests found in build/bin/rocshmem"). Co-authored-by: Cursor <cursoragent@cursor.com>
geomin12
reviewed
Jun 16, 2026
geomin12
left a comment
Contributor
There was a problem hiding this comment.
tests fail + merge conflict
but it looks good
…shmem Co-authored-by: Cursor <cursoragent@cursor.com> # Conflicts: # build_tools/github_actions/tests/fetch_test_configurations_test.py # rocm-systems
❌ 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 |
The rocshmem functional and unit test executables install to share/rocshmem/ (CMAKE_INSTALL_DATADIR), but artifact-rocshmem.toml referenced them as bin/rocshmem_functional_tests / bin/rocshmem_unit_tests, so neither was packaged into any artifact. At test time the install-tree CTestTestfile.cmake invokes them via ../../../../share/rocshmem/, which was absent, causing 74/77 functional tests to fail with "rocshmem_functional_tests: No such file or directory". Include the binaries at their real share/rocshmem/ paths in the test component and drop the dead bin/rocshmem_functional_tests glob from the run component. Co-authored-by: Cursor <cursoragent@cursor.com>
…shmem Co-authored-by: Cursor <cursoragent@cursor.com> # Conflicts: # rocm-systems
…shmem Co-authored-by: Cursor <cursoragent@cursor.com> # Conflicts: # rocm-systems
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
TheRock side of test-filter standardization for rocSHMEM, paired with ROCm/rocm-systems#6334.
rocm-systems#6334 adds native CTest integration for rocSHMEM:
projects/rocshmem/tests/test_categories.yamlplusapply_ctest_category_labels()wiring that installs relocatablebin/rocshmem/**/CTestTestfile.cmakefiles (a root dispatcher thatsubdirs()intotests/functionalandtests/unit) carrying thequick/standard/comprehensive/fulltier labels. This PR wires TheRock so the generictest_runner.pycan drive those tests from the installed artifact:comm-libs/CMakeLists.txt— pass-DBUILD_CTESTS=${THEROCK_BUILD_TESTING}to the rocshmem subproject. The CTest registration and the install-treeCTestTestfile.cmakegeneration in (feat): [AILIKFD-40] add kfdtest to TheRock CI #6334 are gated behindBUILD_CTESTS(defaultOFF), so without this the install tree would contain nobin/rocshmem/**andtest_runner.pywould fail withTest directory does not exist.comm-libs/artifact-rocshmem.toml— populate the previously-emptytestcomponent:bin/rocshmem/**(the install-tree CTest files),bin/rocshmem_unit_tests, theshare/rocshmem/*CTest wrapper scripts, and thedevice_bitcodeHSACOs. The functional binary androcshmem_infoalready live in theruncomponent (fetched viarocshmem_run).build_tools/install_rocm_from_artifacts.py— add a--rocshmemartifact selector that pullsrocshmem_lib/_run/_testplus OpenMPI (mpirun+ libs) needed to launch the tests.build_tools/github_actions/fetch_test_configurations.py— add arocshmemtest job usingtest_runner.py(fetch_artifact_args = "--rocshmem --tests"), on Linux multi-GPU runners (the functional/unit tests launch viampirunwithRANKS2..64, same setup asrccl).fetch_test_configurations_test.py— relax the assertion that assumed exactly one multi-GPU job repo-wide, now that rocshmem is a second multi-GPU job alongside rccl.test_runner.pyneeds noCOMPONENT_DIR_MAPPINGentry (job namerocshmem== install dirbin/rocshmem).Test plan
python3 -m pytest build_tools/github_actions/tests/fetch_test_configurations_test.py(22 passed)black --checkon the edited Python files--rocshmemregistered ininstall_rocm_from_artifacts.py --helpartifact-rocshmem.tomlparses; testincluderesolvesTHEROCK_BUILD_TESTING=ON, confirmbin/rocshmem/CTestTestfile.cmake+tests/{functional,unit}/CTestTestfile.cmakeare installed and bundled in the test artifactTEST_COMPONENT=rocshmem TEST_TYPE=quick python test_runner.pydiscovers labels and runsctest -L quickfromTHEROCK_BIN_DIR/rocshmemDepends on rocm-systems#6334. Do not merge until #6334 lands and TheRock's
rocm-systemssource includes it (otherwise the rocshmem source has no CTest infrastructure forBUILD_CTESTSto act on — see SKILL pitfall #8). Paired validation runs from #6334's CI by pointing its TheRock ref atusers/dravindr/tr_rocshmem.Made with Cursor