Repository navigation
fix(ci): run fork tests against Denim - #239
Merged
Merged
Conversation
Select Denim in both Anvil and Forge so the current specification suite does not execute against the Cobalt default. Check out the exact base-anvil revision used by base/base and record dependency SHAs. Read Forge final suite totals once for both reports, preserve the test pipeline exit status, and report incomplete runs without treating them as successful. Keep the fork check advisory.
rayyan224
requested review from
amiecorso,
eric-ships and
ilikesymmetry
as code owners
October 9, 2026 14:55
Interface Coverage✅ All interface functions have test coverage. |
📊 Forge Coverage (
|
| File | Lines | Stmts | Branches | Funcs |
|---|---|---|---|---|
| 🟡 B20FactoryLib.sol | 97.70% | 98.00% | 100.00% | 95.00% |
| 🔴 test/lib/ForceFeeder.sol | 0.00% | 0.00% | 100.00% | 0.00% |
| 🔴 test/lib/PrecompileProbe.sol | 0.00% | 0.00% | 0.00% | 0.00% |
| 🟢 MockActivationRegistry.sol | 100.00% | 100.00% | 100.00% | 100.00% |
| 🟢 MockActivationRegistryStorage.sol | 100.00% | 100.00% | 100.00% | 100.00% |
| 🟢 MockB20.sol | 100.00% | 99.68% | 100.00% | 100.00% |
| 🟢 MockB20Asset.sol | 100.00% | 100.00% | 100.00% | 100.00% |
| 🟡 MockB20Factory.sol | 98.96% | 99.10% | 100.00% | 100.00% |
| 🟢 MockB20Stablecoin.sol | 100.00% | 100.00% | 100.00% | 100.00% |
| 🟢 MockB20Storage.sol | 100.00% | 100.00% | 100.00% | 100.00% |
| 🟡 MockPolicyRegistry.sol | 100.00% | 99.58% | 97.78% | 100.00% |
| 🟢 MockPolicyRegistryStorage.sol | 100.00% | 100.00% | 100.00% | 100.00% |
| Total | 97.12% | 97.50% | 98.21% | 97.03% |
Full report: download artifact. To browse locally: make coverage (runs forge coverage + genhtml + opens the HTML report).
✅ Fork tests: 784 passed, 0 failed, 14 skippedThe completed Denim suite passed. Skipped tests were not validated. |
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.
Summary
BASE_UPGRADE) and Forge (FOUNDRY_BASE). The current base-std suite specifies Denim behavior, but the previous workflow used the Cobalt default.98e7839c65f64aee9627b69a9b98b79afaeb1fae, matching base/base's current hardfork matrix, instead of cloning a moving branch and only warning when it differs from the configured SHA.Context
Investigated the fork-test failures on #238. Its run selected the default Cobalt upgrade while executing tests for Denim's transfer-executor enforcement, token-recipient rejection, and inverted policy IDs. Forge reported 754 passed, 40 failed, and 14 skipped; the PR comment incorrectly reported 80 failures because it counted both suite output and Forge's repeated failure summary.
base/base selects hardforks explicitly in its matrix. This PR aligns the base-std workflow with that configuration; it does not change the Rust implementations, Solidity interfaces, or mocks.
Test plan
base upgrade: denimand no test failures.BaseTime real-predeploy installation validation remains out of scope; the tests in #238 can use a mock when the address has no code.
Generated with Toshi