Created
February 9, 2025 04:18
-
-
Save al3xtjames/edd6170880bd43709b055ea12ae2be64 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sourcing python-remove-tests-dir-hook | |
Sourcing python-catch-conflicts-hook.sh | |
Sourcing python-remove-bin-bytecode-hook.sh | |
Sourcing pypa-build-hook | |
Using pypaBuildPhase | |
Sourcing python-runtime-deps-check-hook | |
Using pythonRuntimeDepsCheckHook | |
Sourcing pypa-install-hook | |
Using pypaInstallPhase | |
Sourcing python-imports-check-hook.sh | |
Using pythonImportsCheckPhase | |
Sourcing python-namespaces-hook | |
Sourcing python-catch-conflicts-hook.sh | |
Sourcing pytest-check-hook | |
Using pytestCheckPhase | |
Running phase: unpackPhase | |
@nix { "action": "setPhase", "phase": "unpackPhase" } | |
unpacking source archive /nix/store/h1fr8lb1ba5s6rcbq19bjhz251ca5myw-source | |
source root is source | |
setting SOURCE_DATE_EPOCH to timestamp 315619200 of file "source/tests/test_asynchat.py" | |
Running phase: patchPhase | |
@nix { "action": "setPhase", "phase": "patchPhase" } | |
Running phase: configurePhase | |
@nix { "action": "setPhase", "phase": "configurePhase" } | |
no configure script, doing nothing | |
Running phase: buildPhase | |
@nix { "action": "setPhase", "phase": "buildPhase" } | |
Executing pypaBuildPhase | |
Creating a wheel... | |
pypa build flags: --no-isolation --outdir dist/ --wheel | |
* Getting build dependencies for wheel... | |
running egg_info | |
creating pyasynchat.egg-info | |
writing pyasynchat.egg-info/PKG-INFO | |
writing dependency_links to pyasynchat.egg-info/dependency_links.txt | |
writing requirements to pyasynchat.egg-info/requires.txt | |
writing top-level names to pyasynchat.egg-info/top_level.txt | |
writing manifest file 'pyasynchat.egg-info/SOURCES.txt' | |
reading manifest file 'pyasynchat.egg-info/SOURCES.txt' | |
adding license file 'LICENSE' | |
writing manifest file 'pyasynchat.egg-info/SOURCES.txt' | |
* Building wheel... | |
running bdist_wheel | |
running build | |
running build_py | |
creating build/lib/asynchat | |
copying asynchat/__init__.py -> build/lib/asynchat | |
installing to build/bdist.macosx-11.3-x86_64/wheel | |
running install | |
running install_lib | |
creating build/bdist.macosx-11.3-x86_64/wheel | |
creating build/bdist.macosx-11.3-x86_64/wheel/asynchat | |
copying build/lib/asynchat/__init__.py -> build/bdist.macosx-11.3-x86_64/wheel/./asynchat | |
running install_egg_info | |
running egg_info | |
writing pyasynchat.egg-info/PKG-INFO | |
writing dependency_links to pyasynchat.egg-info/dependency_links.txt | |
writing requirements to pyasynchat.egg-info/requires.txt | |
writing top-level names to pyasynchat.egg-info/top_level.txt | |
reading manifest file 'pyasynchat.egg-info/SOURCES.txt' | |
adding license file 'LICENSE' | |
writing manifest file 'pyasynchat.egg-info/SOURCES.txt' | |
Copying pyasynchat.egg-info to build/bdist.macosx-11.3-x86_64/wheel/./pyasynchat-1.0.4-py3.12.egg-info | |
running install_scripts | |
creating build/bdist.macosx-11.3-x86_64/wheel/pyasynchat-1.0.4.dist-info/WHEEL | |
creating '/private/tmp/nix-build-python3.12-pyasynchat-1.0.4.drv-0/source/dist/.tmp-bmz84rig/pyasynchat-1.0.4-py3-none-any.whl' and adding 'build/bdist.macosx-11.3-x86_64/wheel' to it | |
adding 'asynchat/__init__.py' | |
adding 'pyasynchat-1.0.4.dist-info/LICENSE' | |
adding 'pyasynchat-1.0.4.dist-info/METADATA' | |
adding 'pyasynchat-1.0.4.dist-info/WHEEL' | |
adding 'pyasynchat-1.0.4.dist-info/top_level.txt' | |
adding 'pyasynchat-1.0.4.dist-info/RECORD' | |
removing build/bdist.macosx-11.3-x86_64/wheel | |
Successfully built pyasynchat-1.0.4-py3-none-any.whl | |
Finished creating a wheel... | |
Finished executing pypaBuildPhase | |
Running phase: pythonRuntimeDepsCheckHook | |
@nix { "action": "setPhase", "phase": "pythonRuntimeDepsCheckHook" } | |
Executing pythonRuntimeDepsCheck | |
Checking runtime dependencies for pyasynchat-1.0.4-py3-none-any.whl | |
Finished executing pythonRuntimeDepsCheck | |
Running phase: installPhase | |
@nix { "action": "setPhase", "phase": "installPhase" } | |
Executing pypaInstallPhase | |
Successfully installed pyasynchat-1.0.4-py3-none-any.whl | |
Finished executing pypaInstallPhase | |
Running phase: pythonOutputDistPhase | |
@nix { "action": "setPhase", "phase": "pythonOutputDistPhase" } | |
Executing pythonOutputDistPhase | |
Finished executing pythonOutputDistPhase | |
Running phase: fixupPhase | |
@nix { "action": "setPhase", "phase": "fixupPhase" } | |
checking for references to /private/tmp/nix-build-python3.12-pyasynchat-1.0.4.drv-0/ in /nix/store/vsq97kxyim5j08j81fqm5mx7rjz111xk-python3.12-pyasynchat-1.0.4... | |
patching script interpreter paths in /nix/store/vsq97kxyim5j08j81fqm5mx7rjz111xk-python3.12-pyasynchat-1.0.4 | |
stripping (with command strip and flags -S) in /nix/store/vsq97kxyim5j08j81fqm5mx7rjz111xk-python3.12-pyasynchat-1.0.4/lib | |
checking for references to /private/tmp/nix-build-python3.12-pyasynchat-1.0.4.drv-0/ in /nix/store/5fdd6yg23m0kawic1hb5c5q5xb7x7svz-python3.12-pyasynchat-1.0.4-dist... | |
patching script interpreter paths in /nix/store/5fdd6yg23m0kawic1hb5c5q5xb7x7svz-python3.12-pyasynchat-1.0.4-dist | |
Executing pythonRemoveTestsDir | |
Finished executing pythonRemoveTestsDir | |
Running phase: installCheckPhase | |
@nix { "action": "setPhase", "phase": "installCheckPhase" } | |
no Makefile or custom installCheckPhase, doing nothing | |
Running phase: pythonCatchConflictsPhase | |
@nix { "action": "setPhase", "phase": "pythonCatchConflictsPhase" } | |
Running phase: pythonRemoveBinBytecodePhase | |
@nix { "action": "setPhase", "phase": "pythonRemoveBinBytecodePhase" } | |
Running phase: pythonImportsCheckPhase | |
@nix { "action": "setPhase", "phase": "pythonImportsCheckPhase" } | |
Executing pythonImportsCheckPhase | |
Check whether the following modules can be imported: asynchat | |
Running phase: pytestCheckPhase | |
@nix { "action": "setPhase", "phase": "pytestCheckPhase" } | |
Executing pytestCheckPhase | |
pytest flags: -m pytest | |
============================= test session starts ============================== | |
platform darwin -- Python 3.12.8, pytest-8.3.4, pluggy-1.5.0 | |
rootdir: /private/tmp/nix-build-python3.12-pyasynchat-1.0.4.drv-0/source | |
collecting ... | |
collected 25 items | |
tests/test_asynchat.py FFFFFFFFFFFFFFFFFFFFFF... [100%] | |
=================================== FAILURES =================================== | |
______________________ TestAsynchat.test_close_when_done _______________________ | |
self = <tests.test_asynchat.TestAsynchat testMethod=test_close_when_done> | |
def test_close_when_done(self): | |
> s, event = start_echo_server() | |
tests/test_asynchat.py:221: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:100: in start_echo_server | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=11, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
_________________________ TestAsynchat.test_empty_line _________________________ | |
self = <tests.test_asynchat.TestAsynchat testMethod=test_empty_line> | |
def test_empty_line(self): | |
# checks that empty lines are handled correctly | |
> s, event = start_echo_server() | |
tests/test_asynchat.py:210: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:100: in start_echo_server | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=12, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
______________________ TestAsynchat.test_line_terminator1 ______________________ | |
self = <tests.test_asynchat.TestAsynchat testMethod=test_line_terminator1> | |
def test_line_terminator1(self): | |
# test one-character terminator | |
for l in (1, 2, 3): | |
> self.line_terminator_check(b'\n', l) | |
tests/test_asynchat.py:142: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:119: in line_terminator_check | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=13, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
______________________ TestAsynchat.test_line_terminator2 ______________________ | |
self = <tests.test_asynchat.TestAsynchat testMethod=test_line_terminator2> | |
def test_line_terminator2(self): | |
# test two-character terminator | |
for l in (1, 2, 3): | |
> self.line_terminator_check(b'\r\n', l) | |
tests/test_asynchat.py:147: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:119: in line_terminator_check | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=14, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
______________________ TestAsynchat.test_line_terminator3 ______________________ | |
self = <tests.test_asynchat.TestAsynchat testMethod=test_line_terminator3> | |
def test_line_terminator3(self): | |
# test three-character terminator | |
for l in (1, 2, 3): | |
> self.line_terminator_check(b'qqq', l) | |
tests/test_asynchat.py:152: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:119: in line_terminator_check | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=15, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
______________________ TestAsynchat.test_none_terminator _______________________ | |
self = <tests.test_asynchat.TestAsynchat testMethod=test_none_terminator> | |
def test_none_terminator(self): | |
# Try reading a fixed number of bytes | |
> s, event = start_echo_server() | |
tests/test_asynchat.py:176: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:100: in start_echo_server | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=11, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
____________________ TestAsynchat.test_numeric_terminator1 _____________________ | |
self = <tests.test_asynchat.TestAsynchat testMethod=test_numeric_terminator1> | |
def test_numeric_terminator1(self): | |
# check that ints & longs both work (since type is | |
# explicitly checked in async_chat.handle_read) | |
> self.numeric_terminator_check(1) | |
tests/test_asynchat.py:169: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:156: in numeric_terminator_check | |
s, event = start_echo_server() | |
tests/test_asynchat.py:100: in start_echo_server | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=12, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
____________________ TestAsynchat.test_numeric_terminator2 _____________________ | |
self = <tests.test_asynchat.TestAsynchat testMethod=test_numeric_terminator2> | |
def test_numeric_terminator2(self): | |
> self.numeric_terminator_check(6) | |
tests/test_asynchat.py:172: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:156: in numeric_terminator_check | |
s, event = start_echo_server() | |
tests/test_asynchat.py:100: in start_echo_server | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=13, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
____________________________ TestAsynchat.test_push ____________________________ | |
self = <tests.test_asynchat.TestAsynchat testMethod=test_push> | |
def test_push(self): | |
# Issue #12523: push() should raise a TypeError if it doesn't get | |
# a bytes string | |
> s, event = start_echo_server() | |
tests/test_asynchat.py:245: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:100: in start_echo_server | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=14, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
______________________ TestAsynchat.test_simple_producer _______________________ | |
self = <tests.test_asynchat.TestAsynchat testMethod=test_simple_producer> | |
def test_simple_producer(self): | |
> s, event = start_echo_server() | |
tests/test_asynchat.py:188: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:100: in start_echo_server | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=16, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
______________________ TestAsynchat.test_string_producer _______________________ | |
self = <tests.test_asynchat.TestAsynchat testMethod=test_string_producer> | |
def test_string_producer(self): | |
> s, event = start_echo_server() | |
tests/test_asynchat.py:199: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:100: in start_echo_server | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=17, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
__________________ TestAsynchat_WithPoll.test_close_when_done __________________ | |
self = <tests.test_asynchat.TestAsynchat_WithPoll testMethod=test_close_when_done> | |
def test_close_when_done(self): | |
> s, event = start_echo_server() | |
tests/test_asynchat.py:221: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:100: in start_echo_server | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=11, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
____________________ TestAsynchat_WithPoll.test_empty_line _____________________ | |
self = <tests.test_asynchat.TestAsynchat_WithPoll testMethod=test_empty_line> | |
def test_empty_line(self): | |
# checks that empty lines are handled correctly | |
> s, event = start_echo_server() | |
tests/test_asynchat.py:210: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:100: in start_echo_server | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=12, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
_________________ TestAsynchat_WithPoll.test_line_terminator1 __________________ | |
self = <tests.test_asynchat.TestAsynchat_WithPoll testMethod=test_line_terminator1> | |
def test_line_terminator1(self): | |
# test one-character terminator | |
for l in (1, 2, 3): | |
> self.line_terminator_check(b'\n', l) | |
tests/test_asynchat.py:142: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:119: in line_terminator_check | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=13, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
_________________ TestAsynchat_WithPoll.test_line_terminator2 __________________ | |
self = <tests.test_asynchat.TestAsynchat_WithPoll testMethod=test_line_terminator2> | |
def test_line_terminator2(self): | |
# test two-character terminator | |
for l in (1, 2, 3): | |
> self.line_terminator_check(b'\r\n', l) | |
tests/test_asynchat.py:147: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:119: in line_terminator_check | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=14, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
_________________ TestAsynchat_WithPoll.test_line_terminator3 __________________ | |
self = <tests.test_asynchat.TestAsynchat_WithPoll testMethod=test_line_terminator3> | |
def test_line_terminator3(self): | |
# test three-character terminator | |
for l in (1, 2, 3): | |
> self.line_terminator_check(b'qqq', l) | |
tests/test_asynchat.py:152: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:119: in line_terminator_check | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=16, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
__________________ TestAsynchat_WithPoll.test_none_terminator __________________ | |
self = <tests.test_asynchat.TestAsynchat_WithPoll testMethod=test_none_terminator> | |
def test_none_terminator(self): | |
# Try reading a fixed number of bytes | |
> s, event = start_echo_server() | |
tests/test_asynchat.py:176: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:100: in start_echo_server | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=18, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
________________ TestAsynchat_WithPoll.test_numeric_terminator1 ________________ | |
self = <tests.test_asynchat.TestAsynchat_WithPoll testMethod=test_numeric_terminator1> | |
def test_numeric_terminator1(self): | |
# check that ints & longs both work (since type is | |
# explicitly checked in async_chat.handle_read) | |
> self.numeric_terminator_check(1) | |
tests/test_asynchat.py:169: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:156: in numeric_terminator_check | |
s, event = start_echo_server() | |
tests/test_asynchat.py:100: in start_echo_server | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=11, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
________________ TestAsynchat_WithPoll.test_numeric_terminator2 ________________ | |
self = <tests.test_asynchat.TestAsynchat_WithPoll testMethod=test_numeric_terminator2> | |
def test_numeric_terminator2(self): | |
> self.numeric_terminator_check(6) | |
tests/test_asynchat.py:172: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:156: in numeric_terminator_check | |
s, event = start_echo_server() | |
tests/test_asynchat.py:100: in start_echo_server | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=12, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
_______________________ TestAsynchat_WithPoll.test_push ________________________ | |
self = <tests.test_asynchat.TestAsynchat_WithPoll testMethod=test_push> | |
def test_push(self): | |
# Issue #12523: push() should raise a TypeError if it doesn't get | |
# a bytes string | |
> s, event = start_echo_server() | |
tests/test_asynchat.py:245: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:100: in start_echo_server | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=13, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
__________________ TestAsynchat_WithPoll.test_simple_producer __________________ | |
self = <tests.test_asynchat.TestAsynchat_WithPoll testMethod=test_simple_producer> | |
def test_simple_producer(self): | |
> s, event = start_echo_server() | |
tests/test_asynchat.py:188: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:100: in start_echo_server | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=14, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
__________________ TestAsynchat_WithPoll.test_string_producer __________________ | |
self = <tests.test_asynchat.TestAsynchat_WithPoll testMethod=test_string_producer> | |
def test_string_producer(self): | |
> s, event = start_echo_server() | |
tests/test_asynchat.py:199: | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
tests/test_asynchat.py:100: in start_echo_server | |
s = echo_server(event) | |
tests/test_asynchat.py:35: in __init__ | |
self.port = socket_helper.bind_port(self.sock) | |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
sock = <socket.socket fd=16, family=2, type=1, proto=0, laddr=('0.0.0.0', 0)> | |
host = 'localhost' | |
def bind_port(sock, host=HOST): | |
"""Bind the socket to a free port and return the port number. Relies on | |
ephemeral ports in order to ensure we are using an unbound port. This is | |
important as many tests may be running simultaneously, especially in a | |
buildbot environment. This method raises an exception if the sock.family | |
is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR | |
or SO_REUSEPORT set on it. Tests should *never* set these socket options | |
for TCP/IP sockets. The only case for setting these options is testing | |
multicasting via multiple UDP sockets. | |
Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. | |
on Windows), it will be set on the socket. This will prevent anyone else | |
from bind()'ing to our host/port for the duration of the test. | |
""" | |
if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: | |
if hasattr(socket, 'SO_REUSEADDR'): | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEADDR socket option on " | |
"TCP/IP sockets!") | |
if hasattr(socket, 'SO_REUSEPORT'): | |
try: | |
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: | |
raise support.TestFailed("tests should never set the " | |
"SO_REUSEPORT socket option on " | |
"TCP/IP sockets!") | |
except OSError: | |
# Python's socket module was compiled using modern headers | |
# thus defining SO_REUSEPORT but this process is running | |
# under an older kernel that does not support SO_REUSEPORT. | |
pass | |
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) | |
> sock.bind((host, 0)) | |
E socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
/nix/store/9kcva6myqyd7afa1ag7slc5iayfldldj-python3-3.12.8/lib/python3.12/test/support/socket_helper.py:117: gaierror | |
=========================== short test summary info ============================ | |
FAILED tests/test_asynchat.py::TestAsynchat::test_close_when_done - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
FAILED tests/test_asynchat.py::TestAsynchat::test_empty_line - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
FAILED tests/test_asynchat.py::TestAsynchat::test_line_terminator1 - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
FAILED tests/test_asynchat.py::TestAsynchat::test_line_terminator2 - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
FAILED tests/test_asynchat.py::TestAsynchat::test_line_terminator3 - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
FAILED tests/test_asynchat.py::TestAsynchat::test_none_terminator - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
FAILED tests/test_asynchat.py::TestAsynchat::test_numeric_terminator1 - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
FAILED tests/test_asynchat.py::TestAsynchat::test_numeric_terminator2 - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
FAILED tests/test_asynchat.py::TestAsynchat::test_push - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
FAILED tests/test_asynchat.py::TestAsynchat::test_simple_producer - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
FAILED tests/test_asynchat.py::TestAsynchat::test_string_producer - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
FAILED tests/test_asynchat.py::TestAsynchat_WithPoll::test_close_when_done - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
FAILED tests/test_asynchat.py::TestAsynchat_WithPoll::test_empty_line - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
FAILED tests/test_asynchat.py::TestAsynchat_WithPoll::test_line_terminator1 - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
FAILED tests/test_asynchat.py::TestAsynchat_WithPoll::test_line_terminator2 - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
FAILED tests/test_asynchat.py::TestAsynchat_WithPoll::test_line_terminator3 - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
FAILED tests/test_asynchat.py::TestAsynchat_WithPoll::test_none_terminator - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
FAILED tests/test_asynchat.py::TestAsynchat_WithPoll::test_numeric_terminator1 - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
FAILED tests/test_asynchat.py::TestAsynchat_WithPoll::test_numeric_terminator2 - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
FAILED tests/test_asynchat.py::TestAsynchat_WithPoll::test_push - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
FAILED tests/test_asynchat.py::TestAsynchat_WithPoll::test_simple_producer - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
FAILED tests/test_asynchat.py::TestAsynchat_WithPoll::test_string_producer - socket.gaierror: [Errno 8] nodename nor servname provided, or not known | |
========================= 22 failed, 3 passed in 0.32s ========================= |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment