From f8781c34151774e4854e47e89a0c2061d48a391d Mon Sep 17 00:00:00 2001 From: Deirdre Connolly Date: Mon, 27 Jan 2020 23:22:33 -0500 Subject: [PATCH] Refine Arbitrary impl for JoinSplitData

--- zebra-chain/src/proofs/groth16.rs | 1 - zebra-chain/src/transaction/joinsplit.rs | 16 ++++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/zebra-chain/src/proofs/groth16.rs b/zebra-chain/src/proofs/groth16.rs index ee6d213cc..724fea560 100644 --- a/zebra-chain/src/proofs/groth16.rs +++ b/zebra-chain/src/proofs/groth16.rs @@ -51,7 +51,6 @@ impl ZcashDeserialize for Groth16Proof { } } - #[cfg(test)] impl Arbitrary for Groth16Proof { type Parameters = (); diff --git a/zebra-chain/src/transaction/joinsplit.rs b/zebra-chain/src/transaction/joinsplit.rs index 008fd799a..562cf722d 100644 --- a/zebra-chain/src/transaction/joinsplit.rs +++ b/zebra-chain/src/transaction/joinsplit.rs @@ -4,7 +4,7 @@ use std::{ }; #[cfg(test)] -use proptest::{collection::vec, prelude::*}; +use proptest::{array, collection::vec, prelude::*}; #[cfg(test)] use proptest_derive::Arbitrary; @@ -93,22 +93,26 @@ impl JoinSplitData

{ } #[cfg(test)] -impl Arbitrary for JoinSplitData

{ +impl Arbitrary for JoinSplitData

{ type Parameters = (); fn arbitrary_with(_args: Self::Parameters) -> Self::Strategy { ( any::>(), - vec(any::>()), - vec(any::(), 32), + vec(any::>(), 0..10), + array::uniform32(any::()), vec(any::(), 64), ) - .prop_map(|first, rest, pub_key_bytes, sig_bytes| { + .prop_map(|(first, rest, pub_key_bytes, sig_bytes)| { return Self { first: first, rest: rest, pub_key: ed25519_zebra::PublicKeyBytes::from(pub_key_bytes), - sig: ed25519_zebra::Signature::from(sig_bytes), + sig: ed25519_zebra::Signature::from({ + let mut b = [0u8; 64]; + b.copy_from_slice(sig_bytes.as_slice()); + b + }), }; }) .boxed()