Reduce boilerplate code with helper function to create

fullnode/bank/genesis
This commit is contained in:
Stephen Akridge
2019-01-28 10:53:29 -08:00
committed by sakridge
parent e4f477cf90
commit 2262f279d5
6 changed files with 78 additions and 372 deletions

View File

@@ -1,14 +1,6 @@
use chrono::prelude::*;
use serde_json::{json, Value};
use solana::bank::Bank;
use solana::cluster_info::Node;
use solana::db_ledger::create_tmp_ledger;
use solana::fullnode::Fullnode;
use solana::genesis_block::GenesisBlock;
use solana::leader_scheduler::LeaderScheduler;
use solana::rpc_request::{RpcClient, RpcRequest, RpcRequestHandler};
use solana::storage_stage::STORAGE_ROTATE_TEST_COUNT;
use solana::vote_signer_proxy::VoteSignerProxy;
use solana_drone::drone::run_local_drone;
use solana_sdk::pubkey::Pubkey;
use solana_sdk::signature::{Keypair, KeypairUtil};
@@ -17,7 +9,9 @@ use solana_wallet::wallet::{
};
use std::fs::remove_dir_all;
use std::sync::mpsc::channel;
use std::sync::{Arc, RwLock};
#[cfg(test)]
use solana::thin_client::new_fullnode;
fn check_balance(expected_balance: u64, client: &RpcClient, params: Value) {
let balance = client
@@ -30,36 +24,9 @@ fn check_balance(expected_balance: u64, client: &RpcClient, params: Value) {
#[test]
fn test_wallet_timestamp_tx() {
let leader_keypair = Arc::new(Keypair::new());
let leader = Node::new_localhost_with_pubkey(leader_keypair.pubkey());
let leader_data = leader.info.clone();
let (genesis_block, alice) = GenesisBlock::new(10_000);
let mut bank = Bank::new(&genesis_block);
let (server, leader_data, _genesis_block, alice, ledger_path) =
new_fullnode("test_wallet_timestamp_tx");
let bob_pubkey = Keypair::new().pubkey();
let ledger_path = create_tmp_ledger("thin_client", &genesis_block);
let entry_height = 0;
let leader_scheduler = Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
leader_data.id,
)));
bank.leader_scheduler = leader_scheduler;
let vote_account_keypair = Arc::new(Keypair::new());
let vote_signer = VoteSignerProxy::new_local(&vote_account_keypair);
let last_id = bank.last_id();
let server = Fullnode::new_with_bank(
leader_keypair,
Some(Arc::new(vote_signer)),
bank,
&ledger_path,
entry_height,
&last_id,
leader,
None,
false,
None,
STORAGE_ROTATE_TEST_COUNT,
);
let (sender, receiver) = channel();
run_local_drone(alice, sender);
@@ -125,36 +92,9 @@ fn test_wallet_timestamp_tx() {
#[test]
fn test_wallet_witness_tx() {
let leader_keypair = Arc::new(Keypair::new());
let leader = Node::new_localhost_with_pubkey(leader_keypair.pubkey());
let leader_data = leader.info.clone();
let (genesis_block, alice) = GenesisBlock::new(10_000);
let mut bank = Bank::new(&genesis_block);
let (server, leader_data, _genesis_block, alice, ledger_path) =
new_fullnode("test_wallet_witness_tx");
let bob_pubkey = Keypair::new().pubkey();
let ledger_path = create_tmp_ledger("test_wallet_witness_tx", &genesis_block);
let entry_height = 0;
let leader_scheduler = Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
leader_data.id,
)));
bank.leader_scheduler = leader_scheduler;
let vote_account_keypair = Arc::new(Keypair::new());
let vote_signer = VoteSignerProxy::new_local(&vote_account_keypair);
let last_id = bank.last_id();
let server = Fullnode::new_with_bank(
leader_keypair,
Some(Arc::new(vote_signer)),
bank,
&ledger_path,
entry_height,
&last_id,
leader,
None,
false,
None,
STORAGE_ROTATE_TEST_COUNT,
);
let (sender, receiver) = channel();
run_local_drone(alice, sender);
@@ -216,36 +156,9 @@ fn test_wallet_witness_tx() {
#[test]
fn test_wallet_cancel_tx() {
let leader_keypair = Arc::new(Keypair::new());
let leader = Node::new_localhost_with_pubkey(leader_keypair.pubkey());
let leader_data = leader.info.clone();
let (genesis_block, alice) = GenesisBlock::new(10_000);
let mut bank = Bank::new(&genesis_block);
let (server, leader_data, _genesis_block, alice, ledger_path) =
new_fullnode("test_wallet_cancel_tx");
let bob_pubkey = Keypair::new().pubkey();
let ledger_path = create_tmp_ledger("test_wallet_cancel_tx", &genesis_block);
let entry_height = 0;
let leader_scheduler = Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
leader_data.id,
)));
bank.leader_scheduler = leader_scheduler;
let vote_account_keypair = Arc::new(Keypair::new());
let vote_signer = VoteSignerProxy::new_local(&vote_account_keypair);
let last_id = bank.last_id();
let server = Fullnode::new_with_bank(
leader_keypair,
Some(Arc::new(vote_signer)),
bank,
&ledger_path,
entry_height,
&last_id,
leader,
None,
false,
None,
STORAGE_ROTATE_TEST_COUNT,
);
let (sender, receiver) = channel();
run_local_drone(alice, sender);