Skip to content

Commit 8a9f0b8

Browse files
committed
Also benchmark sending funds with a FilesystemPersister
1 parent 7806256 commit 8a9f0b8

File tree

5 files changed

+31
-9
lines changed

5 files changed

+31
-9
lines changed

lightning-persister/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ description = """
88
Utilities to manage Rust-Lightning channel data persistence and retrieval.
99
"""
1010

11+
[features]
12+
unstable = ["lightning/unstable"]
13+
1114
[dependencies]
1215
bitcoin = "0.26"
1316
lightning = { version = "0.0.13", path = "../lightning" }

lightning-persister/src/lib.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
#![deny(broken_intra_doc_links)]
44
#![deny(missing_docs)]
55

6+
#![cfg_attr(all(test, feature = "unstable"), feature(test))]
7+
#[cfg(all(test, feature = "unstable"))] extern crate test;
8+
69
mod util;
710

811
extern crate lightning;
@@ -330,3 +333,15 @@ mod tests {
330333
added_monitors.clear();
331334
}
332335
}
336+
337+
#[cfg(all(test, feature = "unstable"))]
338+
pub mod bench {
339+
use test::Bencher;
340+
341+
#[bench]
342+
fn bench_sends(bench: &mut Bencher) {
343+
let persister_a = super::FilesystemPersister::new("bench_filesystem_persister_a".to_string());
344+
let persister_b = super::FilesystemPersister::new("bench_filesystem_persister_b".to_string());
345+
lightning::ln::channelmanager::bench::bench_two_sends(bench, persister_a, persister_b);
346+
}
347+
}

lightning/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828
#![allow(bare_trait_objects)]
2929
#![allow(ellipsis_inclusive_range_patterns)]
3030

31-
#![cfg_attr(all(test, feature = "unstable"), feature(test))]
32-
#[cfg(all(test, feature = "unstable"))] extern crate test;
31+
#![cfg_attr(all(any(test, feature = "_test_utils"), feature = "unstable"), feature(test))]
32+
#[cfg(all(any(test, feature = "_test_utils"), feature = "unstable"))] extern crate test;
3333

3434
extern crate bitcoin;
3535
#[cfg(any(test, feature = "_test_utils"))] extern crate hex;

lightning/src/ln/channelmanager.rs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4408,10 +4408,11 @@ mod tests {
44084408
}
44094409
}
44104410

4411-
#[cfg(all(test, feature = "unstable"))]
4412-
mod benches {
4411+
#[cfg(all(any(test, feature = "_test_utils"), feature = "unstable"))]
4412+
pub mod bench {
44134413
use chain::Listen;
44144414
use chain::chainmonitor::ChainMonitor;
4415+
use chain::channelmonitor::Persist;
44154416
use chain::keysinterface::{KeysManager, InMemorySigner};
44164417
use chain::transaction::OutPoint;
44174418
use ln::channelmanager::{ChainParameters, ChannelManager, PaymentHash, PaymentPreimage};
@@ -4432,17 +4433,22 @@ mod benches {
44324433

44334434
use test::Bencher;
44344435

4435-
struct NodeHolder<'a> {
4436+
struct NodeHolder<'a, P: Persist<InMemorySigner>> {
44364437
node: &'a ChannelManager<InMemorySigner,
44374438
&'a ChainMonitor<InMemorySigner, &'a test_utils::TestChainSource,
44384439
&'a test_utils::TestBroadcaster, &'a test_utils::TestFeeEstimator,
4439-
&'a test_utils::TestLogger, &'a test_utils::TestPersister>,
4440+
&'a test_utils::TestLogger, &'a P>,
44404441
&'a test_utils::TestBroadcaster, &'a KeysManager,
44414442
&'a test_utils::TestFeeEstimator, &'a test_utils::TestLogger>
44424443
}
44434444

4445+
#[cfg(test)]
44444446
#[bench]
44454447
fn bench_sends(bench: &mut Bencher) {
4448+
bench_two_sends(bench, test_utils::TestPersister::new(), test_utils::TestPersister::new());
4449+
}
4450+
4451+
pub fn bench_two_sends<P: Persist<InMemorySigner>>(bench: &mut Bencher, persister_a: P, persister_b: P) {
44464452
// Do a simple benchmark of sending a payment back and forth between two nodes.
44474453
// Note that this is unrealistic as each payment send will require at least two fsync
44484454
// calls per node.
@@ -4456,7 +4462,6 @@ mod benches {
44564462
config.own_channel_config.minimum_depth = 1;
44574463

44584464
let logger_a = test_utils::TestLogger::with_id("node a".to_owned());
4459-
let persister_a = test_utils::TestPersister::new();
44604465
let chain_monitor_a = ChainMonitor::new(None, &tx_broadcaster, &logger_a, &fee_estimator, &persister_a);
44614466
let seed_a = [1u8; 32];
44624467
let keys_manager_a = KeysManager::new(&seed_a, 42, 42);
@@ -4468,7 +4473,6 @@ mod benches {
44684473
let node_a_holder = NodeHolder { node: &node_a };
44694474

44704475
let logger_b = test_utils::TestLogger::with_id("node a".to_owned());
4471-
let persister_b = test_utils::TestPersister::new();
44724476
let chain_monitor_b = ChainMonitor::new(None, &tx_broadcaster, &logger_a, &fee_estimator, &persister_b);
44734477
let seed_b = [2u8; 32];
44744478
let keys_manager_b = KeysManager::new(&seed_b, 42, 42);

lightning/src/ln/functional_test_utils.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -866,7 +866,7 @@ macro_rules! expect_pending_htlcs_forwardable {
866866
}}
867867
}
868868

869-
#[cfg(test)]
869+
#[cfg(any(test, feature = "unstable"))]
870870
macro_rules! expect_payment_received {
871871
($node: expr, $expected_payment_hash: expr, $expected_recv_value: expr) => {
872872
let events = $node.node.get_and_clear_pending_events();

0 commit comments

Comments
 (0)