From 5a7b99ecc2ba240e986c85a7380a6e3a7ea9ade7 Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Tue, 26 Feb 2019 19:19:34 -0800 Subject: [PATCH] Add/employ create_new_tmp_ledger!() --- ledger-tool/tests/basic.rs | 6 ++++-- src/blocktree.rs | 7 +++++++ src/blocktree_processor.rs | 9 +++------ src/fullnode.rs | 5 ++--- src/replay_stage.rs | 4 +--- src/storage_stage.rs | 6 ++---- tests/multinode.rs | 32 +++++++++++--------------------- 7 files changed, 30 insertions(+), 39 deletions(-) diff --git a/ledger-tool/tests/basic.rs b/ledger-tool/tests/basic.rs index 6a804e442c..6f57d49b94 100644 --- a/ledger-tool/tests/basic.rs +++ b/ledger-tool/tests/basic.rs @@ -1,3 +1,6 @@ +#[macro_use] +extern crate solana; + use assert_cmd::prelude::*; use solana::blocktree::create_new_tmp_ledger; use solana_sdk::genesis_block::GenesisBlock; @@ -35,8 +38,7 @@ fn nominal() { let (genesis_block, _mint_keypair) = GenesisBlock::new_with_leader(100, keypair.pubkey(), 50); let ticks_per_slot = genesis_block.ticks_per_slot; - let (ledger_path, _last_id) = - create_new_tmp_ledger("test_ledger_tool_nominal", &genesis_block).unwrap(); + let (ledger_path, _last_id) = create_new_tmp_ledger!(&genesis_block).unwrap(); let ticks = ticks_per_slot as usize; // Basic validation diff --git a/src/blocktree.rs b/src/blocktree.rs index e819f6c00d..11fb72730f 100644 --- a/src/blocktree.rs +++ b/src/blocktree.rs @@ -1303,6 +1303,13 @@ pub fn get_tmp_ledger_path(name: &str) -> String { path } +#[macro_export] +macro_rules! create_new_tmp_ledger { + ($genesis_block:expr) => { + create_new_tmp_ledger(tmp_ledger_name!(), $genesis_block) + }; +} + // Same as `create_new_ledger()` but use a temporary ledger name based on the provided `name` // // Note: like `create_new_ledger` the returned ledger will have slot 0 full of ticks (and only diff --git a/src/blocktree_processor.rs b/src/blocktree_processor.rs index a8b7e7d9a2..e3bce50113 100644 --- a/src/blocktree_processor.rs +++ b/src/blocktree_processor.rs @@ -270,8 +270,7 @@ mod tests { */ // Create a new ledger with slot 0 full of ticks - let (ledger_path, mut last_id) = - create_new_tmp_ledger("blocktree_with_two_forks", &genesis_block).unwrap(); + let (ledger_path, mut last_id) = create_new_tmp_ledger!(&genesis_block).unwrap(); debug!("ledger_path: {:?}", ledger_path); let blocktree = Blocktree::open_config(&ledger_path, ticks_per_slot) @@ -320,8 +319,7 @@ mod tests { let ticks_per_slot = genesis_block.ticks_per_slot; // Create a new ledger with slot 0 full of ticks - let (ledger_path, last_id) = - create_new_tmp_ledger("blocktree_with_two_forks", &genesis_block).unwrap(); + let (ledger_path, last_id) = create_new_tmp_ledger!(&genesis_block).unwrap(); debug!("ledger_path: {:?}", ledger_path); let mut last_entry_id = last_id; @@ -447,8 +445,7 @@ mod tests { fn test_process_ledger_simple() { let leader_pubkey = Keypair::new().pubkey(); let (genesis_block, mint_keypair) = GenesisBlock::new_with_leader(100, leader_pubkey, 50); - let (ledger_path, last_id) = - create_new_tmp_ledger("process_ledger_simple", &genesis_block).unwrap(); + let (ledger_path, last_id) = create_new_tmp_ledger!(&genesis_block).unwrap(); debug!("ledger_path: {:?}", ledger_path); let mut entries = vec![]; diff --git a/src/fullnode.rs b/src/fullnode.rs index 11f8591a8a..0f4e2f7d7a 100644 --- a/src/fullnode.rs +++ b/src/fullnode.rs @@ -501,8 +501,7 @@ mod tests { let validator_node = Node::new_localhost_with_pubkey(validator_keypair.pubkey()); let (genesis_block, _mint_keypair) = GenesisBlock::new_with_leader(10_000, leader_keypair.pubkey(), 1000); - let (validator_ledger_path, _last_id) = - create_new_tmp_ledger("validator_exit", &genesis_block).unwrap(); + let (validator_ledger_path, _last_id) = create_new_tmp_ledger!(&genesis_block).unwrap(); let validator = Fullnode::new( validator_node, @@ -581,7 +580,7 @@ mod tests { genesis_block.slots_per_epoch = slots_per_epoch; let (bootstrap_leader_ledger_path, _last_id) = - create_new_tmp_ledger("test_leader_to_leader_transition", &genesis_block).unwrap(); + create_new_tmp_ledger!(&genesis_block).unwrap(); // Start the bootstrap leader let bootstrap_leader = Fullnode::new( diff --git a/src/replay_stage.rs b/src/replay_stage.rs index 469d452510..2d73a14101 100644 --- a/src/replay_stage.rs +++ b/src/replay_stage.rs @@ -489,9 +489,7 @@ mod test { let (genesis_block, _mint_keypair) = GenesisBlock::new_with_leader(10_000, leader_id, 500); - let (my_ledger_path, _last_id) = - create_new_tmp_ledger("test_vote_error_replay_stage_correctness", &genesis_block) - .unwrap(); + let (my_ledger_path, _last_id) = create_new_tmp_ledger!(&genesis_block).unwrap(); // Set up the cluster info let cluster_info_me = Arc::new(RwLock::new(ClusterInfo::new(my_node.info.clone()))); diff --git a/src/storage_stage.rs b/src/storage_stage.rs index 4260a1a327..1363762e25 100644 --- a/src/storage_stage.rs +++ b/src/storage_stage.rs @@ -509,8 +509,7 @@ mod tests { let (genesis_block, _mint_keypair) = GenesisBlock::new(1000); let ticks_per_slot = genesis_block.ticks_per_slot; - let (ledger_path, _last_id) = - create_new_tmp_ledger("storage_stage_process_entries", &genesis_block).unwrap(); + let (ledger_path, _last_id) = create_new_tmp_ledger!(&genesis_block).unwrap(); let entries = make_tiny_test_entries(64); let blocktree = Blocktree::open_config(&ledger_path, ticks_per_slot).unwrap(); @@ -573,8 +572,7 @@ mod tests { let (genesis_block, _mint_keypair) = GenesisBlock::new(1000); let ticks_per_slot = genesis_block.ticks_per_slot;; - let (ledger_path, _last_id) = - create_new_tmp_ledger("storage_stage_process_entries", &genesis_block).unwrap(); + let (ledger_path, _last_id) = create_new_tmp_ledger!(&genesis_block).unwrap(); let entries = make_tiny_test_entries(128); let blocktree = Blocktree::open_config(&ledger_path, ticks_per_slot).unwrap(); diff --git a/tests/multinode.rs b/tests/multinode.rs index c032a1ffa2..0047eaf84f 100644 --- a/tests/multinode.rs +++ b/tests/multinode.rs @@ -52,8 +52,7 @@ fn test_multi_node_ledger_window() -> result::Result<()> { let ticks_per_slot = genesis_block.ticks_per_slot; info!("ticks_per_slot: {}", ticks_per_slot); - let (leader_ledger_path, last_id) = - create_new_tmp_ledger("multi_node_ledger_window", &genesis_block).unwrap(); + let (leader_ledger_path, last_id) = create_new_tmp_ledger!(&genesis_block).unwrap(); ledger_paths.push(leader_ledger_path.clone()); // make a copy at zero @@ -153,8 +152,7 @@ fn test_multi_node_validator_catchup_from_zero() -> result::Result<()> { let mut ledger_paths = Vec::new(); let (genesis_block, alice) = GenesisBlock::new_with_leader(10_000, leader_data.id, 500); - let (genesis_ledger_path, _last_id) = - create_new_tmp_ledger("multi_node_validator_catchup_from_zero", &genesis_block).unwrap(); + let (genesis_ledger_path, _last_id) = create_new_tmp_ledger!(&genesis_block).unwrap(); ledger_paths.push(genesis_ledger_path.clone()); let zero_ledger_path = tmp_copy_blocktree!(&genesis_ledger_path); @@ -330,8 +328,7 @@ fn test_multi_node_basic() { let (genesis_block, alice) = GenesisBlock::new_with_leader(10_000, leader_data.id, 500); - let (genesis_ledger_path, _last_id) = - create_new_tmp_ledger("multi_node_basic", &genesis_block).unwrap(); + let (genesis_ledger_path, _last_id) = create_new_tmp_ledger!(&genesis_block).unwrap(); ledger_paths.push(genesis_ledger_path.clone()); let leader_ledger_path = tmp_copy_blocktree!(&genesis_ledger_path); @@ -432,8 +429,7 @@ fn test_boot_validator_from_file() { let mut ledger_paths = Vec::new(); let (genesis_block, alice) = GenesisBlock::new_with_leader(100_000, leader_pubkey, 1000); - let (genesis_ledger_path, _last_id) = - create_new_tmp_ledger("boot_validator_from_file", &genesis_block).unwrap(); + let (genesis_ledger_path, _last_id) = create_new_tmp_ledger!(&genesis_block).unwrap(); ledger_paths.push(genesis_ledger_path.clone()); let leader_ledger_path = tmp_copy_blocktree!(&genesis_ledger_path); @@ -657,8 +653,7 @@ fn test_multi_node_dynamic_network() { let bob_pubkey = Keypair::new().pubkey(); let (genesis_block, alice) = GenesisBlock::new_with_leader(10_000_000, leader_pubkey, 500); - let (genesis_ledger_path, _last_id) = - create_new_tmp_ledger("multi_node_dynamic_network", &genesis_block).unwrap(); + let (genesis_ledger_path, _last_id) = create_new_tmp_ledger!(&genesis_block).unwrap(); let mut ledger_paths = Vec::new(); ledger_paths.push(genesis_ledger_path.clone()); @@ -871,8 +866,7 @@ fn test_leader_to_validator_transition() { // Initialize the leader ledger. Make a mint and a genesis entry // in the leader ledger - let (leader_ledger_path, last_id) = - create_new_tmp_ledger("test_leader_to_validator_transition", &genesis_block).unwrap(); + let (leader_ledger_path, last_id) = create_new_tmp_ledger!(&genesis_block).unwrap(); // Write the votes entries to the ledger that will cause leader rotation // to validator_keypair at slot 2 @@ -952,8 +946,7 @@ fn test_leader_validator_basic() { genesis_block.ticks_per_slot = ticks_per_slot; // Make a common mint and a genesis entry for both leader + validator ledgers - let (leader_ledger_path, last_id) = - create_new_tmp_ledger("test_leader_validator_basic", &genesis_block).unwrap(); + let (leader_ledger_path, last_id) = create_new_tmp_ledger!(&genesis_block).unwrap(); // Add validator vote on tick height 1 { @@ -1085,8 +1078,7 @@ fn test_dropped_handoff_recovery() { genesis_block.ticks_per_slot = ticks_per_slot; // Make a common mint and a genesis entry for both leader + validator's ledgers - let (genesis_ledger_path, last_id) = - create_new_tmp_ledger("test_dropped_handoff_recovery", &genesis_block).unwrap(); + let (genesis_ledger_path, last_id) = create_new_tmp_ledger!(&genesis_block).unwrap(); // Create the validator keypair that will be the next leader in line let next_leader_keypair = Arc::new(Keypair::new()); @@ -1236,7 +1228,7 @@ fn test_full_leader_validator_network() { // Make a common mint and a genesis entry for both leader + validator's ledgers let (bootstrap_leader_ledger_path, mut last_id) = - create_new_tmp_ledger("test_full_leader_validator_network", &genesis_block).unwrap(); + create_new_tmp_ledger!(&genesis_block).unwrap(); // Create a common ledger with entries in the beginnging that will add all the validators // to the active set for leader election. @@ -1424,8 +1416,7 @@ fn test_broadcast_last_tick() { genesis_block.ticks_per_slot = ticks_per_slot; // Create leader ledger - let (bootstrap_leader_ledger_path, _last_id) = - create_new_tmp_ledger("test_broadcast_last_tick", &genesis_block).unwrap(); + let (bootstrap_leader_ledger_path, _last_id) = create_new_tmp_ledger!(&genesis_block).unwrap(); let blob_receiver_exit = Arc::new(AtomicBool::new(false)); @@ -1617,8 +1608,7 @@ fn test_fullnode_rotate( genesis_block.slots_per_epoch = slots_per_epoch; // Make a common mint and a genesis entry for both leader + validator ledgers - let (leader_ledger_path, mut last_id) = - create_new_tmp_ledger("test_fullnode_rotate", &genesis_block).unwrap(); + let (leader_ledger_path, mut last_id) = create_new_tmp_ledger!(&genesis_block).unwrap(); let mut ledger_paths = Vec::new(); ledger_paths.push(leader_ledger_path.clone());