refactor(test-suite): replace fhevm bash cli with lean Bun TS#2134
refactor(test-suite): replace fhevm bash cli with lean Bun TS#2134mergify[bot] merged 46 commits intomainfrom
Conversation
Changed Lines CoverageCoverage of added/modified lines: N/A Per-file breakdownDiff CoverageDiff: origin/main...HEAD, staged and unstaged changesNo lines with coverage information in this diff. |
Eikix
left a comment
There was a problem hiding this comment.
[AUTOMATED]
Code Review Summary
Reviewed for bugs, guideline compliance, and error handling across all 39 changed files.
Findings
| Category | Count | Severity |
|---|---|---|
| Bug | 1 | High — CI correctness |
| Naming (guideline) | 3 | Nit |
| Error handling | 3 | Medium |
The BUILD env var issue in the e2e workflow is the most impactful finding — it causes unnecessary image rebuilds in the orchestrated CI path. The naming and error handling items are non-blocking improvement suggestions.
Overall the PR is well-structured: the compose path migration is consistent, the CI consolidation is clean, and the documentation is thorough.
9dd6023 to
a2e4ba6
Compare
Eikix
left a comment
There was a problem hiding this comment.
[AUTOMATED]
Code Review
Reviewed for bugs, security issues, guideline compliance, and error handling.
Result: 1 issue found (error handling). No bugs or security issues detected.
The CLI is well-structured with thorough input validation, proper async/await patterns, correct shell escaping for sh -lc commands, and a solid typed error hierarchy. The 15-step boot pipeline, state persistence, and resume logic all look correct.
|
Mob review comment: print each version of the stack at start |
0ef5228 to
20a6625
Compare
Eikix
left a comment
There was a problem hiding this comment.
[AUTOMATED]
Code Review
Reviewed for bugs (2 independent passes), guideline compliance, and error handling.
Bugs: None found. Shell commands use Bun.spawn with argv arrays (no shell injection). SQL uses validated numeric chain IDs and sqlLiteral() escaping. State writes use atomic tmp+rename. Async/await patterns are correct.
Guideline issues: 4 naming nits (abbreviations vs CLAUDE.md naming convention).
Error handling: 3 observability gaps in teardown, cache validation, and container probe paths.
Overall this is solid, well-structured code. No blocking issues.
tawadaa
left a comment
There was a problem hiding this comment.
LGTM, excellent work, thanks!
Eikix
left a comment
There was a problem hiding this comment.
[AUTOMATED]
Code Review — PR #2134
Reviewed for bugs, guideline compliance, and error handling.
Summary
- 1 bug in multi-chain resume logic (phantom container names cause unnecessary re-runs)
- 1 guideline note about the multi-pass env interpolation engine
- 4 error handling issues where silent
.catch(() => undefined)or barecatch {}swallow diagnostics
Overall this is a strong, well-structured rewrite. The issues below are all fixable without major refactoring.
|
@Mergifyio queue |
|
@Mergifyio refresh |
☑️ Command
|
✅ Pull request refreshed |
|
@Mergifyio dequeue |
|
@Mergifyio queue |
1 similar comment
|
@Mergifyio queue |
☑️ Command
|
Merge Queue Status
Required conditions to enter a queue
|
|
@Mergifyio queue |
☑️ Command
|
|
@Mergifyio refresh |
✅ Pull request refreshed |
|
@Mergifyio refresh |
✅ Pull request refreshed |
Merge Queue Status
This pull request spent 2 hours 15 minutes 54 seconds in the queue, including 1 hour 14 minutes 48 seconds running CI. Required conditions to merge
|
Closes https://github.com/zama-ai/fhevm-internal/issues/1042
Supersedes #2066.
#2066keeps the iteration history and design exploration. This PR is the same final direction with a clean atomic history for review.Summary
Replace the legacy
test-suite/fhevm/fhevm-clibash flow with a lean Bun/TypeScript CLI.The new CLI makes target resolution, runtime generation, scenarios, local overrides, resume, upgrade, and test execution explicit instead of spreading that behavior across bash scripts and CI glue.
What changed
test-suite/fhevm/srcdocker-compose/templates/static/profiles/scenarios/.fhevm/with a hard split between:.fhevm/state.fhevm/runtimelatest-supportedlatest-mainsha --sha <git-sha>devnettestnetmainnetdeployas an alias forupdoctorwithup --dry-runCI contract
latest-main --buildwith the checked-intwo-of-twoscenario./fhevm-cli test lightsuite instead of copying those steps in YAMLbuild=falsebun run checkbun test srcValidation
Verified locally on this branch:
cd test-suite/fhevm && bun run checkcd test-suite/fhevm && bun test srcNotes
latest-supportedis now a tracked maintained profilelatest-mainis the moving baseline for local and PR validationtwo-of-twois the canonical checked-in multicopro scenario preset