[DRAFT][rocgdb] Test filter standardization#170
Conversation
c589eb6 to
c670cb0
Compare
lumachad
left a comment
There was a problem hiding this comment.
Thanks for the PR. Some preliminary comments. I think it's mostly OK, pending adjusting location of files, lists of tests and validation.
|
Thanks for the updates. Let me go through this again. |
|
Let's wait until #117 gets merged, as that one has a large change to test_rocgdb.py. Since this one touches that same script, we should avoid needless conflict resolution cycles. |
|
#117 has been merged. I think we can rebase the changes in this PR on top of current test_rocgdb.py. |
Add a --tier {quick,standard,comprehensive,full} option to
.github/scripts/test_rocgdb.py (mutually exclusive with
--tests/--gpu-tests/--cpu-tests, defaults to the TEST_TYPE env var). When set,
test_patterns from .github/test-runner/test_categories.yaml are expanded (with
fnmatch excludes) into the concrete .exp list.
The non-upstream test-filter files live under .github/test-runner/ to keep
ROCgdb close to upstream:
- test_categories.yaml : source of truth for the tiers
- gen_ctestfile.py : dev tool that regenerates CTestTestfile.cmake
- CTestTestfile.cmake : maps each tier to ../../test_rocgdb.py --tier <name>
TheRock installs these next to the testsuite via EXISTS-guarded rules
(paired branch users/dravindr/tr_rocgdb, ROCm/TheRock#5917).
Co-authored-by: Cursor <cursoragent@cursor.com>
Temporary validation scaffolding (to be removed before merge; the TheRock-side
PR will own the trigger post multi-arch CI migration):
- Point THEROCK_COMMIT_REF at the paired branch users/dravindr/tr_rocgdb.
- Run TheRock's generic test_runner.py with TEST_COMPONENT=rocgdb and
TEST_TYPE=quick (the curated smoke tier finishes within the job timeout),
and restore THEROCK_BIN_DIR so test_runner.py can derive ROCM_PATH and the
ctest --test-dir.
Co-authored-by: Cursor <cursoragent@cursor.com>
173f18d to
014312a
Compare
|
@dileepr1 Thanks. Let me go through this again and see what we should put into the test categories. |
|
@dileepr1 With rocgdb testing we have both CPU and GPU tests that must be routed to the appropriate runners to make the best use of resources. Can these filters handle that? |
Summary
Adopts TheRock's test-filter standardization (RFC0010) for ROCgdb, keeping all component-specific logic in this repo. TheRock stays component-agnostic — it only invokes its generic
test_runner.py.New sibling files under
gdb/testsuite/(installed verbatim by TheRock's existing testsuite install rule totests/rocgdb/gdb/testsuite/):test_categories.yaml— source of truth for thequick/standard/comprehensive/fulltiers (DejaGnu.expselection, labels, timeouts).test_rocgdb.py— the DejaGnu launcher with a--tierflag (honoursTEST_TYPE); self-locatesrocgdb+ testsuite from__file__when run by ctest from the install tree.gen_ctestfile.py— dev tool that regeneratesCTestTestfile.cmakefrom the YAML.CTestTestfile.cmake— pre-generated + committed; oneadd_test()per tier; each invokestest_rocgdb.py --tier <name>via a relative path (ctest sets the working directory to the test dir).Workflows now invoke
test_runner.pywithTEST_COMPONENT=rocgdb/TEST_TYPE=standardinstead of a per-component script.Pairing
Paired with TheRock branch
users/dravindr/tr_rocgdb, whose net footprint is just:fetch_test_configurations.py: rocgdb job →test_runner.pytest_runner.py: a singleCOMPONENT_OVERRIDES["rocgdb"]entry →tests/rocgdb/gdb/testsuiteTHEROCK_COMMIT_REFintherock-ci-linux.ymlandtherock-test-packages.ymlis temporarily set tousers/dravindr/tr_rocgdbso this draft builds/tests against that paired state.Flow
Test plan
gfx94X-dcgpu) succeeds againsttr_rocgdbRun Testsjob exercisesctest -L standard→test_rocgdb.py --tier standard(GCC + LLVM matrix)THEROCK_COMMIT_REFto a pinnedROCm/TheRockSHA before un-drafting🤖 Generated with Cursor
Made with Cursor