channeld: Add aggressive restart test

Changelog-None
This commit is contained in:
Dusty Daemon 2024-02-15 15:08:24 -05:00 committed by Rusty Russell
parent cb2163e439
commit 4500661bbf
2 changed files with 35 additions and 0 deletions

View File

@ -1149,6 +1149,20 @@ class LightningRpc(UnixDomainSocketRpc):
} }
return self.call("dev-splice", payload) return self.call("dev-splice", payload)
def stfu_channels(self, channel_ids):
""" STFU multiple channels """
payload = {
"channel_ids": channel_ids,
}
return self.call("stfu_channels", payload)
def abort_channels(self, channel_ids):
""" Abort multiple channels """
payload = {
"channel_ids": channel_ids,
}
return self.call("abort_channels", payload)
def splice_init(self, chan_id, amount, initialpsbt=None, feerate_per_kw=None): def splice_init(self, chan_id, amount, initialpsbt=None, feerate_per_kw=None):
""" Initiate a splice """ """ Initiate a splice """
payload = { payload = {

21
tests/test_restart.py Normal file
View File

@ -0,0 +1,21 @@
from fixtures import * # noqa: F401,F403
import pytest
import unittest
from utils import (
TEST_NETWORK
)
@pytest.mark.openchannel('v1')
@pytest.mark.openchannel('v2')
@unittest.skipIf(TEST_NETWORK != 'regtest', 'elementsd doesnt yet support PSBT features we need')
def test_agressive_restart(node_factory, bitcoind):
l1, l2 = node_factory.line_graph(2, fundamount=1000000, wait_for_announce=True, opts={'experimental-splicing': None})
chan_id = l1.get_channel_id(l2)
for _ in range(20):
l1.rpc.stfu_channels([chan_id])
l1.rpc.abort_channels([chan_id])
l1.daemon.wait_for_log(r'peer_in WIRE_CHANNEL_REESTABLISH')
l2.daemon.wait_for_log(r'peer_in WIRE_CHANNEL_REESTABLISH')