Skip to content

Commit 987ef1c

Browse files
author
Antoine Riard
committed
-f more tests
1 parent eab9b34 commit 987ef1c

File tree

5 files changed

+55
-9
lines changed

5 files changed

+55
-9
lines changed

lightning/src/ln/chanmon_update_fail_tests.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2647,6 +2647,8 @@ fn test_temporary_error_during_shutdown() {
26472647
assert_eq!(txn_a, txn_b);
26482648
assert_eq!(txn_a.len(), 1);
26492649
check_spends!(txn_a[0], funding_tx);
2650+
check_closed_event!(nodes[1], 1);
2651+
check_closed_event!(nodes[0], 1);
26502652
}
26512653

26522654
#[test]
@@ -2667,6 +2669,7 @@ fn test_permanent_error_during_sending_shutdown() {
26672669
assert!(nodes[0].node.close_channel(&channel_id).is_ok());
26682670
check_closed_broadcast!(nodes[0], true);
26692671
check_added_monitors!(nodes[0], 2);
2672+
check_closed_event!(nodes[0], 1);
26702673
}
26712674

26722675
#[test]
@@ -2689,6 +2692,7 @@ fn test_permanent_error_during_handling_shutdown() {
26892692
nodes[1].node.handle_shutdown(&nodes[0].node.get_our_node_id(), &InitFeatures::known(), &shutdown);
26902693
check_closed_broadcast!(nodes[1], true);
26912694
check_added_monitors!(nodes[1], 2);
2695+
check_closed_event!(nodes[1], 1);
26922696
}
26932697

26942698
#[test]

