test: add parameterized constructor for msg_sendcmpct()
This commit is contained in:
parent
197450f808
commit
638441928a
|
@ -188,28 +188,21 @@ class CompactBlocksTest(BitcoinTestFramework):
|
||||||
test_node.request_headers_and_sync(locator=[tip])
|
test_node.request_headers_and_sync(locator=[tip])
|
||||||
|
|
||||||
# Now try a SENDCMPCT message with too-high version
|
# Now try a SENDCMPCT message with too-high version
|
||||||
sendcmpct = msg_sendcmpct()
|
test_node.send_and_ping(msg_sendcmpct(announce=True, version=preferred_version+1))
|
||||||
sendcmpct.version = preferred_version + 1
|
|
||||||
sendcmpct.announce = True
|
|
||||||
test_node.send_and_ping(sendcmpct)
|
|
||||||
check_announcement_of_new_block(node, test_node, lambda p: "cmpctblock" not in p.last_message)
|
check_announcement_of_new_block(node, test_node, lambda p: "cmpctblock" not in p.last_message)
|
||||||
|
|
||||||
# Headers sync before next test.
|
# Headers sync before next test.
|
||||||
test_node.request_headers_and_sync(locator=[tip])
|
test_node.request_headers_and_sync(locator=[tip])
|
||||||
|
|
||||||
# Now try a SENDCMPCT message with valid version, but announce=False
|
# Now try a SENDCMPCT message with valid version, but announce=False
|
||||||
sendcmpct.version = preferred_version
|
test_node.send_and_ping(msg_sendcmpct(announce=False, version=preferred_version))
|
||||||
sendcmpct.announce = False
|
|
||||||
test_node.send_and_ping(sendcmpct)
|
|
||||||
check_announcement_of_new_block(node, test_node, lambda p: "cmpctblock" not in p.last_message)
|
check_announcement_of_new_block(node, test_node, lambda p: "cmpctblock" not in p.last_message)
|
||||||
|
|
||||||
# Headers sync before next test.
|
# Headers sync before next test.
|
||||||
test_node.request_headers_and_sync(locator=[tip])
|
test_node.request_headers_and_sync(locator=[tip])
|
||||||
|
|
||||||
# Finally, try a SENDCMPCT message with announce=True
|
# Finally, try a SENDCMPCT message with announce=True
|
||||||
sendcmpct.version = preferred_version
|
test_node.send_and_ping(msg_sendcmpct(announce=True, version=preferred_version))
|
||||||
sendcmpct.announce = True
|
|
||||||
test_node.send_and_ping(sendcmpct)
|
|
||||||
check_announcement_of_new_block(node, test_node, lambda p: "cmpctblock" in p.last_message)
|
check_announcement_of_new_block(node, test_node, lambda p: "cmpctblock" in p.last_message)
|
||||||
|
|
||||||
# Try one more time (no headers sync should be needed!)
|
# Try one more time (no headers sync should be needed!)
|
||||||
|
@ -220,23 +213,17 @@ class CompactBlocksTest(BitcoinTestFramework):
|
||||||
check_announcement_of_new_block(node, test_node, lambda p: "cmpctblock" in p.last_message)
|
check_announcement_of_new_block(node, test_node, lambda p: "cmpctblock" in p.last_message)
|
||||||
|
|
||||||
# Try one more time, after sending a version-1, announce=false message.
|
# Try one more time, after sending a version-1, announce=false message.
|
||||||
sendcmpct.version = preferred_version - 1
|
test_node.send_and_ping(msg_sendcmpct(announce=False, version=preferred_version-1))
|
||||||
sendcmpct.announce = False
|
|
||||||
test_node.send_and_ping(sendcmpct)
|
|
||||||
check_announcement_of_new_block(node, test_node, lambda p: "cmpctblock" in p.last_message)
|
check_announcement_of_new_block(node, test_node, lambda p: "cmpctblock" in p.last_message)
|
||||||
|
|
||||||
# Now turn off announcements
|
# Now turn off announcements
|
||||||
sendcmpct.version = preferred_version
|
test_node.send_and_ping(msg_sendcmpct(announce=False, version=preferred_version))
|
||||||
sendcmpct.announce = False
|
|
||||||
test_node.send_and_ping(sendcmpct)
|
|
||||||
check_announcement_of_new_block(node, test_node, lambda p: "cmpctblock" not in p.last_message and "headers" in p.last_message)
|
check_announcement_of_new_block(node, test_node, lambda p: "cmpctblock" not in p.last_message and "headers" in p.last_message)
|
||||||
|
|
||||||
if old_node is not None:
|
if old_node is not None:
|
||||||
# Verify that a peer using an older protocol version can receive
|
# Verify that a peer using an older protocol version can receive
|
||||||
# announcements from this node.
|
# announcements from this node.
|
||||||
sendcmpct.version = preferred_version - 1
|
old_node.send_and_ping(msg_sendcmpct(announce=True, version=preferred_version-1))
|
||||||
sendcmpct.announce = True
|
|
||||||
old_node.send_and_ping(sendcmpct)
|
|
||||||
# Header sync
|
# Header sync
|
||||||
old_node.request_headers_and_sync(locator=[tip])
|
old_node.request_headers_and_sync(locator=[tip])
|
||||||
check_announcement_of_new_block(node, old_node, lambda p: "cmpctblock" in p.last_message)
|
check_announcement_of_new_block(node, old_node, lambda p: "cmpctblock" in p.last_message)
|
||||||
|
@ -729,11 +716,7 @@ class CompactBlocksTest(BitcoinTestFramework):
|
||||||
node = self.nodes[0]
|
node = self.nodes[0]
|
||||||
tip = node.getbestblockhash()
|
tip = node.getbestblockhash()
|
||||||
peer.get_headers(locator=[int(tip, 16)], hashstop=0)
|
peer.get_headers(locator=[int(tip, 16)], hashstop=0)
|
||||||
|
peer.send_and_ping(msg_sendcmpct(announce=True, version=peer.cmpct_version))
|
||||||
msg = msg_sendcmpct()
|
|
||||||
msg.version = peer.cmpct_version
|
|
||||||
msg.announce = True
|
|
||||||
peer.send_and_ping(msg)
|
|
||||||
|
|
||||||
def test_compactblock_reconstruction_multiple_peers(self, stalling_peer, delivery_peer):
|
def test_compactblock_reconstruction_multiple_peers(self, stalling_peer, delivery_peer):
|
||||||
node = self.nodes[0]
|
node = self.nodes[0]
|
||||||
|
|
|
@ -1461,9 +1461,9 @@ class msg_sendcmpct:
|
||||||
__slots__ = ("announce", "version")
|
__slots__ = ("announce", "version")
|
||||||
msgtype = b"sendcmpct"
|
msgtype = b"sendcmpct"
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self, announce=False, version=1):
|
||||||
self.announce = False
|
self.announce = announce
|
||||||
self.version = 1
|
self.version = version
|
||||||
|
|
||||||
def deserialize(self, f):
|
def deserialize(self, f):
|
||||||
self.announce = struct.unpack("<?", f.read(1))[0]
|
self.announce = struct.unpack("<?", f.read(1))[0]
|
||||||
|
|
Loading…
Reference in a new issue