Skip to content

Commit 52216fa

Browse files
committed
Add test verifying zkapps
1 parent d598a18 commit 52216fa

File tree

3 files changed

+35
-15
lines changed

3 files changed

+35
-15
lines changed

ledger/src/proofs/transaction.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4181,7 +4181,7 @@ mod tests_with_wasm {
41814181
}
41824182

41834183
#[cfg(test)]
4184-
mod tests {
4184+
pub(super) mod tests {
41854185
use std::path::Path;
41864186

41874187
use mina_p2p_messages::binprot::{
@@ -4215,7 +4215,7 @@ mod tests {
42154215
PerformJob(mina_p2p_messages::v2::SnarkWorkerWorkerRpcsVersionedGetWorkV2TResponse),
42164216
}
42174217

4218-
fn panic_in_ci() {
4218+
pub fn panic_in_ci() {
42194219
fn is_ci() -> bool {
42204220
std::env::var("CI").is_ok()
42214221
}

ledger/src/proofs/util.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,7 @@ pub fn proof_evaluation_to_absorption_sequence<F: FieldWitness>(
287287
.filter_map(|v| v.as_ref()),
288288
);
289289

290+
#[allow(clippy::iter_cloned_collect)]
290291
list.iter().cloned().collect()
291292
}
292293

ledger/src/proofs/verification.rs

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -760,6 +760,7 @@ pub fn verify_zkapp(
760760

761761
eprintln!("verify_zkapp OK={:?}", ok);
762762

763+
#[cfg(not(test))]
763764
if !ok {
764765
if let Err(e) = dump_zkapp_verification(verification_key, zkapp_statement, sideloaded_proof)
765766
{
@@ -868,9 +869,13 @@ fn generate_new_filename(name: &str, extension: &str, data: &[u8]) -> std::io::R
868869

869870
#[cfg(test)]
870871
mod tests {
872+
use std::path::Path;
873+
871874
use mina_hasher::Fp;
872875
use mina_p2p_messages::{binprot::BinProtRead, v2};
873876

877+
use crate::proofs::{provers::devnet_circuit_directory, transaction::tests::panic_in_ci};
878+
874879
use super::*;
875880

876881
#[cfg(target_family = "wasm")]
@@ -888,22 +893,36 @@ mod tests {
888893
proof: v2::PicklesProofProofsVerified2ReprStableV2,
889894
}
890895

891-
let Ok(file) = std::fs::read("/tmp/verify_zapp_4af39d1e141859c964fe32b4e80537d3bd8c32d75e2754c0b869738006d25251_0.binprot") else {
892-
eprintln!("not found");
893-
return;
894-
};
896+
let base_dir = Path::new(env!("CARGO_MANIFEST_DIR"))
897+
.join(devnet_circuit_directory())
898+
.join("tests");
899+
900+
let cases = [
901+
"verify_zapp_4af39d1e141859c964fe32b4e80537d3bd8c32d75e2754c0b869738006d25251_0.binprot",
902+
"verify_zapp_dc518dc7e0859ea6ffa0cd42637cdcc9c79ab369dfb7ff44c8a89b1219f98728_0.binprot",
903+
"verify_zapp_9db7255327f342f75d27b5c0f646988ee68c6338f6e26c4dc549675f811b4152_0.binprot",
904+
"verify_zapp_f2bbc8088654c09314a58c96428f6828d3ee8096b6f34e3a027ad9b028ae22e0_0.binprot",
905+
];
906+
907+
for filename in cases {
908+
let Ok(file) = std::fs::read(base_dir.join(filename)) else {
909+
panic_in_ci();
910+
return;
911+
};
895912

896-
let VerifyZkapp {
897-
vk,
898-
zkapp_statement,
899-
proof,
900-
} = VerifyZkapp::binprot_read(&mut file.as_slice()).unwrap();
913+
let VerifyZkapp {
914+
vk,
915+
zkapp_statement,
916+
proof,
917+
} = VerifyZkapp::binprot_read(&mut file.as_slice()).unwrap();
901918

902-
let vk = (&vk).try_into().unwrap();
903-
let zkapp_statement = (&zkapp_statement).try_into().unwrap();
904-
let srs = crate::verifier::get_srs::<Fp>();
919+
let vk = (&vk).try_into().unwrap();
920+
let zkapp_statement = (&zkapp_statement).try_into().unwrap();
921+
let srs = crate::verifier::get_srs::<Fp>();
905922

906-
verify_zkapp(&vk, &zkapp_statement, &proof, &*srs);
923+
let ok = verify_zkapp(&vk, &zkapp_statement, &proof, &srs);
924+
assert!(ok);
925+
}
907926
}
908927

909928
// #[test]

0 commit comments

Comments
 (0)