Skip to content

[DRAFT][rocgdb] Test filter standardization support (generic, component-agnostic) - #5917

Draft
dileepr1 wants to merge 3 commits into
mainfrom
users/dravindr/tr_rocgdb
Draft

[DRAFT][rocgdb] Test filter standardization support (generic, component-agnostic)#5917
dileepr1 wants to merge 3 commits into
mainfrom
users/dravindr/tr_rocgdb

Conversation

@dileepr1

Copy link
Copy Markdown
Contributor

Summary

TheRock-side support for ROCgdb test-filter standardization (RFC0010). This
keeps TheRock fully generic — all rocgdb-specific test logic (the tiered
test_categories.yaml, the generated CTestTestfile.cmake, and the
test_rocgdb.py launcher) lives in the ROCgdb repo. TheRock only:

  1. build_tools/.../test_runner.py — adds a generic COMPONENT_OVERRIDES
    entry for rocgdb pointing the ctest --test-dir at the installed
    testsuite (tests/rocgdb/gdb/testsuite). No rocgdb-specific behavior; just
    a directory override, consistent with other components.

  2. debug-tools/rocgdb/CMakeLists.txt — adds EXISTS-guarded install
    rules that ship ROCgdb's .github/test-runner/test_categories.yaml and
    CTestTestfile.cmake into tests/rocgdb/gdb/testsuite/ when the sources
    provide them. Absence is a no-op, so the wrapper still works with upstream
    gdb sources that don't carry these files (mirrors the optional-install
    pattern from debug-tools/rocgdb: install rocgdb_ignore_list.json when present #5720).

With these, test_runner.py can drive ctest -L <tier> against the rocgdb
testsuite, where each tier invokes ../../test_rocgdb.py --tier <name>.

Paired PR

Pairs with the ROCgdb PR: ROCm/ROCgdb#170 (users/dravindr/tf_rocgdb), which
owns all the rocgdb-specific files. Draft until that lands and the test-trigger
wiring is finalized alongside the multi-arch CI work.

Test plan

  • ctest -N / --print-labels discover the four tiers and labels
  • ctest -L quick runs end-to-end in ROCgdb PR CI (paired branch), ~2 min
  • Validate install rules are no-ops for upstream gdb sources
  • Finalize how the test trigger is invoked from TheRock CI (multi-arch)

Made with Cursor

dileepr1 added a commit to ROCm/ROCgdb that referenced this pull request Jun 22, 2026
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>
Route the rocgdb-cpu / rocgdb-gpu test matrix jobs through ROCgdb's test-filter
standardization (RFC0010) instead of hardcoded testsuite directories:

  - fetch_test_configurations.py: rocgdb-cpu/gpu now run
      test_rocgdb.py --tier quick --domain cpu   (CPU runner: gdb.dwarf2 etc.)
      test_rocgdb.py --tier quick --domain gpu   (GPU runner: gdb.rocm)
    Both share one tier definition; --tier defaults to 'quick' (nightly/
    extended pipelines can raise it later).

  - debug-tools/rocgdb/CMakeLists.txt: EXISTS-guarded install of ROCgdb's
    .github/test-runner/test_categories.yaml next to the testsuite
    (tests/rocgdb/gdb/testsuite), where test_rocgdb.py --tier loads it. Mirrors
    the existing optional rocgdb_ignore_list.json install; absence is a no-op so
    the wrapper stays compatible with upstream gdb.

TheRock stays component-agnostic: all rocgdb test logic (tiers, domain split,
launcher) lives in the ROCgdb repo (paired branch users/dravindr/tf_rocgdb).

Co-authored-by: Cursor <cursoragent@cursor.com>
@dileepr1
dileepr1 force-pushed the users/dravindr/tr_rocgdb branch from b04c31f to aca2b85 Compare July 1, 2026 15:05
@therock-pr-bot

therock-pr-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown

❌ PR Check — Action Required

