Skip to content

Commit 423c1dc

Browse files
authored
Merge pull request #4561 from joostjager/fuzz-disable-splices
fuzz: skip broken splicing paths and handle broadcast channel updates
2 parents a67a3f6 + 9f59b33 commit 423c1dc

2 files changed

Lines changed: 30 additions & 0 deletions

File tree

fuzz/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,5 @@ check-cfg = [
6262
"cfg(fuzzing)",
6363
"cfg(secp256k1_fuzz)",
6464
"cfg(hashes_fuzz)",
65+
"cfg(splicing)",
6566
]

fuzz/src/chanmon_consistency.rs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1333,7 +1333,9 @@ pub fn do_test<Out: Output + MaybeSend + MaybeSync>(data: &[u8], out: Out) {
13331333
let (node_c, mut monitor_c, keys_manager_c, logger_c) = make_node!(2, fee_est_c, broadcast_c);
13341334

13351335
let mut nodes = [node_a, node_b, node_c];
1336+
#[allow(unused_variables)]
13361337
let loggers = [logger_a, logger_b, logger_c];
1338+
#[allow(unused_variables)]
13371339
let fee_estimators = [Arc::clone(&fee_est_a), Arc::clone(&fee_est_b), Arc::clone(&fee_est_c)];
13381340

13391341
// Connect peers first, then create channels
@@ -1608,6 +1610,7 @@ pub fn do_test<Out: Output + MaybeSend + MaybeSync>(data: &[u8], out: Out) {
16081610
},
16091611
MessageSendEvent::SendChannelReady { .. } => continue,
16101612
MessageSendEvent::SendAnnouncementSignatures { .. } => continue,
1613+
MessageSendEvent::BroadcastChannelUpdate { .. } => continue,
16111614
MessageSendEvent::SendChannelUpdate { ref node_id, .. } => {
16121615
if Some(*node_id) == expect_drop_id { panic!("peer_disconnected should drop msgs bound for the disconnected peer"); }
16131616
*node_id == a_id
@@ -1894,6 +1897,7 @@ pub fn do_test<Out: Output + MaybeSend + MaybeSync>(data: &[u8], out: Out) {
18941897
MessageSendEvent::SendStfu { .. } => {},
18951898
MessageSendEvent::SendChannelReady { .. } => {},
18961899
MessageSendEvent::SendAnnouncementSignatures { .. } => {},
1900+
MessageSendEvent::BroadcastChannelUpdate { .. } => {},
18971901
MessageSendEvent::SendChannelUpdate { .. } => {},
18981902
MessageSendEvent::HandleError { ref action, .. } => {
18991903
assert_action_timeout_awaiting_response(action);
@@ -1916,6 +1920,7 @@ pub fn do_test<Out: Output + MaybeSend + MaybeSync>(data: &[u8], out: Out) {
19161920
MessageSendEvent::SendStfu { .. } => {},
19171921
MessageSendEvent::SendChannelReady { .. } => {},
19181922
MessageSendEvent::SendAnnouncementSignatures { .. } => {},
1923+
MessageSendEvent::BroadcastChannelUpdate { .. } => {},
19191924
MessageSendEvent::SendChannelUpdate { .. } => {},
19201925
MessageSendEvent::HandleError { ref action, .. } => {
19211926
assert_action_timeout_awaiting_response(action);
@@ -2423,52 +2428,76 @@ pub fn do_test<Out: Output + MaybeSend + MaybeSync>(data: &[u8], out: Out) {
24232428
},
24242429

24252430
0xa0 => {
2431+
if !cfg!(splicing) {
2432+
test_return!();
2433+
}
24262434
let cp_node_id = nodes[1].get_our_node_id();
24272435
let wallet = WalletSync::new(&wallets[0], Arc::clone(&loggers[0]));
24282436
let feerate_sat_per_kw = fee_estimators[0].feerate_sat_per_kw();
24292437
splice_in(&nodes[0], &cp_node_id, &chan_a_id, &wallet, feerate_sat_per_kw);
24302438
},
24312439
0xa1 => {
2440+
if !cfg!(splicing) {
2441+
test_return!();
2442+
}
24322443
let cp_node_id = nodes[0].get_our_node_id();
24332444
let wallet = WalletSync::new(&wallets[1], Arc::clone(&loggers[1]));
24342445
let feerate_sat_per_kw = fee_estimators[1].feerate_sat_per_kw();
24352446
splice_in(&nodes[1], &cp_node_id, &chan_a_id, &wallet, feerate_sat_per_kw);
24362447
},
24372448
0xa2 => {
2449+
if !cfg!(splicing) {
2450+
test_return!();
2451+
}
24382452
let cp_node_id = nodes[2].get_our_node_id();
24392453
let wallet = WalletSync::new(&wallets[1], Arc::clone(&loggers[1]));
24402454
let feerate_sat_per_kw = fee_estimators[1].feerate_sat_per_kw();
24412455
splice_in(&nodes[1], &cp_node_id, &chan_b_id, &wallet, feerate_sat_per_kw);
24422456
},
24432457
0xa3 => {
2458+
if !cfg!(splicing) {
2459+
test_return!();
2460+
}
24442461
let cp_node_id = nodes[1].get_our_node_id();
24452462
let wallet = WalletSync::new(&wallets[2], Arc::clone(&loggers[2]));
24462463
let feerate_sat_per_kw = fee_estimators[2].feerate_sat_per_kw();
24472464
splice_in(&nodes[2], &cp_node_id, &chan_b_id, &wallet, feerate_sat_per_kw);
24482465
},
24492466

24502467
0xa4 => {
2468+
if !cfg!(splicing) {
2469+
test_return!();
2470+
}
24512471
let cp_node_id = nodes[1].get_our_node_id();
24522472
let wallet = &wallets[0];
24532473
let logger = Arc::clone(&loggers[0]);
24542474
let feerate_sat_per_kw = fee_estimators[0].feerate_sat_per_kw();
24552475
splice_out(&nodes[0], &cp_node_id, &chan_a_id, wallet, logger, feerate_sat_per_kw);
24562476
},
24572477
0xa5 => {
2478+
if !cfg!(splicing) {
2479+
test_return!();
2480+
}
24582481
let cp_node_id = nodes[0].get_our_node_id();
24592482
let wallet = &wallets[1];
24602483
let logger = Arc::clone(&loggers[1]);
24612484
let feerate_sat_per_kw = fee_estimators[1].feerate_sat_per_kw();
24622485
splice_out(&nodes[1], &cp_node_id, &chan_a_id, wallet, logger, feerate_sat_per_kw);
24632486
},
24642487
0xa6 => {
2488+
if !cfg!(splicing) {
2489+
test_return!();
2490+
}
24652491
let cp_node_id = nodes[2].get_our_node_id();
24662492
let wallet = &wallets[1];
24672493
let logger = Arc::clone(&loggers[1]);
24682494
let feerate_sat_per_kw = fee_estimators[1].feerate_sat_per_kw();
24692495
splice_out(&nodes[1], &cp_node_id, &chan_b_id, wallet, logger, feerate_sat_per_kw);
24702496
},
24712497
0xa7 => {
2498+
if !cfg!(splicing) {
2499+
test_return!();
2500+
}
24722501
let cp_node_id = nodes[1].get_our_node_id();
24732502
let wallet = &wallets[2];
24742503
let logger = Arc::clone(&loggers[2]);

0 commit comments

Comments
 (0)