Add rolling-versus-exact parser equivalence tests - #1097
Open
Gudge (MGudgin) wants to merge 1 commit into
Open
Conversation
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
Gudge (MGudgin)
force-pushed
the
user/gudge/version_specific_config_parsers_phase7d
branch
from
September 3, 2026 17:42
01f3c01 to
16b8ec3
Compare
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Rejection pairs bypass diagnostic comparison, allowing unclassified diagnostic drift.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review tier: Balanced
Findings: 1
New issues introduced by this change (1)
| Severity | Finding |
|---|---|
src/core/wxc_common/src/config_parser.rs — This branch treats any rolling/exact rejection pair as equivalent without comparing… |
What changed in this PR
Adds a private differential harness comparing rolling and exact configuration parsers.
Changes:
- Compares runtime models across versions and lifecycle phases.
- Exercises loader modes, command splicing, and diagnostics.
- Inventories 125 expected corpus divergences.
| File | Description |
|---|---|
src/core/wxc_common/src/config_parser.rs |
Adds differential parser snapshots, matrices, and corpus validation. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| )); | ||
| } | ||
| } | ||
| (ParserSnapshot::Rejected(_), ParserSnapshot::Rejected(_)) => { |
Gudge (MGudgin)
force-pushed
the
user/gudge/version_specific_config_parsers_phase7d
branch
from
September 3, 2026 18:14
16b8ec3 to
225977f
Compare
This PR adds a private differential harness that classifies rolling-versus-exact parser behavior while rolling parsing remains authoritative in production. Details * Compares complete one-shot and state-aware runtime models, diagnostics, loader modes, command splicing, every lifecycle phase, and every registered contract version. * Explicitly inventories 125 exact-stricter corpus files across configs, examples, and policy fixtures; new or changed divergences require deliberate classification. * Fails on every exact-looser acceptance or accepted-model mismatch. Tests * `cargo fmt --all -- --check` * `cargo check --workspace --all-targets` * `cargo clippy --workspace --all-targets -- -D warnings` * `cargo test --workspace` * macOS `aarch64-apple-darwin` cross-target check for `wxc_common` Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 651084c2-3d1e-4824-917a-6994d62feba0
Gudge (MGudgin)
force-pushed
the
user/gudge/version_specific_config_parsers_phase7d
branch
from
September 3, 2026 18:27
225977f to
2d4b094
Compare
Contributor
There was a problem hiding this comment.
Copilot review overview
🔵 Needs a closer look
Corpus cases rejected by both parsers currently bypass diagnostic-equivalence validation.
Review tier: Balanced
Findings: 1
Pre-existing issues (1)
| Severity | Finding |
|---|---|
src/core/wxc_common/src/config_parser.rs — This branch treats any rolling/exact rejection pair as equivalent without comparing… View comment |
Suppressed comments (1)
src/core/wxc_common/src/config_parser.rs:3432
- When both parsers reject a corpus file, this branch accepts any mismatch in route, category, path, source location, or message. A diagnostic regression—or the exact parser beginning to reject for a different reason—will therefore pass without deliberate classification. Compare the two rejection snapshots here and require any intentional mismatch to be listed in an explicit diagnostic-divergence inventory.
(ParserSnapshot::Rejected(_), ParserSnapshot::Rejected(_)) => {
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

📖 Description
This PR adds a private differential harness that classifies
rolling-versus-exact parser behavior while rolling parsing remains
authoritative in production.
Details
loader modes, command splicing, every lifecycle phase, and every registered
contract version.
examples, and policy fixtures; new or changed divergences require deliberate
classification.
Tests
cargo fmt --all -- --checkcargo check --workspace --all-targetscargo clippy --workspace --all-targets -- -D warningscargo test --workspaceaarch64-apple-darwincross-target check forwxc_commonMicrosoft Reviewers: Open in CodeFlow