X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=fuzz%2Fsrc%2Frouter.rs;h=7dd439bef4abaf486d03dd1bfdcdd0e853ba8672;hb=5bd7f24634a983326924f200bfff7c7c0fa56601;hp=b0d7b6031486039e98f974065102b1010a5d0677;hpb=ce4de5fb52246f91d37127594f8fd7d304ab86ad;p=rust-lightning diff --git a/fuzz/src/router.rs b/fuzz/src/router.rs index b0d7b603..7dd439be 100644 --- a/fuzz/src/router.rs +++ b/fuzz/src/router.rs @@ -1,18 +1,18 @@ -use bitcoin_hashes::sha256d::Hash as Sha256dHash; use bitcoin::blockdata::script::{Script, Builder}; use bitcoin::blockdata::block::Block; use bitcoin::blockdata::transaction::Transaction; +use bitcoin::hash_types::{Txid, BlockHash}; use lightning::chain::chaininterface::{ChainError,ChainWatchInterface}; use lightning::ln::channelmanager::ChannelDetails; use lightning::ln::features::InitFeatures; use lightning::ln::msgs; use lightning::ln::msgs::RoutingMessageHandler; -use lightning::ln::router::{Router, RouteHint}; +use lightning::routing::router::{Router, RouteHint}; use lightning::util::logger::Logger; use lightning::util::ser::Readable; -use secp256k1::key::PublicKey; +use bitcoin::secp256k1::key::PublicKey; use utils::test_logger; @@ -72,15 +72,15 @@ struct DummyChainWatcher { } impl ChainWatchInterface for DummyChainWatcher { - fn install_watch_tx(&self, _txid: &Sha256dHash, _script_pub_key: &Script) { } - fn install_watch_outpoint(&self, _outpoint: (Sha256dHash, u32), _out_script: &Script) { } + fn install_watch_tx(&self, _txid: &Txid, _script_pub_key: &Script) { } + fn install_watch_outpoint(&self, _outpoint: (Txid, u32), _out_script: &Script) { } fn watch_all_txn(&self) { } fn filter_block<'a>(&self, _block: &'a Block) -> (Vec<&'a Transaction>, Vec) { (Vec::new(), Vec::new()) } fn reentered(&self) -> usize { 0 } - fn get_chain_utxo(&self, _genesis_hash: Sha256dHash, _unspent_tx_output_identifier: u64) -> Result<(Script, u64), ChainError> { + fn get_chain_utxo(&self, _genesis_hash: BlockHash, _unspent_tx_output_identifier: u64) -> Result<(Script, u64), ChainError> { match self.input.get_slice(2) { Some(&[0, _]) => Err(ChainError::NotSupported), Some(&[1, _]) => Err(ChainError::NotWatched), @@ -93,7 +93,7 @@ impl ChainWatchInterface for DummyChainWatcher { } #[inline] -pub fn do_test(data: &[u8]) { +pub fn do_test(data: &[u8], out: Out) { let input = Arc::new(InputData { data: data.to_vec(), read_pos: AtomicUsize::new(0), @@ -124,7 +124,6 @@ pub fn do_test(data: &[u8]) { msgs::DecodeError::UnknownVersion => return, msgs::DecodeError::UnknownRequiredFeature => return, msgs::DecodeError::InvalidValue => return, - msgs::DecodeError::ExtraAddressesPerType => return, msgs::DecodeError::BadLengthDescriptor => return, msgs::DecodeError::ShortRead => panic!("We picked the length..."), msgs::DecodeError::Io(e) => panic!(format!("{}", e)), @@ -151,7 +150,7 @@ pub fn do_test(data: &[u8]) { } } - let logger: Arc = Arc::new(test_logger::TestLogger::new("".to_owned())); + let logger: Arc = Arc::new(test_logger::TestLogger::new("".to_owned(), out)); let chain_monitor = Arc::new(DummyChainWatcher { input: Arc::clone(&input), }); @@ -233,7 +232,11 @@ pub fn do_test(data: &[u8]) { } } +pub fn router_test(data: &[u8], out: Out) { + do_test(data, out); +} + #[no_mangle] pub extern "C" fn router_run(data: *const u8, datalen: usize) { - do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); + do_test(unsafe { std::slice::from_raw_parts(data, datalen) }, test_logger::DevNull {}); }