Match fuzz budgets to generator shapes and assert real invariants - #1295
Conversation
…tions, and stop parallel test forks racing on a shared output file.
…sert newline and recompile invariance instead of non-null.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
@codex review |
|
Codex Review: Didn't find any major issues. Can't wait for the next one! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
…aths-and-test-isolation
…uzz-invariants-not-volume
|
@codex review |
|
Codex Review: Didn't find any major issues. What shall we delve into next? Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
The compiler fuzz generator varies program structure with six bits of the seed (indent style, tuple, interface, module, loop, callback), giving 64 distinct shapes for single programs and 24 for cross-package ones; the rest of the seed only renames packages and changes integer literals, which reaches no new compiler path. The invocation budgets were 320/180/120 against those counts, so most invocations recompiled shapes already covered, and three of the four properties asserted only that the result was non-null.
Budgets now derive from named constants tied to what each generator can actually produce, and the weakest property is replaced by two that assert real invariants:
newlineStyleDoesNotAffectEmittedCode- the same source written with LF and CRLF must emit byte-identical Jass (was: compiling the CRLF variant returns non-null).compilingTwiceEmitsIdenticalCode- recompiling the same source in one process must emit byte-identical Jass, across every generated shape rather than the handfulDeterministicCheckspins.Compilations drop from 684 to 408.
SmallCheckViaJUnitCoreTestNGfalls from 360.4s to 42.0s in isolation and 129.8s under full parallel load, and is no longer the suite's slowest class.Checks: full suite green locally, 1941 tests, 0 failures, 6m34s (was 7m17s on the base branch).
Stacked on #1294 -
compileAndReadJassusestestNamed, which is added there. Retarget to master once that merges.