Skip to content

Commit 0626b8c

Browse files
author
MarcoFalke
committed
Merge #16445: test: Skip flaky p2p_invalid_messages test on macOS
c3dfc91 test: Skip flaky p2p_invalid_messages test on macOS (Fabian Jahr) Pull request description: This mitigates bitcoin/bitcoin#15400 I had a look into the issue today and this seems to be the best we can do given that the root causes some unexpected custom error code from the macOS kernel that python/asyncio doesn't know how to handle properly yet. Top commit has no ACKs. Tree-SHA512: 20a0551d45c405b6eb0ae58190b701c7026c52eff6c434bc678f723a4dabf0074e5b52a8bb3d51ee7132dc29419d1e67a24696761c444c62cd4d429ec768e67d
2 parents 67923d6 + c3dfc91 commit 0626b8c

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

test/functional/p2p_invalid_messages.py

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import asyncio
77
import os
88
import struct
9+
import sys
910

1011
from test_framework import messages
1112
from test_framework.mininode import P2PDataStore, NetworkThread
@@ -92,18 +93,25 @@ def run_test(self):
9293
#
9394
# Send an oversized message, ensure we're disconnected.
9495
#
95-
msg_over_size = msg_unrecognized(str_data="b" * (valid_data_limit + 1))
96-
assert len(msg_over_size.serialize()) == (msg_limit + 1)
96+
# Under macOS this test is skipped due to an unexpected error code
97+
# returned from the closing socket which python/asyncio does not
98+
# yet know how to handle.
99+
#
100+
if sys.platform != 'darwin':
101+
msg_over_size = msg_unrecognized(str_data="b" * (valid_data_limit + 1))
102+
assert len(msg_over_size.serialize()) == (msg_limit + 1)
97103

98-
with node.assert_debug_log(["Oversized message from peer=4, disconnecting"]):
99-
# An unknown message type (or *any* message type) over
100-
# MAX_PROTOCOL_MESSAGE_LENGTH should result in a disconnect.
101-
node.p2p.send_message(msg_over_size)
102-
node.p2p.wait_for_disconnect(timeout=4)
104+
with node.assert_debug_log(["Oversized message from peer=4, disconnecting"]):
105+
# An unknown message type (or *any* message type) over
106+
# MAX_PROTOCOL_MESSAGE_LENGTH should result in a disconnect.
107+
node.p2p.send_message(msg_over_size)
108+
node.p2p.wait_for_disconnect(timeout=4)
103109

104-
node.disconnect_p2ps()
105-
conn = node.add_p2p_connection(P2PDataStore())
106-
conn.wait_for_verack()
110+
node.disconnect_p2ps()
111+
conn = node.add_p2p_connection(P2PDataStore())
112+
conn.wait_for_verack()
113+
else:
114+
self.log.info("Skipping test p2p_invalid_messages/1 (oversized message) under macOS")
107115

108116
#
109117
# 2.

0 commit comments

Comments
 (0)