Use ? instead of unwrap()

This change addresses #833, while there are still some unwrap() though.
This commit is contained in:
Kazuyoshi Kato
2018-08-05 21:40:23 -07:00
committed by Grimes
parent 575179be8e
commit 9c1b6288a4
2 changed files with 29 additions and 17 deletions

View File

@ -8,6 +8,7 @@ use solana::crdt::{Crdt, TestNode};
use solana::logger; use solana::logger;
use solana::ncp::Ncp; use solana::ncp::Ncp;
use solana::packet::Blob; use solana::packet::Blob;
use solana::result;
use solana::service::Service; use solana::service::Service;
use std::net::UdpSocket; use std::net::UdpSocket;
use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::atomic::{AtomicBool, Ordering};
@ -71,7 +72,7 @@ where
} }
/// ring a -> b -> c -> d -> e -> a /// ring a -> b -> c -> d -> e -> a
#[test] #[test]
fn gossip_ring() { fn gossip_ring() -> result::Result<()> {
logger::setup(); logger::setup();
run_gossip_topo(|listen| { run_gossip_topo(|listen| {
let num = listen.len(); let num = listen.len();
@ -85,6 +86,8 @@ fn gossip_ring() {
xv.insert(&d); xv.insert(&d);
} }
}); });
Ok(())
} }
/// star a -> (b,c,d,e) /// star a -> (b,c,d,e)
@ -131,7 +134,7 @@ fn gossip_rstar() {
} }
#[test] #[test]
pub fn crdt_retransmit() { pub fn crdt_retransmit() -> result::Result<()> {
logger::setup(); logger::setup();
let exit = Arc::new(AtomicBool::new(false)); let exit = Arc::new(AtomicBool::new(false));
trace!("c1:"); trace!("c1:");
@ -164,7 +167,7 @@ pub fn crdt_retransmit() {
assert!(done); assert!(done);
let mut b = Blob::default(); let mut b = Blob::default();
b.meta.size = 10; b.meta.size = 10;
Crdt::retransmit(&c1, &Arc::new(RwLock::new(b)), &tn1).unwrap(); Crdt::retransmit(&c1, &Arc::new(RwLock::new(b)), &tn1)?;
let res: Vec<_> = [tn1, tn2, tn3] let res: Vec<_> = [tn1, tn2, tn3]
.into_par_iter() .into_par_iter()
.map(|s| { .map(|s| {
@ -181,6 +184,8 @@ pub fn crdt_retransmit() {
dr1.join().unwrap(); dr1.join().unwrap();
dr2.join().unwrap(); dr2.join().unwrap();
dr3.join().unwrap(); dr3.join().unwrap();
Ok(())
} }
#[test] #[test]

View File

@ -10,6 +10,7 @@ use solana::ledger::LedgerWriter;
use solana::logger; use solana::logger;
use solana::mint::Mint; use solana::mint::Mint;
use solana::ncp::Ncp; use solana::ncp::Ncp;
use solana::result;
use solana::service::Service; use solana::service::Service;
use solana::signature::{KeyPair, KeyPairUtil, PublicKey}; use solana::signature::{KeyPair, KeyPairUtil, PublicKey};
use solana::streamer::default_window; use solana::streamer::default_window;
@ -107,7 +108,7 @@ fn tmp_copy_ledger(from: &str, name: &str) -> String {
} }
#[test] #[test]
fn test_multi_node_validator_catchup_from_zero() { fn test_multi_node_validator_catchup_from_zero() -> result::Result<()> {
logger::setup(); logger::setup();
const N: usize = 5; const N: usize = 5;
trace!("test_multi_node_validator_catchup_from_zero"); trace!("test_multi_node_validator_catchup_from_zero");
@ -195,7 +196,7 @@ fn test_multi_node_validator_catchup_from_zero() {
info!("leader balance {}", leader_balance); info!("leader balance {}", leader_balance);
loop { loop {
let mut client = mk_client(&leader_data); let mut client = mk_client(&leader_data);
leader_balance = client.poll_get_balance(&bob_pubkey).unwrap(); leader_balance = client.poll_get_balance(&bob_pubkey)?;
if leader_balance == 1000 { if leader_balance == 1000 {
break; break;
} }
@ -220,11 +221,13 @@ fn test_multi_node_validator_catchup_from_zero() {
assert_eq!(success, servers.len()); assert_eq!(success, servers.len());
for node in nodes { for node in nodes {
node.close().unwrap(); node.close()?;
} }
for path in ledger_paths { for path in ledger_paths {
remove_dir_all(path).unwrap(); remove_dir_all(path).unwrap();
} }
Ok(())
} }
#[test] #[test]
@ -293,7 +296,7 @@ fn test_multi_node_basic() {
} }
#[test] #[test]
fn test_boot_validator_from_file() { fn test_boot_validator_from_file() -> result::Result<()> {
logger::setup(); logger::setup();
let leader_keypair = KeyPair::new(); let leader_keypair = KeyPair::new();
let leader = TestNode::new_localhost_with_pubkey(leader_keypair.pubkey()); let leader = TestNode::new_localhost_with_pubkey(leader_keypair.pubkey());
@ -327,11 +330,13 @@ fn test_boot_validator_from_file() {
let getbal = retry_get_balance(&mut client, &bob_pubkey, Some(leader_balance)); let getbal = retry_get_balance(&mut client, &bob_pubkey, Some(leader_balance));
assert!(getbal == Some(leader_balance)); assert!(getbal == Some(leader_balance));
val_fullnode.close().unwrap(); val_fullnode.close()?;
leader_fullnode.close().unwrap(); leader_fullnode.close()?;
for path in ledger_paths { for path in ledger_paths {
remove_dir_all(path).unwrap(); remove_dir_all(path)?;
} }
Ok(())
} }
fn create_leader(ledger_path: &str) -> (NodeInfo, FullNode) { fn create_leader(ledger_path: &str) -> (NodeInfo, FullNode) {
@ -343,7 +348,7 @@ fn create_leader(ledger_path: &str) -> (NodeInfo, FullNode) {
} }
#[test] #[test]
fn test_leader_restart_validator_start_from_old_ledger() { fn test_leader_restart_validator_start_from_old_ledger() -> result::Result<()> {
// this test verifies that a freshly started leader makes his ledger available // this test verifies that a freshly started leader makes his ledger available
// in the repair window to validators that are started with an older // in the repair window to validators that are started with an older
// ledger (currently up to WINDOW_SIZE entries) // ledger (currently up to WINDOW_SIZE entries)
@ -366,7 +371,7 @@ fn test_leader_restart_validator_start_from_old_ledger() {
); );
// restart the leader // restart the leader
leader_fullnode.close().unwrap(); leader_fullnode.close()?;
let (leader_data, leader_fullnode) = create_leader(&ledger_path); let (leader_data, leader_fullnode) = create_leader(&ledger_path);
// lengthen the ledger // lengthen the ledger
@ -375,7 +380,7 @@ fn test_leader_restart_validator_start_from_old_ledger() {
assert_eq!(leader_balance, 1000); assert_eq!(leader_balance, 1000);
// restart the leader // restart the leader
leader_fullnode.close().unwrap(); leader_fullnode.close()?;
let (leader_data, leader_fullnode) = create_leader(&ledger_path); let (leader_data, leader_fullnode) = create_leader(&ledger_path);
// start validator from old ledger // start validator from old ledger
@ -410,10 +415,12 @@ fn test_leader_restart_validator_start_from_old_ledger() {
let getbal = retry_get_balance(&mut client, &bob_pubkey, Some(expected)); let getbal = retry_get_balance(&mut client, &bob_pubkey, Some(expected));
assert_eq!(getbal, Some(expected)); assert_eq!(getbal, Some(expected));
val_fullnode.close().unwrap(); val_fullnode.close()?;
leader_fullnode.close().unwrap(); leader_fullnode.close()?;
remove_dir_all(ledger_path).unwrap(); remove_dir_all(ledger_path)?;
remove_dir_all(stale_ledger_path).unwrap(); remove_dir_all(stale_ledger_path)?;
Ok(())
} }
//TODO: this test will run a long time so it's disabled for CI //TODO: this test will run a long time so it's disabled for CI