Set `channel_update` disable bit based on staged even for onions
[rust-lightning] / lightning / src / ln / onion_route_tests.rs
index 743d41eea1ba731ca96ac0114a443660fe1f1738..c7fae84af53875f3c526daa5ed6a157bbe7e8c9a 100644 (file)
@@ -587,6 +587,15 @@ fn test_onion_failure() {
                // disconnect event to the channel between nodes[1] ~ nodes[2]
                nodes[1].node.peer_disconnected(&nodes[2].node.get_our_node_id());
                nodes[2].node.peer_disconnected(&nodes[1].node.get_our_node_id());
+       }, true, Some(UPDATE|7), Some(NetworkUpdate::ChannelUpdateMessage{msg: ChannelUpdate::dummy(short_channel_id)}), Some(short_channel_id));
+       run_onion_failure_test("channel_disabled", 0, &nodes, &route, &payment_hash, &payment_secret, |_| {}, || {
+               // Tick the timer twice on each node to mark the channel as disabled.
+               nodes[1].node.timer_tick_occurred();
+               nodes[1].node.timer_tick_occurred();
+               nodes[1].node.get_and_clear_pending_msg_events();
+               nodes[2].node.timer_tick_occurred();
+               nodes[2].node.timer_tick_occurred();
+               nodes[2].node.get_and_clear_pending_msg_events();
        }, true, Some(UPDATE|20), Some(NetworkUpdate::ChannelUpdateMessage{msg: ChannelUpdate::dummy(short_channel_id)}), Some(short_channel_id));
        reconnect_nodes(&nodes[1], &nodes[2], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));