mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-22 06:52:36 +01:00
[test] add mempool msg test for node with bloomfilter enabled
-msg_mempool is currently only tested with bloomfilter disabled (node is disconnected) in p2p_mempool.py -msg_mempool should get mempool txns in response when bloomfilter is enabled -edit test that doesn't test msg_mempool as intended
This commit is contained in:
parent
b3091b2be7
commit
e8acc60156
1 changed files with 18 additions and 1 deletions
|
@ -16,6 +16,7 @@ from test_framework.messages import (
|
|||
msg_filterclear,
|
||||
msg_filterload,
|
||||
msg_getdata,
|
||||
msg_mempool,
|
||||
)
|
||||
from test_framework.mininode import P2PInterface
|
||||
from test_framework.script import MAX_SCRIPT_ELEMENT_SIZE
|
||||
|
@ -93,6 +94,20 @@ class FilterTest(BitcoinTestFramework):
|
|||
|
||||
filter_node.send_and_ping(msg_filterclear())
|
||||
|
||||
def test_msg_mempool(self):
|
||||
self.log.info("Check that a node with bloom filters enabled services p2p mempool messages")
|
||||
filter_peer = FilterNode()
|
||||
|
||||
self.log.info("Create a tx relevant to the peer before connecting")
|
||||
filter_address = self.nodes[0].decodescript(filter_peer.watch_script_pubkey)['addresses'][0]
|
||||
txid = self.nodes[0].sendtoaddress(filter_address, 90)
|
||||
|
||||
self.log.info("Send a mempool msg after connecting and check that the tx is received")
|
||||
self.nodes[0].add_p2p_connection(filter_peer)
|
||||
filter_peer.send_and_ping(filter_peer.watch_filter_init)
|
||||
self.nodes[0].p2p.send_message(msg_mempool())
|
||||
filter_peer.wait_for_tx(txid)
|
||||
|
||||
def run_test(self):
|
||||
filter_node = self.nodes[0].add_p2p_connection(FilterNode())
|
||||
|
||||
|
@ -123,7 +138,7 @@ class FilterTest(BitcoinTestFramework):
|
|||
assert not filter_node.merkleblock_received
|
||||
assert not filter_node.tx_received
|
||||
|
||||
self.log.info('Check that we receive a tx in reply to a mempool msg if the filter matches a mempool tx')
|
||||
self.log.info('Check that we receive a tx if the filter matches a mempool tx')
|
||||
filter_node.merkleblock_received = False
|
||||
txid = self.nodes[0].sendtoaddress(filter_address, 90)
|
||||
filter_node.wait_for_tx(txid)
|
||||
|
@ -152,7 +167,9 @@ class FilterTest(BitcoinTestFramework):
|
|||
self.log.info("Check that division-by-zero remote crash bug [CVE-2013-5700] is fixed")
|
||||
filter_node.send_and_ping(msg_filterload(data=b'', nHashFuncs=1))
|
||||
filter_node.send_and_ping(msg_filteradd(data=b'letstrytocrashthisnode'))
|
||||
self.nodes[0].disconnect_p2ps()
|
||||
|
||||
self.test_msg_mempool()
|
||||
|
||||
if __name__ == '__main__':
|
||||
FilterTest().main()
|
||||
|
|
Loading…
Add table
Reference in a new issue