From 594f260de70a1f34ea72b6c488c6054c3611d58f Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 21 Feb 2019 14:22:38 +1030 Subject: [PATCH] pytest: test starting with db corrupted by dangling peer. db was taken from the failed test. Signed-off-by: Rusty Russell --- tests/data/dangling-peer.sqlite3.xz | Bin 0 -> 9120 bytes tests/test_db.py | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 tests/data/dangling-peer.sqlite3.xz create mode 100644 tests/test_db.py diff --git a/tests/data/dangling-peer.sqlite3.xz b/tests/data/dangling-peer.sqlite3.xz new file mode 100644 index 0000000000000000000000000000000000000000..df05a4b4f932b2dd9c5fc7587353e42e47901fb7 GIT binary patch literal 9120 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 literal 0 HcmV?d00001 diff --git a/tests/test_db.py b/tests/test_db.py new file mode 100644 index 000000000..315fdd7ce --- /dev/null +++ b/tests/test_db.py @@ -0,0 +1,20 @@ +from fixtures import * # noqa: F401,F403 + +import pytest + + +@pytest.mark.xfail(strict=True) +def test_db_dangling_peer_fix(node_factory): + # This was taken from test_fail_unconfirmed() node. + l1 = node_factory.get_node(dbfile='dangling-peer.sqlite3.xz') + l2 = node_factory.get_node() + + # Must match entry in db + assert l2.info['id'] == '022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59' + + # This time it should work! (Connect *in* since l1 thinks it has UTXOs + # it doesn't have). + l1.rpc.connect(l2.info['id'], 'localhost', l2.port) + # Make sure l2 has register connection + l2.daemon.wait_for_log('Handed peer, entering loop') + l2.fund_channel(l1, 200000, wait_for_active=True)