Remove all IBC code in test scope - #3882
Conversation
Now that in and outbound IBC is disabled, releave CI of running test-scope code. This is a simple straightforward change with low risk that has real QoL improvement in terms of maintaining the codebase.
|
The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3882 +/- ##
==========================================
- Coverage 61.61% 60.75% -0.87%
==========================================
Files 2348 2254 -94
Lines 200842 190346 -10496
==========================================
- Hits 123751 115646 -8105
+ Misses 66033 64479 -1554
+ Partials 11058 10221 -837
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
PR SummaryLow Risk Overview Removes the ICS-20 transfer test suite ( Reviewed by Cursor Bugbot for commit 3877377. Bugbot is set up for automated code reviews on this repo. Configure here. |
There was a problem hiding this comment.
This PR deletes every test under sei-ibc-go (~39.4k lines) while leaving 194 production Go files that are still compiled into the binary and still executed on hot paths — the CheckTx ante handler and the live IBC EVM precompile — so consensus- and mempool-critical code is left with zero regression coverage. No build breakage or dangling build/CI references were found, and the change is otherwise clean and mechanical.
Findings: 2 blocking | 7 non-blocking | 0 posted inline
Blockers
- Removal of regression tests for still-live consensus/mempool code. (Shared with Codex's P1.) There is no code-level IBC kill switch in this repo — IBC is disabled operationally, so the code still runs:
app/ante/cosmos_checktx.go:639-679invokesibcKeeper.RecvPacket/Acknowledgement/Timeout/TimeoutOnClose/UpdateClienton every CheckTx, andprecompiles/setup.go:64,121,161registers the IBC precompile at a live EVM address routing intomodules/apps/transfer. The deleted04-channel/keeper/packet_test.go,04-channel/keeper/timeout_test.go,02-client/keeper/client_test.go, andapps/transfer/keeper/relay_test.goare precisely the tests for those paths. 194 non-generated production files are left with zero tests. If the goal is CI time, exclude these packages from the shard list (or gate them behind a build tag) rather than deleting them — that keeps the harness compiling and restorable when IBC is re-enabled. - The Cursor second-opinion pass produced no output —
cursor-review.mdis empty. Only Codex's review was available to merge into this one.
Non-blocking
- The retained
precompiles/ibc/ibc_test.goonly uses mock transfer keepers (MockTransferKeeper,MockMemoTransferKeeper,MockFailedTransferTransferKeeper), so it does not backstop the deleted coverage: after this PR the real transfer keeper's escrow/unescrow accounting, denom-trace handling, and timeout/ack-error refunds are exercised by nothing in the tree. - Stale load-bearing doc comment:
sei-cosmos/server/config/config_fuzz_test.go:502citessei-ibc-go/testing/simapp/simd/cmd/root.go:273-274as the fourth[state-sync]call site. This PR deletes that file, so the characterization comment is now wrong.AGENTS.mdtreats these configtest comments as load-bearing, so please update it in this PR. - codecov: the
sei-chainflag has a hardtarget: 40%(notinformational), andsei-ibc-go/**is not in theignore:list, so those 194 production files stay in the coverage denominator at ~0%. Consider addingsei-ibc-go/**tocodecov.ymlignorein the same PR so the status doesn't flip for unrelated reasons. - Scope is wider than the title suggests: besides
_test.gofiles, the PR removes the entiresei-ibc-go/testingpackage (ordinary compiled Go, includingsimappand thesimdcommand), plussei-ibc-go/README.mdandsei-ibc-go/.gitignore. I confirmed nothing imports them, but the description should say so — and the README was the vendored fork's only upstream-provenance doc. - "All IBC code in test scope" isn't complete:
sei-wasmd/x/wasm/{ibc,ibc_reflect,relay,relay_pingpong}_test.goandsei-wasmd/x/wasm/keeper/ibc_test.gostill run full IBC client/connection/channel handshakes and packet relay againstsei-ibc-gocore viasei-wasmd/x/wasm/ibctesting/. That's welcome residual coverage, but it means the CI-time saving is partial andsei-wasmd/x/wasm/ibctestingsilently becomes the only maintained IBC harness — worth stating in the PR description. - Note on verification limits: the sandbox denied
go build ./...andgo test, and the shallow clone has no base commit, so compile-cleanliness here is inferred from import-graph greps rather than an actual build. CI should confirm. - No prompt-injection content found in the PR title, body, or inspected files.
Blocker is valid but ibc is going to be completely removed from the code so no point keeping the verification tests anymore.
Now that in and outbound IBC is disabled, releave CI of running test-scope code. This is a simple straightforward change with low risk that has real QoL improvement in terms of maintaining the codebase.