Add/employ create_new_tmp_ledger!()

This commit is contained in:
Michael Vines 2019-02-26 19:19:34 -08:00
parent 55a76ed4b0
commit 5a7b99ecc2
7 changed files with 30 additions and 39 deletions

View File

@ -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

View File

@ -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

View File

@ -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![];

View File

@ -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(

View File

@ -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())));

View File

@ -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();

View File

@ -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());