Repository navigation
test(rocke): check the representative-IR golden one LLVM flavor per test - #14820
Conversation
✅ 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. |
|
Automated review: Model - qwen3.6:35b-a3b-coding-mtp-q4_K_M, effort: max PR #14820 — check the representative-IR golden one LLVM flavor per test (cgmillette, AICK-2895) — 🟡 First-round: Coverage equal; CI pending
Utility: 🟢 Positive — splits the near-limit golden test four ways; same checks, no IR change Legend: 🔴 blocking · 🟠 should-fix · 🟡 minor nit · 🟢 info/good · ⚪ retracted First-round review: first pass by a local qwen3.6 model, verified by the orchestrator (Claude Opus 5.5). Checks: merge with develop, build + ctest, golden gate (4 flavors), byte identity (llvm22), differential golden, the PR's tests, a coverage recorder (old vs new tests), an old-vs-new |
The representative-IR golden test lowered and hashed every case at every LLVM flavor inside one test, which came close to the per-test timeout of the installed pytest lane. It is now one test per flavor, parametrized over GOLDEN_FLAVORS (the qualified-lane list itself), plus one test that checks the golden's flavor documents and aliases without lowering anything. Together they check every case at every flavor against the same golden shards, and a drift message names its flavor. ir_golden gains check_golden_flavors, the flavor-set part of an all-flavor check_golden call, so a caller that checks flavors one at a time keeps the same coverage. check_golden's results are unchanged. BUILDING.md drops its note that the golden test reports conv drift without the C++ engine: the Python lowerer matches the goldens at every flavor, so the note no longer holds. Co-Authored-By: Claude <noreply@anthropic.com>
6bf24a8 to
a2fea5b
Compare
|
Automated review: Model - qwen3.6:35b-a3b-coding-mtp-q4_K_M, effort: max PR #14820 — check the representative-IR golden one LLVM flavor per test (cgmillette, AICK-2895) — 🟡 Follow-up: N1 fixed; CI running
Net-new: none. Utility: 🟢 Positive — splits the near-limit golden test four ways; CI shows ample margin Legend: 🔴 blocking · 🟠 should-fix · 🟡 minor nit · 🟢 info/good · ⚪ retracted Follow-up review: first pass by a local qwen3.6 model, verified by the orchestrator (Claude Opus 5.5). Checks: range-diff vs |
aosewski
left a comment
There was a problem hiding this comment.
Small comment to improve doc - not blocking.
#14862) ## Motivation Follow-up to #14820, from @aosewski's review there. #14820 removed the BUILDING.md note that 6 `conv/*` golden cases drift when the C++ engine is not built, because the claim is false: the golden check (`lower_case` in `tests/instances/rocke_ir_parity_harness.py`) always lowers with the Python lowerer at an explicit LLVM flavor, so the hashes do not depend on the engine, and the per-flavor golden tests pass with `rocke_engine` not importable. The same note was still in the "known residuals" callout of `KERNEL_AUTHORING.md`, pointing at BUILDING.md, which no longer mentions it. ## Technical Details - `KERNEL_AUTHORING.md`: the callout keeps only the datalayout residual (wording as suggested in the review). Docs only. ## Test Plan - No other `.md` under `rocke/` mentions the conv residual (searched). ## Test Result - pre-commit passes. ISSUE ID : AICK-2895 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <noreply@anthropic.com>
TheRock Submodule Bump ActivityNewest first
|
Motivation
tests/test_rocke_ci_static.py::TestIrParityCoverage::test_ir_cases_match_golden_sha256lowers and hashes every representative-IR case at every LLVM flavor (llvm20, llvm22, llvm23, llvm24) inside a single test. In the installedrocke_pytestCTest lane, which runs pytest with--timeout=60, that one test runs close to the per-test limit and times out intermittently on develop and on unrelated PRs.ISSUE ID : AICK-2895
Tracking issue: #14733
Technical Details
test_ir_cases_match_golden_sha256[<flavor>], parametrized overGOLDEN_FLAVORS(which isLLVM_FLAVORS, the list of qualified compiler lanes), so a newly added flavor gets its own test with no edit here. Each test lowers a quarter of the work the old test did. A drift message names its flavor.test_golden_holds_every_llvm_flavor, which lowers nothing.rocke.core.ir_goldengainscheck_golden_flavors(golden_path), the flavor-set part of an all-flavorcheck_goldencall, so a caller that checks flavors one at a time keeps the same coverage.check_goldenreturns the same results as before; the library golden tests that call it are unchanged.rocke_installed_golden_test.py, CTestrocke_golden_static) is the same check but runs as its own CTest process with no 60 s per-test limit, so it is left as one all-flavor call.BUILDING.mddrops its note that the golden test reports conv drift without the C++ engine: the Python lowerer matches the goldens at every flavor.No emitter, IR or golden changes.
Test Plan
tests/core/test_ir_golden.py:check_golden_flavorsaccepts a correct golden and reports a stale profile document; checking each flavor separately pluscheck_golden_flavorsgives exactly the errors of one all-flavorcheck_goldencall.rocke_installed_golden_test.pypasses.Test Result
tests/core/test_ir_golden.pyandtests/test_rocke_ci_static.pypass (both engines, strict).rocke_installed_golden_test.pypasses at all four flavors.tests/core,python/rocke/tests,tests/test_rocke.py,tests/test_rocke_ci_static.py): no failures. The remaining platform test files and the library tests that reach the touched code show no new failures against develop.🤖 Generated with Claude Code