Use ? instead of unwrap()
This change addresses #833, while there are still some unwrap() though.
This commit is contained in:
@ -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]
|
||||||
|
@ -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
|
||||||
|
Reference in New Issue
Block a user