From a7f200847f0f8b61b1d3974c5e19e0cfbc1434f4 Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Tue, 26 Feb 2019 10:36:35 -0800 Subject: [PATCH] Clean up test_leader_restart_validator_start_from_old_ledger --- tests/multinode.rs | 54 +++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/tests/multinode.rs b/tests/multinode.rs index be4acfdfd2..68fb0c5150 100644 --- a/tests/multinode.rs +++ b/tests/multinode.rs @@ -565,17 +565,18 @@ fn test_leader_restart_validator_start_from_old_ledger() -> result::Result<()> { create_leader(&ledger_path, leader_keypair.clone(), voting_keypair); let leader_fullnode_exit = leader_fullnode.run(None); - // lengthen the ledger - let leader_balance = + // Give bob 500 tokens via the leader + assert_eq!( send_tx_and_retry_get_balance(&leader_data, &alice, &bob_pubkey, 500, Some(500)) - .unwrap(); - assert_eq!(leader_balance, 500); + .unwrap(), + 500 + ); // restart the leader leader_fullnode_exit(); } - // create a "stale" ledger by copying current ledger + // Create a "stale" ledger by copying current ledger where bob only has 500 tokens let stale_ledger_path = tmp_copy_blocktree( &ledger_path, "leader_restart_validator_start_from_old_ledger", @@ -587,13 +588,13 @@ fn test_leader_restart_validator_start_from_old_ledger() -> result::Result<()> { create_leader(&ledger_path, leader_keypair.clone(), voting_keypair); let leader_fullnode_exit = leader_fullnode.run(None); - // lengthen the ledger - let leader_balance = + // Give bob 500 more tokens via the leader + assert_eq!( send_tx_and_retry_get_balance(&leader_data, &alice, &bob_pubkey, 500, Some(1000)) - .unwrap(); - assert_eq!(leader_balance, 1000); + .unwrap(), + 1000 + ); - // restart the leader leader_fullnode_exit(); } @@ -602,7 +603,7 @@ fn test_leader_restart_validator_start_from_old_ledger() -> result::Result<()> { create_leader(&ledger_path, leader_keypair, voting_keypair); let leader_fullnode_exit = leader_fullnode.run(None); - // start validator from old ledger + // Start validator from "stale" ledger let keypair = Arc::new(Keypair::new()); let validator = Node::new_localhost_with_pubkey(keypair.pubkey()); let validator_data = validator.info.clone(); @@ -619,26 +620,25 @@ fn test_leader_restart_validator_start_from_old_ledger() -> result::Result<()> { ); let val_fullnode_exit = val_fullnode.run(None); - // trigger broadcast, validator should catch up from leader, whose window contains - // the entries missing from the stale ledger - // send requests so the validator eventually sees a gap and requests a repair - let mut expected = 1500; - let mut client = mk_client(&validator_data); - for _ in 0..solana::window_service::MAX_REPAIR_BACKOFF { - let leader_balance = - send_tx_and_retry_get_balance(&leader_data, &alice, &bob_pubkey, 500, Some(expected)) - .unwrap(); - assert_eq!(leader_balance, expected); + // Validator should catch up from leader whose window contains the entries missing from the + // stale ledger send requests so the validator eventually sees a gap and requests a repair + let expected_bob_balance = 1000; + let mut validator_client = mk_client(&validator_data); - let getbal = retry_get_balance(&mut client, &bob_pubkey, Some(leader_balance)); - if getbal == Some(leader_balance) { + for _ in 0..42 { + let balance = retry_get_balance( + &mut validator_client, + &bob_pubkey, + Some(expected_bob_balance), + ); + info!( + "Bob balance at the validator is {:?} (expecting {:?})", + balance, expected_bob_balance + ); + if balance == Some(expected_bob_balance) { break; } - - expected += 500; } - let getbal = retry_get_balance(&mut client, &bob_pubkey, Some(expected)); - assert_eq!(getbal, Some(expected)); val_fullnode_exit(); leader_fullnode_exit();