test(app): add smoke test#541
Conversation
|
@claude review this PR |
|
Claude finished @iamquang95's task in 4m 29s —— View job Claude PR Review — test(app): add smoke testI reviewed the full diff ( What's solid
Observations / minor
None of these are blockers. Nice work — the deviation comments in particular make this easy to audit against upstream. |
|
First, clone this branch and go to The 4 pluto scenarios vary two independent things — who generates keys vs who runs the cluster — plus DKG-vs-trusted-dealer:
What each one actually proves
It also covers the charon→pluto artifact direction (charon does keygen here), so the two artifact directions together are covered by mixed + keygen_create. This is the only scenario that proves pluto and charon can actually run a validator together.
Gaps worth knowing
|
varex83
left a comment
There was a problem hiding this comment.
I approve, but I have one concert regarding maintainability, so the code is essentially copy of go implementation + support for pluto. So I see no reason of having this code in pluto repository, it would be much more reasonable to implement that part in Rust OR in charon repository. Wdyt? cc @emlautarom1
emlautarom1
left a comment
There was a problem hiding this comment.
First, @iamquang95 could you merge the latest changes in main into this branch? The compose run command fails because this branch is still missing the main workflow run:
pluto/crates/cli/src/commands/run.rs
Line 929 in b42647e
@varex83 As for your concern, I agree that it does not make sense to have this in Go: it introduces friction for developers (additional toolchain) and CI, with higher maintenance cost long term.
Nevertheless, since this code is for E2E testing we can keep it as is to not block progress and eventually we can port it. Also, since it's essentially the same Charon code we have high confidence that the tests are correct (if we were to port them we could introduce new bugs)
|
Also, if we want, I can convert the smoke test to rust. Or we can delay the conversion later |
Add docker-compose smoke tests (charon parity + pluto/charon node mixing)
Ports charon v1.7.1's testutil/compose smoke-test framework to test-infra/compose, adding a per-node implementation axis so clusters can mix charon and pluto nodes. Each scenario builds a real cluster (keygen → run with simnet mocks → 60s under Prometheus alert gating); any firing alert fails the test.
Scenarios cover charon's full matrix plus pluto variants (all_pluto, mixed_2_charon_2_pluto, pluto_dkg, gated behind -pluto-run). all_pluto passes against feat/simnet-run: 4 nodes reach QBFT consensus, threshold-sign, and broadcast duties with zero errors/warnings.
Deviations from charon (each commented):
Run: PLUTO_REPO= go test ./smoke -v -integration [-pluto-run]