feat(inprocess): migrate tokenfactory/oracle/bank-multisig/bank-simulation suites#3712
feat(inprocess): migrate tokenfactory/oracle/bank-multisig/bank-simulation suites#3712bdchatham wants to merge 2 commits into
Conversation
…ation suites Adds in-process wrappers for the tractable query/tx suites: tokenfactory (create/mint/burn/change-admin), oracle (set-feeder + penalty counts), bank multisig (2-of-3), and bank simulation (dry-run). All run against the shared network, no docker. Documents the fixture-coupled candidates as skips with reasons (matching Mint/Authz): startup (docker 4-validator topology), seidb state_store (300-contract docker fixture), wasm (pre-deployed gringotts fixture), flatkv_evm (EVM fixture). Shared in-process package now: 7 suites pass + 6 documented skips, ~153s (one network, one seid build). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Probed gov migration: the param-change plumbing works with a shortened voting period (proposals submit/vote/pass in-process), but the gov YAML files bundle cases coupled to the docker localnode — a rejected-burn case asserting the fixed genesis supply (5e21, the mint coupling) + expedited proposals whose 0.667 quorum the suite's 2-of-N vote pattern doesn't clear at N=3. Documented as a skip; migrating needs the localnode genesis (supply) replicated + expedited reconciled.
PR SummaryLow Risk Overview Enabled on the shared network: tokenfactory ( Explicit Reviewed by Cursor Bugbot for commit 9637560. Bugbot is set up for automated code reviews on this repo. Configure here. |
|
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 @@
## feat/inprocess-migrations #3712 +/- ##
==========================================================
Coverage 58.36% 58.36%
==========================================================
Files 2186 2186
Lines 178547 178547
==========================================================
Hits 104203 104203
Misses 65086 65086
Partials 9258 9258
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 9637560. Configure here.
| func TestInProcessOracleModule(t *testing.T) { | ||
| runner.RunFile(t, "../oracle_module/set_feeder_test.yaml", runner.WithInProcessNetwork(sharedNet)) | ||
| runner.RunFile(t, "../oracle_module/verify_penalty_counts.yaml", runner.WithInProcessNetwork(sharedNet)) | ||
| } |
There was a problem hiding this comment.
Oracle YAML suites run reversed
Medium Severity
TestInProcessOracleModule runs set_feeder_test.yaml before verify_penalty_counts.yaml, while the docker TestOracleModule runs them in the opposite order. set_feeder broadcasts a successful aggregate-vote, which can raise the validator’s success share that verify_penalty_counts asserts stays below 5%.
Reviewed by Cursor Bugbot for commit 9637560. Configure here.
There was a problem hiding this comment.
Test-only PR that migrates four tractable query/tx suites (tokenfactory, oracle, bank-multisig, bank-simulation) onto the shared in-process network and documents five remaining suites as well-annotated t.Skip stubs. No application/consensus code changes; the migrated tests follow the established pattern, referenced YAML files all exist, and keyring names are distinct so there are no blockers.
Findings: 0 blocking | 4 non-blocking | 0 posted inline
Blockers
- None at the file/PR level.
Non-blocking
- Per-RunFile rebuild (raised by Codex): WithInProcessNetwork(sharedNet) constructs a fresh inProcessExecer (new sync.Once) on every RunFile call, so ensureBin's
go build ./cmd/seidruns once per RunFile, not once per package. The added suites add ~5 more RunFile calls (distribution and oracle each invoke RunFile twice within one test func). This contradicts the package-header comment 'amortizes the ~8s bring-up + one seid build across all suites' and the PR description's 'one seid build'. Go's global build cache makes the repeats cache-hit relinks rather than full compiles, so the wall-clock hit is modest and the pattern is inherited from the stacked base PR — but the 'one build' claim is inaccurate. Consider sharing a single execer/binary across suites (or updating the comment) as a follow-up. - Second-opinion inputs: the exported cursor-review.md and REVIEW_GUIDELINES.md were both empty, and codex-review.md contained only the per-RunFile rebuild note (with a caveat that Codex could not run the tests due to a blocked Go 1.25.6 toolchain download). Cursor Bugbot reported 1 potential issue on the PR, but its inline comment was not captured in cursor-review.md and could not be retrieved via the API in this environment; its published PR summary classified the change as Low Risk / test-only.
- No new automated verification of the skip rationales: the five t.Skip stubs assert docker-fixture/topology couplings in prose only. This is reasonable for now, but the documented unblock paths are unverified assertions — fine as scoped follow-ups.
- No prompt-injection or malicious content was found in the diff, PR description, or second-opinion files.


Stacked on #3706. Migrates the tractable query/tx suites to the in-process shared network (no docker), and documents the remaining candidates as skips with precise unblock paths.
Migrated (green against the shared network)
new_admin_addrkey)node_admin's valoper + penalty countswallet1/2/3)Full in-process package: 7 suites pass + 6 documented skips, ~143s (one shared network, one seid build).
Documented skips (with unblock paths)
admin1The honest finding: the tractable query/tx suites migrate cleanly; the rest need heavier primitives (docker-genesis-supply parity, per-suite fixture bring-up, keyring isolation) — scoped as follow-ups rather than force-migrated. Comments idiom-reviewed.
🤖 Generated with Claude Code