lightning/src/ln/functional_tests.rs

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2581,11 +2581,15 @@ fn test_htlc_on_chain_success() {
25812581
added_monitors.clear();
25822582
}
25832583
let forwarded_events = nodes[1].node.get_and_clear_pending_events();
2584-
assert_eq!(forwarded_events.len(), 2);
2585-
if let Event::PaymentForwarded { fee_earned_msat: Some(1000), claim_from_onchain_tx: true } = forwarded_events[0] {
2586-
} else { panic!(); }
2584+
assert_eq!(forwarded_events.len(), 3);
2585+
match forwarded_events[0] {
2586+
Event::ChannelClosed { .. } => {}
2587+
_ => panic!("Unexpected event"),
2588+
}
25872589
if let Event::PaymentForwarded { fee_earned_msat: Some(1000), claim_from_onchain_tx: true } = forwarded_events[1] {
25882590
} else { panic!(); }
2591+
if let Event::PaymentForwarded { fee_earned_msat: Some(1000), claim_from_onchain_tx: true } = forwarded_events[2] {
2592+
} else { panic!(); }
25892593
let events = nodes[1].node.get_and_clear_pending_msg_events();
25902594
{
25912595
let mut added_monitors = nodes[1].chain_monitor.added_monitors.lock().unwrap();
@@ -2652,7 +2656,7 @@ fn test_htlc_on_chain_success() {
26522656
mine_transaction(&nodes[1], &node_a_commitment_tx[0]);
26532657
check_closed_broadcast!(nodes[1], true);
26542658
check_added_monitors!(nodes[1], 1);
2655-
check_closed_event!(nodes[1], 2);
2659+
check_closed_event!(nodes[1], 1);
26562660
let node_txn = nodes[1].tx_broadcaster.txn_broadcasted.lock().unwrap().clone();
26572661
assert_eq!(node_txn.len(), 6); // ChannelManager : 3 (commitment tx + HTLC-Sucess * 2), ChannelMonitor : 3 (HTLC-Success, 2* RBF bumps of above HTLC txn)
26582662
let commitment_spend =
@@ -5079,7 +5083,19 @@ fn test_onchain_to_onchain_claim() {
50795083
let header = BlockHeader { version: 0x20000000, prev_blockhash: nodes[1].best_block_hash(), merkle_root: Default::default(), time: 42, bits: 42, nonce: 42};
50805084
connect_block(&nodes[1], &Block { header, txdata: vec![c_txn[1].clone(), c_txn[2].clone()]});
50815085
check_added_monitors!(nodes[1], 1);
5082-
expect_payment_forwarded!(nodes[1], Some(1000), true);
5086+
let events = nodes[1].node.get_and_clear_pending_events();
5087+
assert_eq!(events.len(), 2);
5088+
match events[0] {
5089+
Event::ChannelClosed { .. } => {}
5090+
_ => panic!("Unexpected event"),
5091+
}
5092+
match events[1] {
5093+
Event::PaymentForwarded { fee_earned_msat, claim_from_onchain_tx } => {
5094+
assert_eq!(fee_earned_msat, Some(1000));
5095+
assert_eq!(claim_from_onchain_tx, true);
5096+
},
5097+
_ => panic!("Unexpected event"),
5098+
}
50835099
{
50845100
let mut b_txn = nodes[1].tx_broadcaster.txn_broadcasted.lock().unwrap();
50855101
// ChannelMonitor: claim tx
@@ -5088,10 +5104,8 @@ fn test_onchain_to_onchain_claim() {
50885104
b_txn.clear();
50895105
}
50905106
check_added_monitors!(nodes[1], 1);
5091-
check_closed_event!(nodes[1], 1);
50925107
let msg_events = nodes[1].node.get_and_clear_pending_msg_events();
50935108
assert_eq!(msg_events.len(), 3);
5094-
check_added_monitors!(nodes[1], 1);
50955109
match msg_events[0] {
50965110
MessageSendEvent::BroadcastChannelUpdate { .. } => {},
50975111
_ => panic!("Unexpected event"),

lightning/src/ln/monitor_tests.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ fn chanmon_fail_from_stale_commitment() {
6565
nodes[1].node.handle_update_add_htlc(&nodes[0].node.get_our_node_id(), &updates.update_add_htlcs[0]);
6666
commitment_signed_dance!(nodes[1], nodes[0], updates.commitment_signed, false);
6767

68-
let events = nodes[0].node.get_and_clear_pending_events();
68+
let events = nodes[1].node.get_and_clear_pending_events();
6969
expect_pending_htlcs_forwardable!(nodes[1], events);
7070
get_htlc_update_msgs!(nodes[1], nodes[2].node.get_our_node_id());
7171
check_added_monitors!(nodes[1], 1);
@@ -75,10 +75,11 @@ fn chanmon_fail_from_stale_commitment() {
7575
mine_transaction(&nodes[1], &bs_txn[0]);
7676
check_added_monitors!(nodes[1], 1);
7777
check_closed_broadcast!(nodes[1], true);
78+
check_closed_event!(nodes[1], 1);
7879
assert!(nodes[1].node.get_and_clear_pending_msg_events().is_empty());
7980

8081
connect_blocks(&nodes[1], ANTI_REORG_DELAY - 1);
81-
let events = nodes[0].node.get_and_clear_pending_events();
82+
let events = nodes[1].node.get_and_clear_pending_events();
8283
expect_pending_htlcs_forwardable!(nodes[1], events);
8384
check_added_monitors!(nodes[1], 1);
8485
let fail_updates = get_htlc_update_msgs!(nodes[1], nodes[0].node.get_our_node_id());

lightning/src/ln/reorg_tests.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -468,9 +468,11 @@ fn do_test_to_remote_after_local_detection(style: ConnectStyle) {
468468
assert!(nodes[0].node.list_channels().is_empty());
469469
check_closed_broadcast!(nodes[0], true);
470470
check_added_monitors!(nodes[0], 1);
471+
check_closed_event!(nodes[0], 1);
471472
assert!(nodes[1].node.list_channels().is_empty());
472473
check_closed_broadcast!(nodes[1], true);
473474
check_added_monitors!(nodes[1], 1);
475+
check_closed_event!(nodes[1], 1);
474476

475477
// Drop transactions broadcasted in response to the first commitment transaction (we have good
476478
// test coverage of these things already elsewhere).

lightning/src/ln/shutdown_tests.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ fn pre_funding_lock_shutdown_test() {
6767

6868
assert!(nodes[0].node.list_channels().is_empty());
6969
assert!(nodes[1].node.list_channels().is_empty());
70+
check_closed_event!(nodes[0], 1);
71+
check_closed_event!(nodes[1], 1);
7072
}
7173

7274
#[test]
@@ -139,6 +141,8 @@ fn updates_shutdown_wait() {
139141
nodes[1].node.handle_closing_signed(&nodes[0].node.get_our_node_id(), &node_0_2nd_closing_signed.unwrap());
140142
let (_, node_1_none) = get_closing_signed_broadcast!(nodes[1].node, nodes[0].node.get_our_node_id());
141143
assert!(node_1_none.is_none());
144+
check_closed_event!(nodes[0], 1);
145+
check_closed_event!(nodes[1], 1);
142146

143147
assert!(nodes[0].node.list_channels().is_empty());
144148

@@ -147,6 +151,8 @@ fn updates_shutdown_wait() {
147151
close_channel(&nodes[1], &nodes[2], &chan_2.2, chan_2.3, true);
148152
assert!(nodes[1].node.list_channels().is_empty());
149153
assert!(nodes[2].node.list_channels().is_empty());
154+
check_closed_event!(nodes[1], 1);
155+
check_closed_event!(nodes[2], 1);
150156
}
151157

152158
#[test]
@@ -221,6 +227,9 @@ fn htlc_fail_async_shutdown() {
221227
close_channel(&nodes[1], &nodes[2], &chan_2.2, chan_2.3, true);
222228
assert!(nodes[1].node.list_channels().is_empty());
223229
assert!(nodes[2].node.list_channels().is_empty());
230+
check_closed_event!(nodes[0], 1);
231+
check_closed_event!(nodes[1], 2);
232+
check_closed_event!(nodes[2], 1);
224233
}
225234

226235
fn do_test_shutdown_rebroadcast(recv_count: u8) {
@@ -359,6 +368,7 @@ fn do_test_shutdown_rebroadcast(recv_count: u8) {
359368
nodes[1].node.handle_closing_signed(&nodes[0].node.get_our_node_id(), &node_0_2nd_closing_signed.unwrap());
360369
let (_, node_1_none) = get_closing_signed_broadcast!(nodes[1].node, nodes[0].node.get_our_node_id());
361370
assert!(node_1_none.is_none());
371+
check_closed_event!(nodes[1], 1);
362372
} else {
363373
// If one node, however, received + responded with an identical closing_signed we end
364374
// up erroring and node[0] will try to broadcast its own latest commitment transaction.
@@ -387,6 +397,7 @@ fn do_test_shutdown_rebroadcast(recv_count: u8) {
387397
// closing_signed so we do it ourselves
388398
check_closed_broadcast!(nodes[1], false);
389399
check_added_monitors!(nodes[1], 1);
400+
check_closed_event!(nodes[1], 1);
390401
}
391402

392403
assert!(nodes[0].node.list_channels().is_empty());
@@ -396,6 +407,9 @@ fn do_test_shutdown_rebroadcast(recv_count: u8) {
396407
close_channel(&nodes[1], &nodes[2], &chan_2.2, chan_2.3, true);
397408
assert!(nodes[1].node.list_channels().is_empty());
398409
assert!(nodes[2].node.list_channels().is_empty());
410+
check_closed_event!(nodes[0], 1);
411+
check_closed_event!(nodes[1], 1);
412+
check_closed_event!(nodes[2], 1);
399413
}
400414

401415
#[test]
@@ -489,6 +503,7 @@ fn test_upfront_shutdown_script() {
489503
MessageSendEvent::SendClosingSigned { node_id, .. } => { assert_eq!(node_id, nodes[1].node.get_our_node_id()) }
490504
_ => panic!("Unexpected event"),
491505
}
506+
check_closed_event!(nodes[2], 1);
492507
}
493508

494509
#[test]
@@ -538,6 +553,7 @@ fn test_unsupported_anysegwit_upfront_shutdown_script() {
538553
},
539554
_ => panic!("Unexpected event"),
540555
}
556+
check_closed_event!(nodes[0], 1);
541557
}
542558

543559
#[test]
@@ -685,6 +701,7 @@ fn test_unsupported_anysegwit_shutdown_script() {
685701
_ => panic!("Unexpected event"),
686702
}
687703
check_added_monitors!(nodes[0], 1);
704+
check_closed_event!(nodes[0], 1);
688705
}
689706

690707
#[test]
@@ -720,6 +737,7 @@ fn test_invalid_shutdown_script() {
720737
_ => panic!("Unexpected event"),
721738
}
722739
check_added_monitors!(nodes[0], 1);
740+
check_closed_event!(nodes[0], 1);
723741
}
724742

725743
#[derive(PartialEq)]
@@ -785,7 +803,9 @@ fn do_test_closing_signed_reinit_timeout(timeout_step: TimeoutStep) {
785803
let node_0_2nd_closing_signed = get_closing_signed_broadcast!(nodes[0].node, nodes[1].node.get_our_node_id());
786804
if timeout_step == TimeoutStep::NoTimeout {
787805
nodes[1].node.handle_closing_signed(&nodes[0].node.get_our_node_id(), &node_0_2nd_closing_signed.1.unwrap());
806+
check_closed_event!(nodes[1], 1);
788807
}
808+
check_closed_event!(nodes[0], 1);
789809
}
790810

791811
if timeout_step != TimeoutStep::NoTimeout {
@@ -808,6 +828,7 @@ fn do_test_closing_signed_reinit_timeout(timeout_step: TimeoutStep) {
808828
txn[0].output[0].script_pubkey.is_v0_p2wsh()));
809829
check_closed_broadcast!(nodes[1], true);
810830
check_added_monitors!(nodes[1], 1);
831+
check_closed_event!(nodes[1], 1);
811832
} else {
812833
assert!(txn[0].output[0].script_pubkey.is_v0_p2wpkh());
813834
assert!(txn[0].output[1].script_pubkey.is_v0_p2wpkh());
@@ -867,6 +888,8 @@ fn do_simple_legacy_shutdown_test(high_initiator_fee: bool) {
867888
nodes[0].node.handle_closing_signed(&nodes[1].node.get_our_node_id(), &node_1_closing_signed.unwrap());
868889
let (_, node_0_none) = get_closing_signed_broadcast!(nodes[0].node, nodes[1].node.get_our_node_id());
869890
assert!(node_0_none.is_none());
891+
check_closed_event!(nodes[0], 1);
892+
check_closed_event!(nodes[1], 1);
870893
}
871894

872895
#[test]
@@ -920,4 +943,6 @@ fn simple_target_feerate_shutdown() {
920943
nodes[0].node.handle_closing_signed(&nodes[1].node.get_our_node_id(), &node_1_closing_signed);
921944
let (_, node_0_none) = get_closing_signed_broadcast!(nodes[0].node, nodes[1].node.get_our_node_id());
922945
assert!(node_0_none.is_none());
946+
check_closed_event!(nodes[0], 1);
947+
check_closed_event!(nodes[1], 1);
923948
}

0 commit comments

Comments
 (0)