Repository navigation
Conversation
✅ All Policy Checks Passed
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
Phase-2 follow-up to AIRUNTIME-2743 (0bf70ef). Migrate every flat-list `disabled:` entry in the HIP Catch2 test configs to the mapping form carrying a `reason`, and enforce in check_config.py that any populated `disabled`/`unsupported` section has a non-empty reason. Existing inline skip comments are transferred into the reason and tagged for re-triage. Generated headers are unchanged (reason is parser-ignored; targets untouched). Changes: - Migrate 937 flat-list `disabled:` entries across 39 config YAMLs to mapping form; transfer 830 inline comments into `reason` and append "Needs to be re-triaged AIRUNTIME-2744" (or set it alone when no comment exists). - check_config.py: enforce non-empty `reason` for any populated `disabled`/`unsupported` section; empty/absent sections unaffected; remove the AIRUNTIME-2744 deferral comment. - TESTING.md, catch/README.md: document the reason requirement and the temporary-monitored (disabled) vs permanent (unsupported) distinction. 🤖 Claude Code 🤖
…l triage Fold triage evidence, Jira issue refs (AIRUNTIME-2862, ROCM-29915) or AIRUNTIME-XXXX placeholders, and platform-qualified re-triage sentinels into the reason fields of disabled test entries. Metadata only; generated headers unchanged.
Second-round triage adapting disabled-test dispositions to a fresh gfx1030 rebuild (TheRock main 2026-10-02, amd-llvm 2026-09-28) after the first round was found to have run against a 5-month-old stale build. Validator check_config.py configs exits 0. Changes: - Re-enable 6 tests now passing 3/3 on gfx1030 (drop amd_linux from skip targets, keep untriaged platforms with a re-triage sentinel): hipExecutionCtxStreamDestroy_Negative, hipGraphAddMemAllocNode_Negative_Free_Alloc_Memory_Again, Device_tgammaf_Accuracy_Limited_Positive, hipMemRangeGetAttribute_Positive_AccessedBy_Basic, hipMemRangeGetAttribute_Positive_AccessedBy_Partial_Range, hipMemAdvise_No_Flag_Interference. - Correct two reasons to fresh truth: cluster_split_barrier (self-skips since cluster launch is unsupported on gfx1030) and KernelStackSize (arch-gated to gfx1250/1251 but present in the fat multi-arch build; prior "not built on other asics" reason was wrong). - Move hipStreamKilledWorkerThread from disabled to unsupported (Windows-only via if(WIN32); never builds/runs on Linux).
cad6f6b to
f68f2b0
Compare
…an TheRock build) Re-triages every disabled test whose targets include amd_windows against a fresh, fully coherent TheRock build (single amd-llvm toolchain + HIP 7.17 runtime + hip-tests, all built together from this branch for gfx1201 only, per the CLRT "TheRock build" guide). This supersedes the earlier mixed-component attempt: no stale runtime, so the device/deviceLib/cooperativeGrps/module/ callback tests that previously failed to build now run. Each test run on Windows / gfx1201 (RX 9070 XT) by exact Catch2 name to bypass the skip tag. 556 entries updated; validator check_config.py configs exits 0. - Re-enable 229 tests passing on gfx1201 (10x; the templated cooperative-group tail confirmed 3x given their cost): drop amd_windows from targets and re-qualify the re-triage sentinel to the remaining untriaged platform(s); stale prefixes kept verbatim. - Move 228 entries to unsupported for amd_windows (source-gated off native Windows): 192 math + syncthreads (if(UNIX)); 19 deviceLib ext_ocp fp4/fp6/fp8 (if(NOT WIN32) - OCP host-reference bitfield ABI); 8 virtualMemoryManagement HostNuma (if(UNIX) - libnuma); 4 stream Aql (#if HT_AMD && HT_LINUX); 5 oob (add_subdirectory(oob) under UNIX). amd_wsl etc. stay disabled where they still build. - Keep disabled with a gfx1201 (amd_windows) finding + Jira placeholder: 34 failures, 4 hangs (>300s), 4 flaky; 57 self-skips (capability/build gates: cooperative launch unsupported, managed memory unsupported, large-BAR unsupported, assertions-disabled build) recorded without a defect ref. Not triaged (left disabled with existing sentinel, ~13): executionControl x2, performance x3, graph x2, kernel KernelStackSize, streamperthread, memory, and 2 cases that report no matching test - registered in source but not built or not registered on the Windows build; need per-case follow-up. Co-Authored-By: Claude <noreply@anthropic.com>
|
🤖 AI-assisted pre-review (for @mangupta) Re-reviewed the updated head ( |
…-enable; move more not-built suites to unsupported Follow-up to the gfx1201 clean-build triage, addressing PR feedback: - Re-enabled tests: strip clauses scoped to (amd_windows) from the reason. Once a test passes on amd_windows, an "(amd_windows) Note: ..." clause is stale/false, so it is removed; clauses for platforms still disabled (amd_wsl etc.) and generic prefixes are kept verbatim, and the sentinel stays re-qualified to the remaining untriaged platform(s). - Move 4 more suites to unsupported for amd_windows (confirmed never built on the native Windows build): kernel Unit_KernelStackSize and memory Unit_hipPointerSetAttribute_Positive_SyncMemops (both added only if(UNIX) in their CMakeLists; the latter notes a Windows undefined-symbol build error), and graph Unit_hipStreamBeginCaptureToGraph_CaptureDepGraph / _IndepGraphsThreads (wrapped in #ifdef __linux__). - Two cases the first pass reported as "no matching test" are in fact registered and were re-run: deviceLib Unit_MemcpyToSymbolInParallelWithStreamLaunch hangs (>timeout) and vmm Unit_hipMemSetAccessHost_devicealloc crashes (access violation); both kept disabled with the finding. Still disabled, documented (not a clean never-on-Windows gate): performance x3 (gated by build-option BUILD_PERF_TESTS, intentional local perf tests), executionControl x2, streamperthread StrmWaitEvt, hrr CaptureSmoke_Direct (hidden [.] child test). Validator check_config.py configs exits 0. Co-Authored-By: Claude <noreply@anthropic.com>
Re-triages every disabled test whose targets include amd_wsl by running it on WSL2 Ubuntu / gfx1201 (RX 9070 XT via the DXG passthrough, /dev/dxg). Runtime is the validated ROCm-for-WSL rc3 (therock-dist-linux-multiarch-tests-10.1.0rc3, DXG-backed) with its prebuilt multiarch hip-tests; the if(UNIX)-gated suites (math, syncthreads, atomics, ...) that never build on native Windows DO build and run here. Each test run by exact Catch2 name, 10x (templated tail 3x). 822 amd_wsl entries; 633 edited; check_config.py configs exits 0. - Re-enable 495 tests passing on gfx1201/WSL: drop amd_wsl from targets, re-qualify the sentinel to the remaining untriaged platform(s), and strip now-stale (amd_wsl)-scoped clauses. Tests that passed on both amd_windows and amd_wsl (sole remaining target) have their disabled block removed entirely. - Keep disabled with a gfx1201 (amd_wsl) finding + Jira placeholder: 35 fails (e.g. "no valid pci bdf in wsl"), 1 hang, 1 flaky; 101 self-skips (managed memory unsupported, cooperative launch unsupported, etc.). Notably all texture tests fail on WSL (DXG image path), unlike native Windows where they passed. Not triaged here (189, left disabled): these branch tests are absent from the rc3 prebuilt WSL hip-tests binaries (the release predates them) - memory 106, virtualMemoryManagement 52, gl_interop 17, and a few others. The fully from-source WSL build that would carry the branch's exact tests was blocked by missing sudo for WSL dev packages; these remain on the amd_wsl re-triage sentinel for a future from-source pass. Co-Authored-By: Claude <noreply@anthropic.com>
…ymptoms A crashing test corrupts the shared Catch2 XML for its chunk, so chunk-mates were mis-scored. Re-ran the 8 affected amd_wsl entries in isolation (10x): - hipIpcCloseMemHandle_Positive_Reference_Counting and hipIpcOpenMemHandle_Negative_Open_In_Two_Contexts_Same_Device pass 10/10 -> re-enabled on amd_wsl (were spurious "xml parse failed" fails). - hipStreamAddCallback_StrmSyncTiming is 6/10 -> FLAKY (kept disabled). - Device___exp10f/__expf accuracy tests genuinely crash (core dump) and fdim/fma/remquo genuinely miss 0-ULP accuracy: replaced the placeholder findings with the real symptom so the next triage starts from a real base. check_config.py configs exits 0. Co-Authored-By: Claude <noreply@anthropic.com>
|
🤖 AI-assisted pre-review (for @mangupta) Re-reviewed the updated head ( |
…hip-tests
Re-ran the 189 amd_wsl cases that were unmapped on the rc3 prebuilt against a
branch-coherent, from-source TheRock WSL build (HIP 7.17, gfx1201, DXG runtime
on a local RX 9070 XT). 166 of them now map and run:
- 131 pass -> re-enabled on amd_wsl (dropped from disabled targets; stale
(amd_wsl) prefix clauses removed; re-triage sentinel re-qualified to the
remaining untriaged platforms)
- 8 fail -> kept disabled with the amd_wsl failure symptom + AIRUNTIME-XXXX
(NUMA host-memory VMM + one HRR capture variant)
- 27 self-skip -> kept disabled with the gfx1201 (amd_wsl) self-skip note
Source-gate findings for cases absent from the branch build:
- executionControl hipFuncSetAttribute/hipFuncSetSharedMemConfig -> amd_wsl
unsupported (compiled only on non-AMD per the HIP_PLATFORM gate)
- cluster split_barrier -> kept disabled: cluster launch unsupported on
gfx1201 (arch-gated to gfx1101/gfx1250)
gl_interop (OpenGL not present at build), performance (BUILD_PERF_TESTS flag),
and the commented-out streamperthread StrmWaitEvt / hidden HRR CaptureSmoke_Direct
helper are left untouched (not target source-gates). check_config.py configs: PASS.
Co-Authored-By: Claude <noreply@anthropic.com>
check_config.py accepted any non-empty reason value, including YAML lists and mappings, because it validated via str(reason).strip(). A non-scalar reason stringified to a truthy value and silently passed, even though the documented mapping form requires a reason scalar. Require reason to be a non-empty string: a populated skip section whose reason is a list, mapping, or other non-string value is now routed to the missing-reason error and fails validation. Empty-targets no-op sections and the flat-list form are unchanged, and the existing config tree still passes. Changes: - check_config.py: guard reason with isinstance(reason, str) and reason.strip() 🤖 Claude Code 🤖
memory.yaml carried a mojibake-corrupted em-dash (bytes including 0x9d) in two skip-reason strings. check_config.py reads config files via common.py's open() without an explicit encoding, so on Windows (cp1252) the 0x9d byte is undefined and the check_hip_tests_config build stage failed with UnicodeDecodeError. Replace the garbled dash with ASCII -- to keep the config tree readable on all platforms. Changes: - memory.yaml: replace corrupted em-dash with ASCII -- in two reason strings 🤖 Claude Code 🤖
AIRUNTIME-2744 Phase 3. Every disabled/unsupported skip reason in the Catch2 config YAMLs now leads with a real AIRUNTIME-<number> tracking reference. Prior placeholder tags (AIRUNTIME-XXXX) are replaced with the AIRUNTIME-2892 follow-up ticket, and all reasons are rephrased for clarity. Non-ASCII characters are converted to ASCII to satisfy the Windows cp1252 check_hip_tests_config build constraint. check_config.py is extended to enforce that every skip reason contains a real AIRUNTIME-<digits> reference. Changes: - check_config.py: add missing_jira enforcement so a skip reason without a real AIRUNTIME-<digits> reference fails the config check - Replace 75 AIRUNTIME-XXXX placeholders with the AIRUNTIME-2892 follow-up ticket, leading the reason string - Rephrase all 630 skip reasons to lead with AIRUNTIME-<num> for clarity and consistent triage attribution - Convert 12 non-ASCII reason strings to ASCII (Windows cp1252 build constraint) 🤖 Claude Code 🤖
The reason check also requires a real AIRUNTIME-<number> ref, but the docs only mentioned a non-empty reason. Update README.md and TESTING.md to state the Jira-ref requirement and use the leading-ref placeholder form that matches the migrated configs. Changes: - README.md / TESTING.md: document the AIRUNTIME-<number> requirement; replace the stale "Needs to be re-triaged AIRUNTIME-2744" placeholder with the leading-ref form "AIRUNTIME-2744 - needs to be re-triaged". - check_config.py: drop the phantom AIRUNTIME-XXXX placeholder from the comment; describe the missing-ref case generically. - memory.yaml: behaviour -> behavior. - hrr.yaml: replace a machine-specific user path with %LOCALAPPDATA%.
Manual CI: full hip-tests catch runDispatched a
Caveats:
|
|
🤖 AI-assisted pre-review (for @mangupta) Re-reviewed the updated head ( |
…dows
The re-enabled Catch2 test Unit_Uuid_FntlTstsFor_SetEnv_HIP_VISIBLE_DEVICES
passes locally but fails on the Windows gfx110X ROCR hip-tests lane. Its
child-process section "Set Env in parent and verify UUID in child" hits
REQUIRE(proc.run(t_uuid) == 1) == 0 at hipDeviceGetUuid.cc:322, meaning the
spawned child that re-reads the UUID under HIP_VISIBLE_DEVICES reports
failure on Windows ROCR CI. Re-disable only amd_windows (the asic that
regressed); amd_wsl has no CI lane and showed no failure, so it stays
re-enabled per the original PR intent.
Changes:
- device.yaml: add disabled{targets:[amd_windows]} to
Unit_Uuid_FntlTstsFor_SetEnv_HIP_VISIBLE_DEVICES with an AIRUNTIME-2892
reason documenting the Windows ROCR child-process failure
CI watch update — one re-enabled test regressed on Windows ROCRDispatched full hip-tests run 37553101265 results:
Failing test: This test was re-enabled by this PR on Pushed as |
|
🤖 AI-assisted pre-review (for @mangupta) Re-reviewed the updated head ( |
Full hip-tests verification complete (fix commit a94c060)Dispatched a full hip-tests run on the latest commit: 37587149950 (Linux gfx94X + Windows gfx110X, PAL & ROCR backends, 4 shards each). The AIRUNTIME-2892 fix is confirmed working. Windows ROCR shard 2/4 — which previously failed on Two remaining failures, neither caused by this PR:
Net: every test this PR re-enables that executed on a CI lane passes, except the one Uuid case already re-disabled for amd_windows under AIRUNTIME-2892. The two outstanding shard failures are pre-existing / flaky and independent of this change. |
The re-enabled Catch2 test Unit_hipStreamSynchronize_spt_FinishWork hangs
past the 600s ctest timeout on the Windows gfx110X ROCR hip-tests shard 3
lane, as part of a stream/event timeout cascade on that shard. It passes
locally. Re-disable it on amd_windows only (the asic where it is flaky in
CI); amd_wsl has no CI lane and stays re-enabled per the original PR intent.
Changes:
- stream.yaml: add disabled{targets:[amd_windows]} to
Unit_hipStreamSynchronize_spt_FinishWork with an AIRUNTIME-2892 reason
documenting the Windows ROCR shard 3 timeout
|
🤖 AI-assisted pre-review (for @mangupta) Re-reviewed the updated head ( |
Resolve conflicts in the hip-tests Catch2 config tree (36 files) between develop's level-system redesign and this branch's reason-enforcement migration. develop renamed the default level anchor (*level_2 -> *level_default = [0,1,2]), redesigned definitions.yaml, added new tests, and added a few disables in the old bare-list style. This branch rewrote every populated disabled/unsupported section into the mapping form with an AIRUNTIME-referenced reason, re-enabled a large set of tests, and re-disabled two on amd_windows. Resolution policy: develop is authoritative for levels/anchors, params, and new tests; this branch is authoritative for skip-state (disabled/unsupported/reason). Verified post-merge that every common case's resolved level matches develop (0 mismatches, 0 develop tests lost) and every common case's skip-state matches this branch (0 mismatches, 0 branch cases lost). check_config.py configs exits 0 and all reason strings are ASCII-only. Changes: - configs/**: take develop's anchors/levels/new-tests; transplant this branch's reason-form disabled/unsupported blocks per test case - definitions.yaml: take develop's redesigned level system (level_default, level_stress, level_all; level: [N] lists; math_* cmd_options) - memory.yaml: convert develop's 3 new bare-list disables to reason form (Unit_hipFreeInteriorPtrDev/Host asan double-free; batch-async SdmaDisabled_Child) with AIRUNTIME-2744 reasons so they satisfy the merged check_config enforcement
fabiomestre
left a comment
There was a problem hiding this comment.
By re-enabling all these tests in one go, we are at risk of having significant amount of new Asan failures (i.e. some of these tests have never been run under Asan). It might be good to triage this PR with an Asan build before merging and keep any test that fails with Asan disabled so that it can be triaged later.
PR #12703 re-enabled 225 Catch2 unit cases on amd_windows that were previously disabled. The individual tests pass, but the full Windows ROCR shards now exceed the 120-minute per-shard CI timeout (timeout_minutes in TheRock's fetch_test_configurations.py), causing shard failures. Re-disable these on amd_windows as a revertable experiment: if CI goes green, fix the runtime/timeout in TheRock and re-enable. Changes: - 170 previously skip-free cases: add a disabled block {targets: [amd_windows], reason: "AIRUNTIME-2892 ..."}. - 55 cases already carrying a disabled block for other targets: add amd_windows to targets and append the AIRUNTIME-2892 timeout note to the existing reason (original rationale preserved). - All reasons cite AIRUNTIME-2892; check_config.py passes. Intended to be reverted once Windows test runtimes are improved or the TheRock total timeout is raised. 🤖 Claude Code 🤖
Four VMM/IPC tests fail under device-side ASAN (heap-use-after-free in
libamdhip64 plus LeakSanitizer leaks) on gfx942. These failures are
pre-existing in the HIP runtime and are not introduced by the reason-note
enforcement work, but they currently break the PR's ASAN lane. Skip them
on the asan target so the lane goes green; the underlying runtime bugs are
tracked under AIRUNTIME-2892 for re-triage.
Changes:
- Add disabled: {targets: [asan]} to Unit_hipMemImportFromShareableHandle_HostBackedAlloc
- Add disabled: {targets: [asan]} to Unit_hipMemImportFromShareableHandle_Capture
- Add disabled: {targets: [asan]} to Unit_hipMemGetHandleForAddressRange_VM
- Merge asan into existing disabled list of Unit_hipMemCreate_HostNuma_ExportImport
🤖 Claude Code 🤖
check_config.py enforced that every populated disabled:/unsupported: skip section cites a tracking ticket, but the matcher was hard-coded to AIRUNTIME-<number>. Skips are also tracked under other projects (ROCM, SWDEV, EXSWHTEC already appear in the real configs, and AIRADSW is in use), so generalize enforcement to an explicit allowlist of known Jira project keys expressed as a named constant. The change is strictly more permissive for the AIRUNTIME anchor, so all existing reasons still validate; it is an allowlist rather than a generic [A-Z]+-<number> pattern so typos like BLAH-1 are still rejected. Changes: - check_config.py: replace the AIRUNTIME-only regex with a JIRA_PROJECTS allowlist tuple (AIRUNTIME, ROCM, SWDEV, EXSWHTEC, AIRADSW); build the regex and the error message from that constant so they cannot drift - catch/README.md: document the allowlist, list the keys, and note that a new key is added by editing JIRA_PROJECTS - TESTING.md: list the accepted project keys in the skip policy 🤖 Claude Code 🤖
…untime-2744-hip-tests-config-reason-note-enforcement # Conflicts: # projects/hip-tests/catch/config/configs/unit/graph.yaml
|
🤖 AI-assisted pre-review (for @mangupta) Re-reviewed the updated head ( |
…-2892) Both cases fail intermittently on the Windows ROCR hip-tests lane. On the identical head SHA, consecutive CI runs failed disjoint test sets (one run hit 4 timeout-range failures, the next hit these 2 fast-assertion failures), confirming flakiness rather than a deterministic regression. Changes: - stream.yaml: add amd_windows to Unit_hipMultiStream_SharedHwQueuePacketOrdering disabled targets; REQUIRE(host_ordering_errors == 0) intermittently fails 3==0. - graph.yaml: add amd_windows to Unit_hipGraphAddMemAllocNode_Negative_Free_Alloc_Memory_Again disabled targets; same ret==hipErrorInvalidValue (0==1) failure seen on amd_wsl, with intermittent SEH on Windows. 🤖 Claude Code 🤖
Comparing gfx90a results from an ASAN device build against a non-ASAN build on the same GPU surfaced 28 cases that fail only under device ASAN and pass on the non-ASAN build. Disable these on the asan target pending re-triage so ASAN lanes stop flagging known-environmental failures. Changes: - memory.yaml: 14 new asan disables + 4 merged into existing blocks - graph.yaml: 2 new asan disables - texture.yaml: 4 new asan disables + 2 merged into existing blocks - virtualMemoryManagement.yaml: 2 inline cases expanded with asan disable - All tagged AIRUNTIME-2892 for phase-3 re-triage 🤖 Claude Code 🤖
|
🤖 AI-assisted pre-review (for @mangupta) Re-reviewed the updated head ( |
…untime-2744-hip-tests-config-reason-note-enforcement # Conflicts: # projects/hip-tests/catch/config/configs/unit/graph.yaml
…untime-2744-hip-tests-config-reason-note-enforcement # Conflicts: # projects/hip-tests/catch/config/configs/unit/virtualMemoryManagement.yaml
|
🤖 AI-assisted pre-review (for @mangupta) Re-reviewed the updated head ( |
Unit_hipStreamWaitValue_Default fails on amd_windows (gfx110X) with an
illegal memory access in hipStreamValue.cc. The fault corrupts the GPU
queue state, cascading every subsequent stream/event test in the shard
to exit 0xc0000409 and hanging until the 120-minute shard timeout.
Disable on amd_windows (the config has no ROCR-only granularity) pending
re-triage under AIRUNTIME-2892.
Changes:
- stream.yaml: add disabled {targets: [amd_windows], reason} to
Unit_hipStreamWaitValue_Default
🤖 Claude Code 🤖
## Motivation Follow-up to AIRUNTIME-2743 (commit 0bf70ef), which added the `unsupported` skip field alongside `disabled` in the Catch2 test-config system. The skip sections accept a `reason`, but it was optional and unenforced, so skipped tests could accumulate with no recorded justification. This PR makes a reason mandatory whenever a skip section is populated, requires that reason to cite a real Jira reference so the skip is trackable, and migrates the existing `disabled` entries to carry their justification as structured metadata so disabled tests can be monitored and re-triaged. ## Technical Details - `check_config.py`: adds a validation pass that errors (exit 1) when any `disabled`/`unsupported` section has non-empty targets but (a) an empty or whitespace-only `reason`, or (b) a `reason` that does not contain a real Jira reference (`AIRUNTIME-<number>`; a digitless placeholder does not count). Empty sections (`targets: []`) need no reason; the flat-list form remains valid only when empty. Ordered after the existing missing-`level` and invalid-skip-shape checks. - Migrated 39 config YAMLs: existing flat-list `disabled:` entries converted to the mapping form `{targets: [...], reason: "..."}`. Prior inline comments were folded into `reason`, each reason leads with its tracking ticket (`AIRUNTIME-<number> - ...`), and untriaged entries use the placeholder `AIRUNTIME-2744 - needs to be re-triaged` so each disabled test has a trackable follow-up. No empty `disabled`/`unsupported` sections were scaffolded; `definitions.yaml` (anchor definitions) is untouched. - `reason` is metadata only — `parse_config.py` ignores it — so the generated Catch2 test headers are unchanged by the migration. - Updated `README.md` and `TESTING.md` to document the enforced behavior (both the mandatory reason and the required Jira reference) and the disabled (temporary, monitored) vs unsupported (permanent) intent distinction. ## Issue Tracking JIRA ID: AIRUNTIME-2744 (follow-up to AIRUNTIME-2743) ## Test Plan - Regenerated the Catch2 config headers from the migrated YAMLs and compared against the pre-migration baseline. - Exercised `check_config.py` against the real configs plus synthetic cases (populated section with empty reason; populated section with a reason that has no Jira ref; empty-targets section). - Ran `black`/pre-commit on the modified Python. ## Test Result - Golden gate: generated headers byte-identical (sha256) before vs after the migration across all three config trees — a pure no-op on generated test output. - Enforcement: exit 0 on the real configs; exit 1 naming the offending entry on a populated section with an empty reason; exit 1 naming the offending entry on a populated section whose reason lacks an `AIRUNTIME-<number>` ref; exit 0 on an empty-targets section. - `black`/pre-commit: pass. ## Submission Checklist - [x] Look over the contributing guidelines at https://github.com/ROCm/rocm-systems/blob/develop/CONTRIBUTING.md. --------- Co-authored-by: sruscica <�Sam.Ruscica@amd.com> Co-authored-by: Claude <noreply@anthropic.com>
TheRock Submodule Bump ActivityNewest first
|
Motivation
Follow-up to AIRUNTIME-2743 (commit 0bf70ef), which added the
unsupportedskip field alongside
disabledin the Catch2 test-config system. The skipsections accept a
reason, but it was optional and unenforced, so skippedtests could accumulate with no recorded justification. This PR makes a reason
mandatory whenever a skip section is populated, requires that reason to cite a
real Jira reference so the skip is trackable, and migrates the existing
disabledentries to carry their justification as structured metadata sodisabled tests can be monitored and re-triaged.
Technical Details
check_config.py: adds a validation pass that errors (exit 1) when anydisabled/unsupportedsection has non-empty targets but (a) an empty orwhitespace-only
reason, or (b) areasonthat does not contain a real Jirareference (
AIRUNTIME-<number>; a digitless placeholder does not count).Empty sections (
targets: []) need no reason; the flat-list form remainsvalid only when empty. Ordered after the existing missing-
levelandinvalid-skip-shape checks.
disabled:entries converted tothe mapping form
{targets: [...], reason: "..."}. Prior inline comments werefolded into
reason, each reason leads with its tracking ticket(
AIRUNTIME-<number> - ...), and untriaged entries use the placeholderAIRUNTIME-2744 - needs to be re-triagedso each disabled test has atrackable follow-up. No empty
disabled/unsupportedsections werescaffolded;
definitions.yaml(anchor definitions) is untouched.reasonis metadata only —parse_config.pyignores it — so the generatedCatch2 test headers are unchanged by the migration.
README.mdandTESTING.mdto document the enforced behavior (boththe mandatory reason and the required Jira reference) and the disabled
(temporary, monitored) vs unsupported (permanent) intent distinction.
Issue Tracking
JIRA ID: AIRUNTIME-2744 (follow-up to AIRUNTIME-2743)
Test Plan
against the pre-migration baseline.
check_config.pyagainst the real configs plus synthetic cases(populated section with empty reason; populated section with a reason that has
no Jira ref; empty-targets section).
black/pre-commit on the modified Python.Test Result
migration across all three config trees — a pure no-op on generated test output.
populated section with an empty reason; exit 1 naming the offending entry on a
populated section whose reason lacks an
AIRUNTIME-<number>ref; exit 0 on anempty-targets section.
black/pre-commit: pass.Submission Checklist