Skip to content

Commit d4a541c

Browse files
committed
pytest: test for splicing while channel is not announced yet.
``` DEBUG lightningd: Got depth change 2->3 for e9e31956f77c3844ee2e6e4607dbfebdee95a9aa549668a7a429b8246a6a29de **BROKEN** lightningd: FATAL SIGNAL 6 (version v25.09-20-g003ba4a) **BROKEN** lightningd: backtrace: common/daemon.c:41 (send_backtrace) 0x619bef20e274 **BROKEN** lightningd: backtrace: common/daemon.c:78 (crashdump) 0x619bef20e408 **BROKEN** lightningd: backtrace: ./signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0 ((null)) 0x7a1ccf24532f **BROKEN** lightningd: backtrace: ./nptl/pthread_kill.c:44 (__pthread_kill_implementation) 0x7a1ccf29eb2c **BROKEN** lightningd: backtrace: ./nptl/pthread_kill.c:78 (__pthread_kill_internal) 0x7a1ccf29eb2c **BROKEN** lightningd: backtrace: ./nptl/pthread_kill.c:89 (__GI___pthread_kill) 0x7a1ccf29eb2c **BROKEN** lightningd: backtrace: ../sysdeps/posix/raise.c:26 (__GI_raise) 0x7a1ccf24527d **BROKEN** lightningd: backtrace: ./stdlib/abort.c:79 (__GI_abort) 0x7a1ccf2288fe **BROKEN** lightningd: backtrace: ./assert/assert.c:96 (__assert_fail_base) 0x7a1ccf22881a **BROKEN** lightningd: backtrace: ./assert/assert.c:105 (__assert_fail) 0x7a1ccf23b516 **BROKEN** lightningd: backtrace: lightningd/peer_control.c:2202 (funding_depth_cb) 0x619bef1ac497 **BROKEN** lightningd: backtrace: lightningd/watch.c:223 (txw_fire) 0x619bef1cfcbf **BROKEN** lightningd: backtrace: lightningd/watch.c:292 (watch_topology_changed) 0x619bef1cffa4 **BROKEN** lightningd: backtrace: lightningd/chaintopology.c:829 (updates_complete) 0x619bef144a8c **BROKEN** lightningd: backtrace: lightningd/chaintopology.c:1047 (get_new_block) 0x619bef14561e ``` Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
1 parent 29999ef commit d4a541c

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

tests/test_splicing.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -556,3 +556,31 @@ def test_route_by_old_scid(node_factory, bitcoind):
556556
wait_for(lambda: only_one(l1.rpc.listpeers()['peers'])['connected'] is True)
557557
l1.rpc.sendpay(route, inv2['payment_hash'], payment_secret=inv2['payment_secret'])
558558
l1.rpc.waitsendpay(inv2['payment_hash'])
559+
560+
561+
@pytest.mark.xfail(strict=True)
562+
@unittest.skipIf(TEST_NETWORK != 'regtest', 'elementsd doesnt yet support PSBT features we need')
563+
def test_splice_unannounced(node_factory, bitcoind):
564+
l1, l2 = node_factory.line_graph(2, fundamount=1000000, wait_for_announce=False, opts={'experimental-splicing': None})
565+
566+
chan_id = l1.get_channel_id(l2)
567+
568+
# add extra sats to pay fee
569+
funds_result = l1.rpc.fundpsbt("109000sat", "slow", 166, excess_as_change=True)
570+
result = l1.rpc.splice_init(chan_id, 100000, funds_result['psbt'])
571+
result = l1.rpc.splice_update(chan_id, result['psbt'])
572+
assert(result['commitments_secured'] is False)
573+
result = l1.rpc.splice_update(chan_id, result['psbt'])
574+
assert(result['commitments_secured'] is True)
575+
result = l1.rpc.signpsbt(result['psbt'])
576+
result = l1.rpc.splice_signed(chan_id, result['signed_psbt'])
577+
578+
l2.daemon.wait_for_log(r'CHANNELD_NORMAL to CHANNELD_AWAITING_SPLICE')
579+
l1.daemon.wait_for_log(r'CHANNELD_NORMAL to CHANNELD_AWAITING_SPLICE')
580+
581+
bitcoind.generate_block(1, wait_for_mempool=1)
582+
583+
l2.daemon.wait_for_log(r'CHANNELD_AWAITING_SPLICE to CHANNELD_NORMAL')
584+
l1.daemon.wait_for_log(r'CHANNELD_AWAITING_SPLICE to CHANNELD_NORMAL')
585+
bitcoind.generate_block(1)
586+
sync_blockheight(bitcoind, [l1, l2])

0 commit comments

Comments
 (0)