X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=fuzz%2Fsrc%2Ffull_stack.rs;h=fe5599fb05ddce155e124b00d2ce5aaa74405b05;hb=refs%2Fheads%2F2021-06-no-spurious-forward-fails;hp=adfd2a8309cc5e3091770b2091729f46eff365da;hpb=8cc9410ae176f415d90e8ed8afe590455db63dc9;p=rust-lightning diff --git a/fuzz/src/full_stack.rs b/fuzz/src/full_stack.rs index adfd2a83..fe5599fb 100644 --- a/fuzz/src/full_stack.rs +++ b/fuzz/src/full_stack.rs @@ -39,6 +39,7 @@ use lightning::ln::msgs::DecodeError; use lightning::routing::router::get_route; use lightning::routing::network_graph::NetGraphMsgHandler; use lightning::util::config::UserConfig; +use lightning::util::errors::APIError; use lightning::util::events::Event; use lightning::util::enforcing_trait_impls::EnforcingSigner; use lightning::util::logger::Logger; @@ -531,12 +532,18 @@ pub fn do_test(data: &[u8], logger: &Arc) { continue 'outer_loop; } }; - channelmanager.funding_transaction_generated(&funding_generation.0, tx.clone()).unwrap(); + if let Err(e) = channelmanager.funding_transaction_generated(&funding_generation.0, tx.clone()) { + // It's possible the channel has been closed in the mean time, but any other + // failure may be a bug. + if let APIError::ChannelUnavailable { err } = e { + assert_eq!(err, "No such channel"); + } else { panic!(); } + } pending_funding_signatures.insert(funding_output, tx); } }, 11 => { - let mut txn = broadcast.txn_broadcasted.lock().unwrap(); + let mut txn = broadcast.txn_broadcasted.lock().unwrap().split_off(0); if !txn.is_empty() { loss_detector.connect_block(&txn[..]); for _ in 2..100 {