aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcoFalke <falke.marco@gmail.com>2019-07-24 07:18:40 -0400
committerMarcoFalke <falke.marco@gmail.com>2019-07-24 07:18:45 -0400
commit0626b8cbdf0aa971500eb5613c7ab4096c496966 (patch)
treea365ce443e3beccb9c975e08fcf8fabd9f79d410
parent67923d6b3c1e4413570ef34a53a5b1b441814bc6 (diff)
parentc3dfc9103260935261eaf6cfbacf0623003f116d (diff)
downloadbitcoin-0626b8cbdf0aa971500eb5613c7ab4096c496966.tar.xz
Merge #16445: test: Skip flaky p2p_invalid_messages test on macOS
c3dfc9103260935261eaf6cfbacf0623003f116d test: Skip flaky p2p_invalid_messages test on macOS (Fabian Jahr) Pull request description: This mitigates https://github.com/bitcoin/bitcoin/issues/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
-rwxr-xr-xtest/functional/p2p_invalid_messages.py28
1 files changed, 18 insertions, 10 deletions
diff --git a/test/functional/p2p_invalid_messages.py b/test/functional/p2p_invalid_messages.py
index 481d697e63..d5c68e622b 100755
--- a/test/functional/p2p_invalid_messages.py
+++ b/test/functional/p2p_invalid_messages.py
@@ -6,6 +6,7 @@
import asyncio
import os
import struct
+import sys
from test_framework import messages
from test_framework.mininode import P2PDataStore, NetworkThread
@@ -92,18 +93,25 @@ class InvalidMessagesTest(BitcoinTestFramework):
#
# Send an oversized message, ensure we're disconnected.
#
- msg_over_size = msg_unrecognized(str_data="b" * (valid_data_limit + 1))
- assert len(msg_over_size.serialize()) == (msg_limit + 1)
+ # Under macOS this test is skipped due to an unexpected error code
+ # returned from the closing socket which python/asyncio does not
+ # yet know how to handle.
+ #
+ if sys.platform != 'darwin':
+ msg_over_size = msg_unrecognized(str_data="b" * (valid_data_limit + 1))
+ assert len(msg_over_size.serialize()) == (msg_limit + 1)
- with node.assert_debug_log(["Oversized message from peer=4, disconnecting"]):
- # An unknown message type (or *any* message type) over
- # MAX_PROTOCOL_MESSAGE_LENGTH should result in a disconnect.
- node.p2p.send_message(msg_over_size)
- node.p2p.wait_for_disconnect(timeout=4)
+ with node.assert_debug_log(["Oversized message from peer=4, disconnecting"]):
+ # An unknown message type (or *any* message type) over
+ # MAX_PROTOCOL_MESSAGE_LENGTH should result in a disconnect.
+ node.p2p.send_message(msg_over_size)
+ node.p2p.wait_for_disconnect(timeout=4)
- node.disconnect_p2ps()
- conn = node.add_p2p_connection(P2PDataStore())
- conn.wait_for_verack()
+ node.disconnect_p2ps()
+ conn = node.add_p2p_connection(P2PDataStore())
+ conn.wait_for_verack()
+ else:
+ self.log.info("Skipping test p2p_invalid_messages/1 (oversized message) under macOS")
#
# 2.