Conversation
The fuzzing matrix only runs legacy codegen, leaving Venom's numeric clamps without the existing boundary-value coverage. Run every fuzzing shard with both backends while retaining the shared success gate and separate coverage artifacts. Adapt conversion rejection tests to Venom's stronger constant analysis. Literal conversions must still fail compilation, whether constant folding or SCCP detects the failure. For the constant-local runtime case, retain the assertion in bytecode by disabling static exceptions. The calldata-input case continues to use ordinary compiler settings.
This was referenced Sep 16, 2026
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.
What I did
Addresses the fuzzing-lane portion of #5116. Run the existing 120 fuzzing shards on both legacy and Venom codegen, with distinct job names and coverage artifacts.
Merge prerequisite: #5126. Enabling the lane exposes the existing negative integer-to-decimal clamp defect from #5110. For example, converting
-18707220957835557353007165858768422651596to decimal incorrectly succeeds on current master. The tests remain strict; this PR does not skip those failures. Kept as a draft until the compiler fix lands.How I did it
The workflow matrix adds the backend dimension and passes
--experimental-codegento the Venom shards. The existing success gate covers both backends. This doubles the fuzzing matrix from 120 to 240 jobs.Adjust the conversion harness for Venom's stronger constant analysis: a literal conversion can be rejected by either constant folding or SCCP. The constant-local runtime case uses
disable_static_exceptions=Trueso the failing assertion stays in bytecode and the test still requires a runtime revert. The calldata-input case keeps ordinary compiler settings.How to verify it
make lintandgit diff --checkpass. YAML validation confirms 240 backend/shard combinations, the Venom flag and the shared success gate.The complete conversion matrices above and one CI-style shard were run locally; all 240 remote shards have not been run. This draft does not claim a green full Venom fuzzing matrix on unmodified master.
Commit message
Description for the changelog
Run the fuzzing CI matrix with both codegen backends and retain runtime conversion-clamp coverage under Venom.