Skip to content

Commit a20cd5c

Browse files
committed
Test for add_random_cltv_offset.
1 parent d79d0a0 commit a20cd5c

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

lightning/src/routing/router.rs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1611,7 +1611,7 @@ fn add_random_cltv_offset(route: &mut Route, payment_params: &PaymentParameters,
16111611
mod tests {
16121612
use routing::scoring::{ProbabilisticScorer, ProbabilisticScoringParameters, Score};
16131613
use routing::network_graph::{NetworkGraph, NetGraphMsgHandler, NodeId};
1614-
use routing::router::{get_route, PaymentParameters, Route, RouteHint, RouteHintHop, RouteHop, RoutingFees};
1614+
use routing::router::{get_route, add_random_cltv_offset, PaymentParameters, Route, RouteHint, RouteHintHop, RouteHop, RoutingFees, DEFAULT_MAX_TOTAL_CLTV_EXPIRY_DELTA};
16151615
use chain::transaction::OutPoint;
16161616
use chain::keysinterface::KeysInterface;
16171617
use ln::features::{ChannelFeatures, InitFeatures, InvoiceFeatures, NodeFeatures};
@@ -5020,6 +5020,26 @@ mod tests {
50205020
Ok(_) => panic!("Expected error"),
50215021
}
50225022
}
5023+
#[test]
5024+
fn adds_cltv_offset() {
5025+
let (secp_ctx, network_graph, _, _, logger) = build_graph();
5026+
let (_, our_id, _, nodes) = get_nodes(&secp_ctx);
5027+
5028+
let scorer = test_utils::TestScorer::with_penalty(0);
5029+
5030+
let payment_params = PaymentParameters::from_node_id(nodes[6]).with_route_hints(last_hops(&nodes));
5031+
let keys_manager = test_utils::TestKeysInterface::new(&[0u8;32], Network::Testnet);
5032+
let random_seed_bytes = keys_manager.get_secure_random_bytes();
5033+
let mut route = get_route(&our_id, &payment_params, &network_graph, None, 100, 42, Arc::clone(&logger), &scorer, &random_seed_bytes).unwrap();
5034+
let cltv_expiry_deltas_before: Vec<u32> = route.paths.iter().flat_map(|p| p.iter().map(|h| h.cltv_expiry_delta).collect::<Vec<u32>>()).collect::<Vec<u32>>();
5035+
add_random_cltv_offset(&mut route, &payment_params, &network_graph, &random_seed_bytes);
5036+
let cltv_expiry_deltas_after: Vec<u32> = route.paths.iter().flat_map(|p| p.iter().map(|h| h.cltv_expiry_delta).collect::<Vec<u32>>()).collect::<Vec<u32>>();
5037+
assert_eq!(cltv_expiry_deltas_before.len(), cltv_expiry_deltas_after.len());
5038+
for i in 0..cltv_expiry_deltas_before.len() {
5039+
assert!(cltv_expiry_deltas_after[i] >= cltv_expiry_deltas_before[i]);
5040+
assert!(cltv_expiry_deltas_after[i] <= DEFAULT_MAX_TOTAL_CLTV_EXPIRY_DELTA);
5041+
}
5042+
}
50235043

50245044
#[cfg(not(feature = "no-std"))]
50255045
pub(super) fn random_init_seed() -> u64 {

0 commit comments

Comments
 (0)