Skip to content

fix(ci): run fork tests against Denim - #239

Merged
rayyan224 merged 1 commit into
mainfrom
fix/denim-fork-test-ci
Oct 9, 2026
Merged

rayyan224 merged 1 commit into
mainfrom
fix/denim-fork-test-ci

Conversation

@rayyan224

Copy link
Copy Markdown
Collaborator

Summary

  • Select Denim explicitly for both Anvil (BASE_UPGRADE) and Forge (FOUNDRY_BASE). The current base-std suite specifies Denim behavior, but the previous workflow used the Cobalt default.
  • Check out the exact base-anvil revision 98e7839c65f64aee9627b69a9b98b79afaeb1fae, matching base/base's current hardfork matrix, instead of cloning a moving branch and only warning when it differs from the configured SHA.
  • Record the selected hardfork and base/base, base-anvil, and base-std revisions in the job summary.
  • Parse Forge's final suite totals once and reuse them for the summary and PR comment. Preserve the test command's exit status, report incomplete/empty runs separately, and retain advisory behavior.

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

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

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.
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown

Interface Coverage

✅ All interface functions have test coverage.

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown

📊 Forge Coverage (src/lib/)

🟡 ≥95% across all metrics — some metrics below 99%.

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).

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown

✅ Fork tests: 784 passed, 0 failed, 14 skipped

The completed Denim suite passed. Skipped tests were not validated.

@rayyan224
rayyan224 merged commit 6a24933 into main Oct 9, 2026
10 checks passed
@rayyan224
rayyan224 deleted the fix/denim-fork-test-ci branch October 9, 2026 15:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant