cln/tests
Rusty Russell f68700908e pytest: make test_gossip_throttle more reliable.
By having gossipwith filter out messages we don't want, we can get the counts of
expected messages correct, and not hit errors like this:

```
    def test_gossip_throttle(node_factory, bitcoind, chainparams):
        """Make some gossip, test it gets throttled"""
        l1, l2, l3, l4 = node_factory.line_graph(4, wait_for_announce=True,
                                                 opts=[{}, {}, {}, {'dev-throttle-gossip': None}])
    
        # We expect: self-advertizement (3 messages for l1 and l4) plus
        # 4 node announcements, 3 channel announcements and 6 channel updates.
        # We also expect it to send a timestamp filter message.
        # (We won't take long enough to get a ping!)
        expected = 4 + 4 + 3 + 6 + 1
    
        # l1 is unlimited
        start_fast = time.time()
        out1 = subprocess.run(['devtools/gossipwith',
                               '--all-gossip',
                               '--hex',
                               '--network={}'.format(TEST_NETWORK),
                               '--max-messages={}'.format(expected),
                               '{}@localhost:{}'.format(l1.info['id'], l1.port)],
                              check=True,
                              timeout=TIMEOUT, stdout=subprocess.PIPE).stdout.split()
        time_fast = time.time() - start_fast
        assert time_fast < 2
        # Remove timestamp filter, since timestamp will change!
        out1 = [m for m in out1 if not m.startswith(b'0109')]
    
        # l4 is throttled
        start_slow = time.time()
        out2 = subprocess.run(['devtools/gossipwith',
                               '--all-gossip',
                               '--hex',
                               '--network={}'.format(TEST_NETWORK),
                               '--max-messages={}'.format(expected),
                               '{}@localhost:{}'.format(l4.info['id'], l4.port)],
                              check=True,
                              timeout=TIMEOUT, stdout=subprocess.PIPE).stdout.split()
        time_slow = time.time() - start_slow
        assert time_slow > 3
    
        # Remove timestamp filter, since timestamp will change!
        out2 = [m for m in out2 if not m.startswith(b'0109')]
    
        # Contents should be identical (once uniquified, since each
        # doubles-up on its own gossip)
>       assert set(out1) == set(out2)
E       AssertionError: assert {b'010054b1907bdf639c9060e0fa4bca02419c46f75a99f0908b87a2e09711d5d031ba76b8fd07acc8be1b2fac9e31efb808e5d362c32ef4665...
E         Extra items in the left set:
E         b'01010ad5be8b9ba029245c2ae2d667af7ead7c0129c479c7fd7145a9b65931e90222082e6e4ab37ef60ebd10f1493d73e8bf7a40c4ae5f7d87cc...8488830b60f7e744ed9235eb0b1ba93283b315c035180266e44a554e494f524245414d2d333930353033622d6d6f64646564000000000000000000'
E         Extra items in the right set:
E         b'01079f87eb580b9e5f11dc211e9fb66abb3699999044f8fe146801162393364286c6000000010000006c010101'
```

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2025-01-27 11:07:04 +10:30
..
data tests: Reckless test fix for project must contain name 2025-01-09 11:15:05 +01:00
fuzz splice: Update splice signature msg type 2024-11-21 14:15:36 +10:30
plugins ccan/htable: update to explicit DUPS/NODUPS types. 2025-01-21 09:18:25 +10:30
vectors pytest: Remove onion test vectors containing legacy onions. 2022-03-18 09:20:11 +10:30
autogenerate-rpc-examples.py tests: Add logger config with fixture 2025-01-24 17:00:03 +10:30
benchmark.py pytest: always provide payment_secret when making payments. 2021-07-14 14:38:00 -05:00
conftest.py pytest: use --developer instead of environment variable. 2023-09-21 20:08:24 +09:30
fixtures.py pytest: use --developer instead of environment variable. 2023-09-21 20:08:24 +09:30
rkls_github_canned_server.py pytest: add blackbox tests for reckless 2023-04-09 12:41:11 +09:30
test_askrene.py xpay: add maxdelay parameter 2025-01-22 12:19:47 -08:00
test_bookkeeper.py pytest: don't set experimental-offers in tests: it's the default now. 2024-11-18 10:42:54 +01:00
test_cln_rs.py lightningd: deprecate decodepay. 2024-11-17 14:21:23 +10:30
test_clnrest.py tests: adjust cln-grpc tests for new default start 2024-11-12 09:43:54 +10:30
test_closing.py pytest: fix flake in test_penalty_htlc_tx_fulfill 2024-12-20 15:36:07 +10:30
test_connection.py pytest: fix race in test_reconnect_remote_sends_no_sigs 2025-01-27 11:07:04 +10:30
test_db.py pytest: adapt tests to avoid deprecated APIs in close (tx and txid). 2024-11-17 16:04:06 +10:30
test_gossip.py pytest: make test_gossip_throttle more reliable. 2025-01-27 11:07:04 +10:30
test_invoices.py lightningd: deprecate decodepay. 2024-11-17 14:21:23 +10:30
test_misc.py pytest: fix flake in test_restorefrompeer. 2024-12-20 15:36:07 +10:30
test_mkfunding.py pytest: add tests for devtools/mkfunding 2023-01-09 14:50:30 -06:00
test_onion.py lightningd: remove support for legacy onion format. 2022-03-18 09:20:11 +10:30
test_opening.py xpay: make the xpay layer persistent. 2024-11-18 11:03:26 +10:30
test_pay.py lightningd: populate listsendpays destination from injectpaymentonion if we can. 2024-12-17 08:14:45 +10:30
test_plugin.py pytest: fix race in test_autoclean. 2024-11-19 17:51:18 +10:30
test_reckless.py test: Fixed test plugin source paths for reckless 2024-11-19 09:06:28 +10:30
test_renepay.py renepay: add test for description interface 2024-11-06 09:59:27 +01:00
test_restart.py splice: tx_abort no longer reestablishes 2024-11-21 14:15:36 +10:30
test_runes.py pytest: don't set experimental-offers in tests: it's the default now. 2024-11-18 10:42:54 +01:00
test_splice.py bkpr: add bookkeeping assertions to splice in + out tests 2024-11-17 14:25:29 +10:30
test_splicing.py splice: tx_abort no longer reestablishes 2024-11-21 14:15:36 +10:30
test_splicing_disconnect.py pytest: fix test_splice_disconnect_commit 2025-01-27 11:07:04 +10:30
test_splicing_insane.py splice: Allow splice_update to return signatures 2024-11-12 06:42:52 +10:30
test_wallet.py pytest: fix hsmtool which reports leak under address sanitizer. 2024-11-17 14:09:10 +10:30
test_xpay.py pytest: mark xpay real gossip test as slow 2025-01-27 11:07:04 +10:30
utils.py tests: Add testnet4 default port 2025-01-13 15:45:19 -08:00
valgrind-suppressions.txt pytest: Use valgrind target suppressions instead of skipping tests 2022-03-10 10:21:41 +10:30