Skip to content

Commit 9d76481

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 16252fd commit 9d76481

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

tests/test_splicing.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -551,3 +551,30 @@ def test_route_by_old_scid(node_factory, bitcoind):
551551
wait_for(lambda: only_one(l1.rpc.listpeers()['peers'])['connected'] is True)
552552
l1.rpc.sendpay(route, inv2['payment_hash'], payment_secret=inv2['payment_secret'])
553553
l1.rpc.waitsendpay(inv2['payment_hash'])
554+
555+
556+
@pytest.mark.xfail(strict=True)
557+
def test_splice_unannounced(node_factory, bitcoind):
558+
l1, l2 = node_factory.line_graph(2, fundamount=1000000, wait_for_announce=False, opts={'experimental-splicing': None})
559+
560+
chan_id = l1.get_channel_id(l2)
561+
562+
# add extra sats to pay fee
563+
funds_result = l1.rpc.fundpsbt("109000sat", "slow", 166, excess_as_change=True)
564+
result = l1.rpc.splice_init(chan_id, 100000, funds_result['psbt'])
565+
result = l1.rpc.splice_update(chan_id, result['psbt'])
566+
assert(result['commitments_secured'] is False)
567+
result = l1.rpc.splice_update(chan_id, result['psbt'])
568+
assert(result['commitments_secured'] is True)
569+
result = l1.rpc.signpsbt(result['psbt'])
570+
result = l1.rpc.splice_signed(chan_id, result['signed_psbt'])
571+
572+
l2.daemon.wait_for_log(r'CHANNELD_NORMAL to CHANNELD_AWAITING_SPLICE')
573+
l1.daemon.wait_for_log(r'CHANNELD_NORMAL to CHANNELD_AWAITING_SPLICE')
574+
575+
bitcoind.generate_block(1, wait_for_mempool=1)
576+
577+
l2.daemon.wait_for_log(r'CHANNELD_AWAITING_SPLICE to CHANNELD_NORMAL')
578+
l1.daemon.wait_for_log(r'CHANNELD_AWAITING_SPLICE to CHANNELD_NORMAL')
579+
bitcoind.generate_block(1)
580+
sync_blockheight(bitcoind, [l1, l2])

0 commit comments

Comments
 (0)