projects
/
rust-lightning
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Check we won't overflow `max_dust_htlc_exposure_msat` at outbound feerate update
[rust-lightning]
/
lightning
/
src
/
util
/
test_utils.rs
diff --git
a/lightning/src/util/test_utils.rs
b/lightning/src/util/test_utils.rs
index 7ec794555507cb21bcc2dfab0dbf9823bfd87285..45f21e0b38c1a39b9105ff5068f1665728253c49 100644
(file)
--- a/
lightning/src/util/test_utils.rs
+++ b/
lightning/src/util/test_utils.rs
@@
-21,6
+21,7
@@
use ln::features::{ChannelFeatures, InitFeatures};
use ln::msgs;
use ln::msgs::OptionalField;
use ln::script::ShutdownScript;
use ln::msgs;
use ln::msgs::OptionalField;
use ln::script::ShutdownScript;
+use routing::scoring::{Eternity, ScorerUsingTime};
use util::enforcing_trait_impls::{EnforcingSigner, EnforcementState};
use util::events;
use util::logger::{Logger, Level, Record};
use util::enforcing_trait_impls::{EnforcingSigner, EnforcementState};
use util::events;
use util::logger::{Logger, Level, Record};
@@
-163,13
+164,16
@@
pub struct TestPersister {
/// If this is set to Some(), after the next return, we'll always return this until update_ret
/// is changed:
pub next_update_ret: Mutex<Option<Result<(), chain::ChannelMonitorUpdateErr>>>,
/// If this is set to Some(), after the next return, we'll always return this until update_ret
/// is changed:
pub next_update_ret: Mutex<Option<Result<(), chain::ChannelMonitorUpdateErr>>>,
-
+ /// When we get an update_persisted_channel call with no ChannelMonitorUpdate, we insert the
+ /// MonitorUpdateId here.
+ pub chain_sync_monitor_persistences: Mutex<HashMap<OutPoint, HashSet<MonitorUpdateId>>>,
}
impl TestPersister {
pub fn new() -> Self {
Self {
update_ret: Mutex::new(Ok(())),
next_update_ret: Mutex::new(None),
}
impl TestPersister {
pub fn new() -> Self {
Self {
update_ret: Mutex::new(Ok(())),
next_update_ret: Mutex::new(None),
+ chain_sync_monitor_persistences: Mutex::new(HashMap::new()),
}
}
}
}
@@
-190,11
+194,14
@@
impl<Signer: keysinterface::Sign> chainmonitor::Persist<Signer> for TestPersiste
ret
}
ret
}
- fn update_persisted_channel(&self,
_funding_txo: OutPoint, _update: &Option<channelmonitor::ChannelMonitorUpdate>, _data: &channelmonitor::ChannelMonitor<Signer>,
_id: MonitorUpdateId) -> Result<(), chain::ChannelMonitorUpdateErr> {
+ fn update_persisted_channel(&self,
funding_txo: OutPoint, update: &Option<channelmonitor::ChannelMonitorUpdate>, _data: &channelmonitor::ChannelMonitor<Signer>, update
_id: MonitorUpdateId) -> Result<(), chain::ChannelMonitorUpdateErr> {
let ret = self.update_ret.lock().unwrap().clone();
if let Some(next_ret) = self.next_update_ret.lock().unwrap().take() {
*self.update_ret.lock().unwrap() = next_ret;
}
let ret = self.update_ret.lock().unwrap().clone();
if let Some(next_ret) = self.next_update_ret.lock().unwrap().take() {
*self.update_ret.lock().unwrap() = next_ret;
}
+ if update.is_none() {
+ self.chain_sync_monitor_persistences.lock().unwrap().entry(funding_txo).or_insert(HashSet::new()).insert(update_id);
+ }
ret
}
}
ret
}
}
@@
-314,7
+321,6
@@
fn get_dummy_channel_update(short_chan_id: u64) -> msgs::ChannelUpdate {
pub struct TestRoutingMessageHandler {
pub chan_upds_recvd: AtomicUsize,
pub chan_anns_recvd: AtomicUsize,
pub struct TestRoutingMessageHandler {
pub chan_upds_recvd: AtomicUsize,
pub chan_anns_recvd: AtomicUsize,
- pub chan_anns_sent: AtomicUsize,
pub request_full_sync: AtomicBool,
}
pub request_full_sync: AtomicBool,
}
@@
-323,7
+329,6
@@
impl TestRoutingMessageHandler {
TestRoutingMessageHandler {
chan_upds_recvd: AtomicUsize::new(0),
chan_anns_recvd: AtomicUsize::new(0),
TestRoutingMessageHandler {
chan_upds_recvd: AtomicUsize::new(0),
chan_anns_recvd: AtomicUsize::new(0),
- chan_anns_sent: AtomicUsize::new(0),
request_full_sync: AtomicBool::new(false),
}
}
request_full_sync: AtomicBool::new(false),
}
}
@@
-342,8
+347,8
@@
impl msgs::RoutingMessageHandler for TestRoutingMessageHandler {
}
fn get_next_channel_announcements(&self, starting_point: u64, batch_amount: u8) -> Vec<(msgs::ChannelAnnouncement, Option<msgs::ChannelUpdate>, Option<msgs::ChannelUpdate>)> {
let mut chan_anns = Vec::new();
}
fn get_next_channel_announcements(&self, starting_point: u64, batch_amount: u8) -> Vec<(msgs::ChannelAnnouncement, Option<msgs::ChannelUpdate>, Option<msgs::ChannelUpdate>)> {
let mut chan_anns = Vec::new();
- const TOTAL_UPDS: u64 =
10
0;
- let end: u64 = cmp::min(starting_point + batch_amount as u64, TOTAL_UPDS
- self.chan_anns_sent.load(Ordering::Acquire) as u64
);
+ const TOTAL_UPDS: u64 =
5
0;
+ let end: u64 = cmp::min(starting_point + batch_amount as u64, TOTAL_UPDS);
for i in starting_point..end {
let chan_upd_1 = get_dummy_channel_update(i);
let chan_upd_2 = get_dummy_channel_update(i);
for i in starting_point..end {
let chan_upd_1 = get_dummy_channel_update(i);
let chan_upd_2 = get_dummy_channel_update(i);
@@
-352,7
+357,6
@@
impl msgs::RoutingMessageHandler for TestRoutingMessageHandler {
chan_anns.push((chan_ann, Some(chan_upd_1), Some(chan_upd_2)));
}
chan_anns.push((chan_ann, Some(chan_upd_1), Some(chan_upd_2)));
}
- self.chan_anns_sent.fetch_add(chan_anns.len(), Ordering::AcqRel);
chan_anns
}
chan_anns
}
@@
-687,3
+691,6
@@
impl core::fmt::Debug for OnRegisterOutput {
.finish()
}
}
.finish()
}
}
+
+/// A scorer useful in testing, when the passage of time isn't a concern.
+pub type TestScorer = ScorerUsingTime<Eternity>;