diff --git a/halo2_proofs/tests/serialization.rs b/halo2_proofs/tests/serialization.rs index 54e350d7d..96fbdddde 100644 --- a/halo2_proofs/tests/serialization.rs +++ b/halo2_proofs/tests/serialization.rs @@ -8,8 +8,7 @@ use halo2_debug::test_rng; use halo2_proofs::{ circuit::{Layouter, SimpleFloorPlanner, Value}, plonk::{ - create_proof, keygen_pk, keygen_vk_custom, pk_read, verify_proof, Advice, Circuit, Column, - ConstraintSystem, ErrorFront, Fixed, Instance, + create_proof, keygen_pk, keygen_vk_custom, pk_read, verify_proof, vk_read, Advice, Circuit, Column, ConstraintSystem, ErrorFront, Fixed, Instance }, poly::{ kzg::{ @@ -141,8 +140,29 @@ fn test_serialization() { let compress_selectors = true; let vk = keygen_vk_custom(¶ms, &circuit, compress_selectors) .expect("vk should not fail"); - let pk = keygen_pk(¶ms, vk, &circuit).expect("pk should not fail"); + let pk = keygen_pk(¶ms, vk.clone(), &circuit).expect("pk should not fail"); + // serialization test for vk + let f = File::create("serialization-test.vk").unwrap(); + let mut writer = BufWriter::new(f); + vk.write(&mut writer, SerdeFormat::RawBytes).unwrap(); + writer.flush().unwrap(); + + let f = File::open("serialization-test.vk").unwrap(); + let mut reader = BufReader::new(f); + #[allow(clippy::unit_arg)] + let vk = vk_read::( + &mut reader, + SerdeFormat::RawBytes, + k, + &circuit, + compress_selectors, + ) + .unwrap(); + + std::fs::remove_file("serialization-test.vk").unwrap(); + + // serialization test for pk let f = File::create("serialization-test.pk").unwrap(); let mut writer = BufWriter::new(f); pk.write(&mut writer, SerdeFormat::RawBytes).unwrap(); @@ -162,6 +182,7 @@ fn test_serialization() { std::fs::remove_file("serialization-test.pk").unwrap(); + // create & verify proof let instances: Vec>> = vec![vec![vec![circuit.0]]]; let mut transcript = Blake2bWrite::<_, _, Challenge255<_>>::init(vec![]); create_proof::< @@ -193,7 +214,7 @@ fn test_serialization() { SingleStrategy, >( &verifier_params, - pk.get_vk(), + &vk, // pk.get_vk() strategy, instances.as_slice(), &mut transcript