test(tensilelite): cover report=False on the later XCC reject paths - #10267
test(tensilelite): cover report=False on the later XCC reject paths#10267tony-davis wants to merge 1 commit into
Conversation
PR #9355 added `if report:` guards to the not-power-of-two, does-not-divide and exception branches of _validateWorkGroupMappingXCC. Only the non-positive branch had a report=False test, so the false arc of the other three guards (91->93, 96->98, 102->104) went uncovered and ValidWorkGroupMappingXCC.py dropped from 100.00% to 95.59%. The per-file coverage ratchet added by #9123 merged 18 minutes after #9355 with a baseline captured before those lines existed, so the gate now fails on every hipBLASlt PR against a file it did not touch. Pin the suppression per branch rather than lowering the baseline. Co-authored-by: Cursor <cursoragent@cursor.com>
✅ All Checks Passed — Ready for Review
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
|
🎉 All checks passed! This PR is ready for review. |
There was a problem hiding this comment.
Pull request overview
Adds characterization test coverage to exercise the report=False suppression contract for the later reject branches in TensileLogic.ValidWorkGroupMappingXCC, restoring per-file branch coverage to match the existing ratcheted baseline without changing production code.
Changes:
- Add a parametrized test that hits the not-power-of-two, CU-divisibility, and exception paths with
report=False. - Assert each path returns
False, produces no stdout output, and does not mutate_xcc_failures_by_file.
Codecov Report✅ All modified and coverable lines are covered by tests. ❌ Your project check has failed because the head coverage (76.92%) is below the target coverage (80.00%). You can increase the head coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## develop #10267 +/- ##
========================================
Coverage 69.62% 69.62%
========================================
Files 2741 2741
Lines 451544 451545 +1
Branches 66531 66531
========================================
+ Hits 314370 314374 +4
Misses 116966 116966
+ Partials 20208 20205 -3
*This pull request uses carry forward flags. Click here to find out more. 🚀 New features to boost your workflow:
|
The per-file coverage ratchet is failing on every hipBLASlt PR with
ValidWorkGroupMappingXCC.pyat 95.59% against a 100.00% baseline, on a file those PRs do not touch. This restores the coverage rather than lowering the baseline.Two changes landed on develop eighteen minutes apart on 2026-07-31. #9355 (18:46Z) added
reportguards to three reject branches of_validateWorkGroupMappingXCC. #9123 (19:04Z) introducedcoverage-baseline.json, recording that file at 100.00% from a snapshot taken before those lines existed. The baseline was stale on arrival.The gap is three partial branches and zero missed statements: the
if report:false arc at lines 91, 96 and 102, covering the not-power-of-two, does-not-divide, and exception paths. The existingtest_report_false_is_side_effect_freeonly reaches the non-positive branch at line 86. Each guard is separate, so the suppression contract needs pinning per branch.Test plan
The new parametrized test asserts each path returns False, prints nothing, and leaves
_xcc_failures_by_fileempty. Verified out of band that all three cases also print underreport=True, so the parameters reach the intended branches instead of exiting early, and that branch coverage marks arcs91->93,96->98and102->104covered. No production code changes.I used plain assertions instead of
snapshothere; the property is fully expressible inline and it avoids regenerating__snapshots__for a gate fix.