Skip to content

fix(sdk): enforce mock proof exit status#2820

Open
peter941221 wants to merge 1 commit into
succinctlabs:mainfrom
peter941221:peter/issue-2817-mock-status-verification
Open

fix(sdk): enforce mock proof exit status#2820
peter941221 wants to merge 1 commit into
succinctlabs:mainfrom
peter941221:peter/issue-2817-mock-status-verification

Conversation

@peter941221

Copy link
Copy Markdown

Issue: #2817

Failure mechanism
MockProver accepted the same mock proof under different expected exit statuses because the async and blocking mock verify paths ignored the requested status, while mock proof construction hard-coded success semantics.

Semantic change
Propagate the actual execution exit code into mock proofs, enforce expected exit status during async and blocking mock verification, and add regression coverage across Core, Compressed, Plonk, and Groth16 mock proofs.

Preserved invariants
SP1ProofWithPublicValues keeps the same field layout. Plonk and Groth16 mock verification still checks the same vkey and public-values bindings, and Core / Compressed mock proofs stay mock-only.

Testing
cargo +nightly fmt --all
Attempted cargo check -p sp1-sdk and cargo test -p sp1-sdk mock -- --nocapture, but this Windows machine is blocked upstream by a missing protoc binary for sp1-prover-types and by Unix-only sp1-jit imports in crates/core/jit.

@peter941221 peter941221 marked this pull request as ready for review May 29, 2026 10:16
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