Use public `MonitorUpdatingPersister` API in tests
What changed, and why it matters
This commit only changes test code. It replaces direct construction of a test helper object with its public constructor and swaps one test logger for another. There is no change to production code or user-facing behavior, and no security issue is present.
No security action needed. This is a routine test refactor.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff modifies lightning/src/util/persist.rs test module only. It refactors MonitorUpdatingPersister instantiation from struct literal syntax to MonitorUpdatingPersister::new(…) and uses chanmon_cfgs[*].logger instead of TestLogger::new(). It also binds TestStore instances to local variables so they can be referenced directly in KVStoreSync calls. No production logic is altered.
Changed components
lightning/src/util/persist.rs (tests only)Inspect captured patch +55 / −50
diff --git a/lightning/src/util/persist.rs b/lightning/src/util/persist.rs
index 974c7a4..927d199 100644
--- a/lightning/src/util/persist.rs
+++ b/lightning/src/util/persist.rs
@@ -1112,7 +1112,7 @@ mod tests {
use crate::ln::msgs::BaseMessageHandler;
use crate::sync::Arc;
use crate::util::test_channel_signer::TestChannelSigner;
- use crate::util::test_utils::{self, TestLogger, TestStore};
+ use crate::util::test_utils::{self, TestStore};
use crate::{check_added_monitors, check_closed_broadcast};
use bitcoin::hashes::hex::FromHex;
@@ -1191,24 +1191,26 @@ mod tests {
// Exercise the `MonitorUpdatingPersister` with real channels and payments.
fn do_persister_with_real_monitors(max_pending_updates_0: u64, max_pending_updates_1: u64) {
let chanmon_cfgs = create_chanmon_cfgs(4);
- let persister_0 = MonitorUpdatingPersister {
- kv_store: &TestStore::new(false),
- logger: &TestLogger::new(),
- maximum_pending_updates: max_pending_updates_0,
- entropy_source: &chanmon_cfgs[0].keys_manager,
- signer_provider: &chanmon_cfgs[0].keys_manager,
- broadcaster: &chanmon_cfgs[0].tx_broadcaster,
- fee_estimator: &chanmon_cfgs[0].fee_estimator,
- };
- let persister_1 = MonitorUpdatingPersister {
- kv_store: &TestStore::new(false),
- logger: &TestLogger::new(),
- maximum_pending_updates: max_pending_updates_1,
- entropy_source: &chanmon_cfgs[1].keys_manager,
- signer_provider: &chanmon_cfgs[1].keys_manager,
- broadcaster: &chanmon_cfgs[1].tx_broadcaster,
- fee_estimator: &chanmon_cfgs[1].fee_estimator,
- };
+ let kv_store_0 = TestStore::new(false);
+ let persister_0 = MonitorUpdatingPersister::new(
+ &kv_store_0,
+ &chanmon_cfgs[0].logger,
+ max_pending_updates_0,
+ &chanmon_cfgs[0].keys_manager,
+ &chanmon_cfgs[0].keys_manager,
+ &chanmon_cfgs[0].tx_broadcaster,
+ &chanmon_cfgs[0].fee_estimator,
+ );
+ let kv_store_1 = TestStore::new(false);
+ let persister_1 = MonitorUpdatingPersister::new(
+ &kv_store_1,
+ &chanmon_cfgs[1].logger,
+ max_pending_updates_1,
+ &chanmon_cfgs[1].keys_manager,
+ &chanmon_cfgs[1].keys_manager,
+ &chanmon_cfgs[1].tx_broadcaster,
+ &chanmon_cfgs[1].fee_estimator,
+ );
let mut node_cfgs = create_node_cfgs(2, &chanmon_cfgs);
let chain_mon_0 = test_utils::TestChainMonitor::new(
Some(&chanmon_cfgs[0].chain_source),
@@ -1258,7 +1260,7 @@ mod tests {
mon.get_latest_update_id() % max_pending_updates_0
};
let update_list = KVStoreSync::list(
- &*persister_0.kv_store,
+ &kv_store_0,
CHANNEL_MONITOR_UPDATE_PERSISTENCE_PRIMARY_NAMESPACE,
&monitor_name.to_string(),
);
@@ -1276,7 +1278,7 @@ mod tests {
mon.get_latest_update_id() % max_pending_updates_1
};
let update_list = KVStoreSync::list(
- &*persister_1.kv_store,
+ &kv_store_1,
CHANNEL_MONITOR_UPDATE_PERSISTENCE_PRIMARY_NAMESPACE,
&monitor_name.to_string(),
);
@@ -1381,15 +1383,16 @@ mod tests {
let cmu_map = nodes[1].chain_monitor.monitor_updates.lock().unwrap();
let cmu = &cmu_map.get(&added_monitors[0].1.channel_id()).unwrap()[0];
- let ro_persister = MonitorUpdatingPersister {
- kv_store: &TestStore::new(true),
- logger: &TestLogger::new(),
- maximum_pending_updates: 11,
- entropy_source: node_cfgs[0].keys_manager,
- signer_provider: node_cfgs[0].keys_manager,
- broadcaster: node_cfgs[0].tx_broadcaster,
- fee_estimator: node_cfgs[0].fee_estimator,
- };
+ let store = TestStore::new(true);
+ let ro_persister = MonitorUpdatingPersister::new(
+ &store,
+ node_cfgs[0].logger,
+ 11,
+ node_cfgs[0].keys_manager,
+ node_cfgs[0].keys_manager,
+ node_cfgs[0].tx_broadcaster,
+ node_cfgs[0].fee_estimator,
+ );
let monitor_name = added_monitors[0].1.persistence_key();
match ro_persister.persist_new_channel(monitor_name, &added_monitors[0].1) {
ChannelMonitorUpdateStatus::UnrecoverableError => {
@@ -1427,24 +1430,26 @@ mod tests {
fn clean_stale_updates_works() {
let test_max_pending_updates = 7;
let chanmon_cfgs = create_chanmon_cfgs(3);
- let persister_0 = MonitorUpdatingPersister {
- kv_store: &TestStore::new(false),
- logger: &TestLogger::new(),
- maximum_pending_updates: test_max_pending_updates,
- entropy_source: &chanmon_cfgs[0].keys_manager,
- signer_provider: &chanmon_cfgs[0].keys_manager,
- broadcaster: &chanmon_cfgs[0].tx_broadcaster,
- fee_estimator: &chanmon_cfgs[0].fee_estimator,
- };
- let persister_1 = MonitorUpdatingPersister {
- kv_store: &TestStore::new(false),
- logger: &TestLogger::new(),
- maximum_pending_updates: test_max_pending_updates,
- entropy_source: &chanmon_cfgs[1].keys_manager,
- signer_provider: &chanmon_cfgs[1].keys_manager,
- broadcaster: &chanmon_cfgs[1].tx_broadcaster,
- fee_estimator: &chanmon_cfgs[1].fee_estimator,
- };
+ let kv_store_0 = TestStore::new(false);
+ let persister_0 = MonitorUpdatingPersister::new(
+ &kv_store_0,
+ &chanmon_cfgs[0].logger,
+ test_max_pending_updates,
+ &chanmon_cfgs[0].keys_manager,
+ &chanmon_cfgs[0].keys_manager,
+ &chanmon_cfgs[0].tx_broadcaster,
+ &chanmon_cfgs[0].fee_estimator,
+ );
+ let kv_store_1 = TestStore::new(false);
+ let persister_1 = MonitorUpdatingPersister::new(
+ &kv_store_1,
+ &chanmon_cfgs[1].logger,
+ test_max_pending_updates,
+ &chanmon_cfgs[1].keys_manager,
+ &chanmon_cfgs[1].keys_manager,
+ &chanmon_cfgs[1].tx_broadcaster,
+ &chanmon_cfgs[1].fee_estimator,
+ );
let mut node_cfgs = create_node_cfgs(2, &chanmon_cfgs);
let chain_mon_0 = test_utils::TestChainMonitor::new(
Some(&chanmon_cfgs[0].chain_source),
@@ -1484,7 +1489,7 @@ mod tests {
let (_, monitor) = &persisted_chan_data[0];
let monitor_name = monitor.persistence_key();
KVStoreSync::write(
- &*persister_0.kv_store,
+ &kv_store_0,
CHANNEL_MONITOR_UPDATE_PERSISTENCE_PRIMARY_NAMESPACE,
&monitor_name.to_string(),
UpdateName::from(1).as_str(),
@@ -1497,7 +1502,7 @@ mod tests {
// Confirm the stale update is unreadable/gone
assert!(KVStoreSync::read(
- &*persister_0.kv_store,
+ &kv_store_0,
CHANNEL_MONITOR_UPDATE_PERSISTENCE_PRIMARY_NAMESPACE,
&monitor_name.to_string(),
UpdateName::from(1).as_str()
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.