X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Futil%2Ftest_utils.rs;h=6a652aa6b39c0016c0ac3705cfcf9206733e04a8;hb=HEAD;hp=f8341e885872a8db2d9aa78ff23fb2124383f814;hpb=270d1bd00636942fcf359b4abdc5681ebe15307d;p=rust-lightning diff --git a/src/util/test_utils.rs b/src/util/test_utils.rs deleted file mode 100644 index f8341e88..00000000 --- a/src/util/test_utils.rs +++ /dev/null @@ -1,192 +0,0 @@ -use chain::chaininterface; -use chain::chaininterface::ConfirmationTarget; -use chain::transaction::OutPoint; -use ln::channelmonitor; -use ln::msgs; -use ln::msgs::{HandleError}; -use util::events; -use util::logger::{Logger, Level, Record}; -use util::ser::{Readable, Writer}; - -use bitcoin::blockdata::transaction::Transaction; - -use secp256k1::PublicKey; - -use std::sync::{Arc,Mutex}; -use std::{mem}; - -struct VecWriter(Vec); -impl Writer for VecWriter { - fn write_all(&mut self, buf: &[u8]) -> Result<(), ::std::io::Error> { - self.0.extend_from_slice(buf); - Ok(()) - } - fn size_hint(&mut self, size: usize) { - self.0.reserve_exact(size); - } -} - -pub struct TestFeeEstimator { - pub sat_per_kw: u64, -} -impl chaininterface::FeeEstimator for TestFeeEstimator { - fn get_est_sat_per_1000_weight(&self, _confirmation_target: ConfirmationTarget) -> u64 { - self.sat_per_kw - } -} - -pub struct TestChannelMonitor { - pub added_monitors: Mutex>, - pub simple_monitor: Arc>, -} -impl TestChannelMonitor { - pub fn new(chain_monitor: Arc, broadcaster: Arc) -> Self { - Self { - added_monitors: Mutex::new(Vec::new()), - simple_monitor: channelmonitor::SimpleManyChannelMonitor::new(chain_monitor, broadcaster), - } - } -} -impl channelmonitor::ManyChannelMonitor for TestChannelMonitor { - fn add_update_monitor(&self, funding_txo: OutPoint, monitor: channelmonitor::ChannelMonitor) -> Result<(), channelmonitor::ChannelMonitorUpdateErr> { - // At every point where we get a monitor update, we should be able to send a useful monitor - // to a watchtower and disk... - let mut w = VecWriter(Vec::new()); - monitor.write_for_disk(&mut w).unwrap(); - assert!(channelmonitor::ChannelMonitor::read(&mut ::std::io::Cursor::new(&w.0)).unwrap() == monitor); - w.0.clear(); - monitor.write_for_watchtower(&mut w).unwrap(); // This at least shouldn't crash... - self.added_monitors.lock().unwrap().push((funding_txo, monitor.clone())); - self.simple_monitor.add_update_monitor(funding_txo, monitor) - } -} - -pub struct TestBroadcaster { - pub txn_broadcasted: Mutex>, -} -impl chaininterface::BroadcasterInterface for TestBroadcaster { - fn broadcast_transaction(&self, tx: &Transaction) { - self.txn_broadcasted.lock().unwrap().push(tx.clone()); - } -} - -pub struct TestChannelMessageHandler { - pub pending_events: Mutex>, -} - -impl TestChannelMessageHandler { - pub fn new() -> Self { - TestChannelMessageHandler { - pending_events: Mutex::new(Vec::new()), - } - } -} - -impl msgs::ChannelMessageHandler for TestChannelMessageHandler { - fn handle_open_channel(&self, _their_node_id: &PublicKey, _msg: &msgs::OpenChannel) -> Result { - Err(HandleError { err: "", action: None }) - } - fn handle_accept_channel(&self, _their_node_id: &PublicKey, _msg: &msgs::AcceptChannel) -> Result<(), HandleError> { - Err(HandleError { err: "", action: None }) - } - fn handle_funding_created(&self, _their_node_id: &PublicKey, _msg: &msgs::FundingCreated) -> Result { - Err(HandleError { err: "", action: None }) - } - fn handle_funding_signed(&self, _their_node_id: &PublicKey, _msg: &msgs::FundingSigned) -> Result<(), HandleError> { - Err(HandleError { err: "", action: None }) - } - fn handle_funding_locked(&self, _their_node_id: &PublicKey, _msg: &msgs::FundingLocked) -> Result, HandleError> { - Err(HandleError { err: "", action: None }) - } - fn handle_shutdown(&self, _their_node_id: &PublicKey, _msg: &msgs::Shutdown) -> Result<(Option, Option), HandleError> { - Err(HandleError { err: "", action: None }) - } - fn handle_closing_signed(&self, _their_node_id: &PublicKey, _msg: &msgs::ClosingSigned) -> Result, HandleError> { - Err(HandleError { err: "", action: None }) - } - fn handle_update_add_htlc(&self, _their_node_id: &PublicKey, _msg: &msgs::UpdateAddHTLC) -> Result<(), HandleError> { - Err(HandleError { err: "", action: None }) - } - fn handle_update_fulfill_htlc(&self, _their_node_id: &PublicKey, _msg: &msgs::UpdateFulfillHTLC) -> Result<(), HandleError> { - Err(HandleError { err: "", action: None }) - } - fn handle_update_fail_htlc(&self, _their_node_id: &PublicKey, _msg: &msgs::UpdateFailHTLC) -> Result<(), HandleError> { - Err(HandleError { err: "", action: None }) - } - fn handle_update_fail_malformed_htlc(&self, _their_node_id: &PublicKey, _msg: &msgs::UpdateFailMalformedHTLC) -> Result<(), HandleError> { - Err(HandleError { err: "", action: None }) - } - fn handle_commitment_signed(&self, _their_node_id: &PublicKey, _msg: &msgs::CommitmentSigned) -> Result<(msgs::RevokeAndACK, Option), HandleError> { - Err(HandleError { err: "", action: None }) - } - fn handle_revoke_and_ack(&self, _their_node_id: &PublicKey, _msg: &msgs::RevokeAndACK) -> Result, HandleError> { - Err(HandleError { err: "", action: None }) - } - fn handle_update_fee(&self, _their_node_id: &PublicKey, _msg: &msgs::UpdateFee) -> Result<(), HandleError> { - Err(HandleError { err: "", action: None }) - } - fn handle_announcement_signatures(&self, _their_node_id: &PublicKey, _msg: &msgs::AnnouncementSignatures) -> Result<(), HandleError> { - Err(HandleError { err: "", action: None }) - } - fn handle_channel_reestablish(&self, _their_node_id: &PublicKey, _msg: &msgs::ChannelReestablish) -> Result<(Option, Option, Option), HandleError> { - Err(HandleError { err: "", action: None }) - } - fn peer_disconnected(&self, _their_node_id: &PublicKey, _no_connection_possible: bool) {} - fn peer_connected(&self, _their_node_id: &PublicKey) -> Vec { - Vec::new() - } - fn handle_error(&self, _their_node_id: &PublicKey, _msg: &msgs::ErrorMessage) {} -} - -impl events::EventsProvider for TestChannelMessageHandler { - fn get_and_clear_pending_events(&self) -> Vec { - let mut pending_events = self.pending_events.lock().unwrap(); - let mut ret = Vec::new(); - mem::swap(&mut ret, &mut *pending_events); - ret - } -} - -pub struct TestRoutingMessageHandler {} - -impl TestRoutingMessageHandler { - pub fn new() -> Self { - TestRoutingMessageHandler {} - } -} - -impl msgs::RoutingMessageHandler for TestRoutingMessageHandler { - fn handle_node_announcement(&self, _msg: &msgs::NodeAnnouncement) -> Result { - Err(HandleError { err: "", action: None }) - } - fn handle_channel_announcement(&self, _msg: &msgs::ChannelAnnouncement) -> Result { - Err(HandleError { err: "", action: None }) - } - fn handle_channel_update(&self, _msg: &msgs::ChannelUpdate) -> Result { - Err(HandleError { err: "", action: None }) - } - fn handle_htlc_fail_channel_update(&self, _update: &msgs::HTLCFailChannelUpdate) {} -} - -pub struct TestLogger { - level: Level, -} - -impl TestLogger { - pub fn new() -> TestLogger { - TestLogger { - level: Level::Trace, - } - } - pub fn enable(&mut self, level: Level) { - self.level = level; - } -} - -impl Logger for TestLogger { - fn log(&self, record: &Record) { - if self.level >= record.level { - println!("{:<5} [{} : {}, {}] {}", record.level.to_string(), record.module_path, record.file, record.line, record.args); - } - } -}