Check Status Details
🌿 Branch Name ✅ Pass
📝 PR Title/Description ❌ Fail Error: Title is too long (81 characters).
Expected: at most 80 characters.
Desired format: type(optional-scope): short description
───
Error: Title does not follow Conventional Commits style.
Expected: start with a valid type (feat, fix, docs, …).
Desired format: type(optional-scope): short description
Forbidden Files ✅ Pass
🧪 Unit Test ❌ Fail Error: Source/code files changed without an accompanying unit test.
Expected: add at least one test file named like test_<name>.py / test_<name>.cpp (or <name>_test.*).
Current: code file(s) changed: build_tools/github_actions/fetch_test_configurations.py; no test file found
🔎 pre-commit ⏳ Pending ⏳ Still running…
🚫 Draft PR 🔜 To Be Enabled
🚩 Feature Flag 🔜 To Be Enabled
📊 Code Coverage 🔜 To Be Enabled

⚠️ 2 policy check(s) failed. Please address the issues above before this PR can be Reviewed.

🚫 Please fix the failed policies

  • ❌ PR Title/Description
  • ❌ Unit Test

The Not ready to Review label was added to this PR. Once all policies pass, the label is removed automatically.

📖 Need help? See the Policy FAQ for details on every check and how to fix failures.

@therock-pr-bot therock-pr-bot Bot added the Not ready to Review PR has unresolved policy failures — reviews blocked label Jul 1, 2026
@therock-pr-bot

therock-pr-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown

🚫 Please fix the failed policies before requesting reviews.

The following policy checks failed:

  • ❌ PR Title/Description
  • ❌ Unit Test

The Not ready to Review label has been added to this PR.
Once all policies pass, the label will be removed automatically.

dileepr1 added a commit to ROCm/ROCgdb that referenced this pull request Jul 1, 2026
Temporary (do-not-merge) change: point THEROCK_COMMIT_REF at
users/dravindr/tr_rocgdb (ROCm/TheRock#5917) to validate the test-filter
tier standardization end-to-end (matrix runs test_rocgdb.py --tier quick
--domain cpu|gpu against the installed test_categories.yaml). Revert to a
pinned ROCm/TheRock SHA before merge.

Co-authored-by: Cursor <cursoragent@cursor.com>
dileepr1 added a commit to ROCm/ROCgdb that referenced this pull request Aug 4, 2026
Temporary (do-not-merge) change: point THEROCK_COMMIT_REF at
users/dravindr/tr_rocgdb (ROCm/TheRock#5917) to validate the test-filter
tier standardization end-to-end. Revert to a pinned ROCm/TheRock SHA
before merge.

Co-authored-by: Cursor <cursoragent@cursor.com>
dileepr1 and others added 2 commits August 4, 2026 11:07
Splits the rocgdb GPU tests into two runner categories so the core-dump
tests run separately from the rest:
  rocgdb-gpu      - gdb.rocm minus the corefile tests
  rocgdb-corefile - the gdb.rocm tests requiring allow_rocm_core_tests

All three rocgdb shards (cpu/gpu/corefile) drive the installed launcher with
the same --tier and split only via --domain, sharing one tier definition in
ROCgdb's test_categories.yaml. Registers rocgdb-corefile as a TEST_SUBPROJECT
alongside the existing cpu/gpu entries.

The corefile shard currently lands on the standard GPU runner; it needs a
runner whose host core_pattern/ulimit are provisioned for plain core files
(see NOTE in fetch_test_configurations.py). Tests self-skip via
`require allow_rocm_core_tests` where unsupported.

Co-authored-by: Cursor <cursoragent@cursor.com>
Points the rocgdb submodule at users/dravindr/tf_rocgdb (a0c2ca395352) so
this PR's CI builds the test-filter-aware test_rocgdb.py (--tier/--domain)
and can validate the 3-shard cpu/gpu/corefile matrix end-to-end.

Revert before merge: the pin must return to the amd-staging-rocgdb-16 tip
once ROCgdb PR #170 lands.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Not ready to Review PR has unresolved policy failures — reviews blocked

Projects

Status: TODO

Development

Successfully merging this pull request may close these issues.

1 participant