Start validators in parallel in multinode test (#727)

This commit is contained in:
pgarg66 2018-07-23 09:27:06 -07:00 committed by GitHub
parent c707b3d2e7
commit 166099b9d9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 5 deletions

20
tests/multinode.rs Normal file → Executable file
View File

@ -1,9 +1,11 @@
#[macro_use] #[macro_use]
extern crate log; extern crate log;
extern crate bincode; extern crate bincode;
extern crate rayon;
extern crate serde_json; extern crate serde_json;
extern crate solana; extern crate solana;
use rayon::prelude::*;
use solana::crdt::TestNode; use solana::crdt::TestNode;
use solana::crdt::{Crdt, NodeInfo}; use solana::crdt::{Crdt, NodeInfo};
use solana::entry_writer::EntryWriter; use solana::entry_writer::EntryWriter;
@ -389,16 +391,25 @@ fn test_multi_node_dynamic_network() {
send_tx_and_retry_get_balance(&leader_data, &alice, &bob_pubkey, Some(1000)).unwrap(); send_tx_and_retry_get_balance(&leader_data, &alice, &bob_pubkey, Some(1000)).unwrap();
assert_eq!(leader_balance, 1000); assert_eq!(leader_balance, 1000);
let validators: Vec<(NodeInfo, FullNode)> = (0..N) let keypairs: Vec<(KeyPair)> = (0..N)
.into_iter() .into_par_iter()
.map(|n| { .map(|n| {
let keypair = KeyPair::new(); let keypair = KeyPair::new();
let validator = TestNode::new_localhost_with_pubkey(keypair.pubkey());
let rd = validator.data.clone();
//send some tokens to the new validator //send some tokens to the new validator
let bal = let bal =
send_tx_and_retry_get_balance(&leader_data, &alice, &keypair.pubkey(), Some(500)); send_tx_and_retry_get_balance(&leader_data, &alice, &keypair.pubkey(), Some(500));
assert_eq!(bal, Some(500)); assert_eq!(bal, Some(500));
info!("sent balance to[{}/{}] {:x}", n, N, keypair.pubkey());
keypair
})
.collect();
let validators: Vec<(NodeInfo, FullNode)> = keypairs
.into_par_iter()
.map(|keypair| {
let validator = TestNode::new_localhost_with_pubkey(keypair.pubkey());
let rd = validator.data.clone();
info!("starting {:8x} {:x}", keypair.pubkey(), rd.debug_id());
let val = FullNode::new( let val = FullNode::new(
validator, validator,
false, false,
@ -406,7 +417,6 @@ fn test_multi_node_dynamic_network() {
Some(keypair), Some(keypair),
Some(leader_data.contact_info.ncp), Some(leader_data.contact_info.ncp),
); );
info!("started[{}/{}] {:x}", n, N, rd.debug_id());
(rd, val) (rd, val)
}) })
.collect(); .collect();