import logging
import select
import socket
+import sys
import tempfile
import threading
import time
from test.test_asyncio import utils as test_utils
+MACOS = (sys.platform == 'darwin')
+BUF_MULTIPLIER = 1024 if not MACOS else 64
+
+
def tearDownModule():
asyncio.set_event_loop_policy(None)
TOTAL_CNT = 25 # total number of clients that test will create
TIMEOUT = support.LONG_TIMEOUT # timeout for this test
- A_DATA = b'A' * 1024 * 1024
- B_DATA = b'B' * 1024 * 1024
+ A_DATA = b'A' * 1024 * BUF_MULTIPLIER
+ B_DATA = b'B' * 1024 * BUF_MULTIPLIER
sslctx = self._create_server_ssl_context(
test_utils.ONLYCERT, test_utils.ONLYKEY
CNT = 0
TOTAL_CNT = 25
- A_DATA = b'A' * 1024 * 1024
- B_DATA = b'B' * 1024 * 1024
+ A_DATA = b'A' * 1024 * BUF_MULTIPLIER
+ B_DATA = b'B' * 1024 * BUF_MULTIPLIER
sslctx = self._create_server_ssl_context(
test_utils.ONLYCERT,
TOTAL_CNT = 25 # total number of clients that test will create
TIMEOUT = support.LONG_TIMEOUT # timeout for this test
- A_DATA = b'A' * 1024 * 1024
- B_DATA = b'B' * 1024 * 1024
+ A_DATA = b'A' * 1024 * BUF_MULTIPLIER
+ B_DATA = b'B' * 1024 * BUF_MULTIPLIER
sslctx_1 = self._create_server_ssl_context(
test_utils.ONLYCERT, test_utils.ONLYKEY)
CNT = 0
TOTAL_CNT = 25
- A_DATA = b'A' * 1024 * 1024
+ A_DATA = b'A' * 1024 * BUF_MULTIPLIER
sslctx = self._create_server_ssl_context(
test_utils.ONLYCERT, test_utils.ONLYKEY)
--- /dev/null
+:source:`Lib/test/test_asyncio/test_ssl.py` exposed a bug in the macOS
+kernel where intense concurrent load on non-blocking sockets occasionally
+causes :const:`errno.ENOBUFS` ("No buffer space available") to be emitted.
+FB11063974 filed with Apple, in the mean time as a workaround buffer size
+used in tests on macOS is decreased to avoid intermittent failures. Patch
+by Fantix King.