From a3ef9231a64fc089843d338b7febf2161a289b96 Mon Sep 17 00:00:00 2001 From: Grant Wuerker Date: Mon, 7 Jan 2019 21:37:30 -0600 Subject: [PATCH] inductor tests use deposit::random_for_test --- beacon_chain/types/src/deposit.rs | 23 ------------------- .../validator_induction/src/inductor.rs | 21 +++++++++++++---- 2 files changed, 16 insertions(+), 28 deletions(-) diff --git a/beacon_chain/types/src/deposit.rs b/beacon_chain/types/src/deposit.rs index eb26e2b10..27b8a66cc 100644 --- a/beacon_chain/types/src/deposit.rs +++ b/beacon_chain/types/src/deposit.rs @@ -11,29 +11,6 @@ pub struct Deposit { pub deposit_data: DepositData, } -impl Deposit { - pub fn zero_with_rand_keypair() -> Self{ - let kp = Keypair::random(); - let deposit_input = DepositInput { - pubkey: kp.pk.clone(), - withdrawal_credentials: Hash256::zero(), - randao_commitment: Hash256::zero(), - poc_commitment: Hash256::zero(), - proof_of_possession: create_proof_of_possession(&kp) - }; - let deposit_data = DepositData { - deposit_input: deposit_input, - value: 0, - timestamp: 0 - }; - Self { - merkle_branch: Vec::new(), - merkle_tree_index: 0, - deposit_data: deposit_data - } - } -} - impl Encodable for Deposit { fn ssz_append(&self, s: &mut SszStream) { s.append_vec(&self.merkle_branch); diff --git a/beacon_chain/validator_induction/src/inductor.rs b/beacon_chain/validator_induction/src/inductor.rs index 2f69f6f01..159986666 100644 --- a/beacon_chain/validator_induction/src/inductor.rs +++ b/beacon_chain/validator_induction/src/inductor.rs @@ -81,12 +81,23 @@ fn min_empty_validator_index( #[cfg(test)] mod tests { use super::*; + use types::test_utils::{SeedableRng, TestRandom, XorShiftRng}; use bls::{create_proof_of_possession, Keypair}; /// The size of a validators deposit in GWei. pub const DEPOSIT_GWEI: u64 = 32_000_000_000; + fn get_deposit() -> Deposit { + let mut rng = XorShiftRng::from_seed([42; 16]); + let mut deposit = Deposit::random_for_test(&mut rng); + + let kp = Keypair::random(); + deposit.deposit_data.deposit_input.pubkey = kp.pk.clone(); + deposit.deposit_data.deposit_input.proof_of_possession = create_proof_of_possession(&kp); + deposit + } + fn deposit_equals_record(dep: &Deposit, val: &ValidatorRecord) -> bool { (dep.deposit_data.deposit_input.pubkey == val.pubkey) & (dep.deposit_data.deposit_input.withdrawal_credentials == val.withdrawal_credentials) @@ -97,7 +108,7 @@ mod tests { #[test] fn test_process_deposit_valid_empty_validators() { let mut state = BeaconState::default(); - let mut deposit = Deposit::zero_with_rand_keypair(); + let mut deposit = get_deposit(); let spec = ChainSpec::foundation(); deposit.deposit_data.value = DEPOSIT_GWEI; @@ -115,7 +126,7 @@ mod tests { let spec = ChainSpec::foundation(); for i in 0..5 { - let mut deposit = Deposit::zero_with_rand_keypair(); + let mut deposit = get_deposit(); let result = process_deposit(&mut state, &deposit, &spec); deposit.deposit_data.value = DEPOSIT_GWEI; assert_eq!(result.unwrap(), i); @@ -130,7 +141,7 @@ mod tests { let mut state = BeaconState::default(); let spec = ChainSpec::foundation(); - let mut deposit = Deposit::zero_with_rand_keypair(); + let mut deposit = get_deposit(); let mut validator = ValidatorRecord::zero_with_rand_keypair(); deposit.deposit_data.value = DEPOSIT_GWEI; validator.pubkey = deposit.deposit_data.deposit_input.pubkey.clone(); @@ -158,7 +169,7 @@ mod tests { state.validator_registry.push(validator); state.validator_balances.push(0); - let mut deposit = Deposit::zero_with_rand_keypair(); + let mut deposit = get_deposit(); deposit.deposit_data.value = DEPOSIT_GWEI; state.slot = spec.zero_balance_validator_ttl; @@ -174,7 +185,7 @@ mod tests { #[test] fn test_process_deposit_invalid_proof_of_possession() { let mut state = BeaconState::default(); - let mut deposit = Deposit::zero_with_rand_keypair(); + let mut deposit = get_deposit(); let spec = ChainSpec::foundation(); deposit.deposit_data.value = DEPOSIT_GWEI; deposit.deposit_data.deposit_input.proof_of_possession = create_proof_of_possession(&Keypair::random());