summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorErlend Egeberg Aasland <erlend.aasland@innova.no>2020-05-17 06:32:46 (GMT)
committerGitHub <noreply@github.com>2020-05-17 06:32:46 (GMT)
commit9a45bfe6f4aedd2a9d94cb12aa276057b15d8b63 (patch)
treede9431975c00c9fc34a3b7ba72bfc3bf20c86217 /Lib
parentd7184d3dbd249444ec3961641dc08a9ad3c1ac34 (diff)
downloadcpython-9a45bfe6f4aedd2a9d94cb12aa276057b15d8b63.zip
cpython-9a45bfe6f4aedd2a9d94cb12aa276057b15d8b63.tar.gz
cpython-9a45bfe6f4aedd2a9d94cb12aa276057b15d8b63.tar.bz2
bpo-35569: Expose RFC 3542 IPv6 socket options on macOS (GH-19526)
Diffstat (limited to 'Lib')
-rwxr-xr-xLib/test/test_socket.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index 4a436cf..aefba4f 100755
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -959,6 +959,37 @@ class GeneralModuleTests(unittest.TestCase):
socket.IPPROTO_L2TP
socket.IPPROTO_SCTP
+ @unittest.skipUnless(sys.platform == 'darwin', 'macOS specific test')
+ @unittest.skipUnless(socket_helper.IPV6_ENABLED, 'IPv6 required for this test')
+ def test3542SocketOptions(self):
+ # Ref. issue #35569 and https://tools.ietf.org/html/rfc3542
+ opts = {
+ 'IPV6_CHECKSUM',
+ 'IPV6_DONTFRAG',
+ 'IPV6_DSTOPTS',
+ 'IPV6_HOPLIMIT',
+ 'IPV6_HOPOPTS',
+ 'IPV6_NEXTHOP',
+ 'IPV6_PATHMTU',
+ 'IPV6_PKTINFO',
+ 'IPV6_RECVDSTOPTS',
+ 'IPV6_RECVHOPLIMIT',
+ 'IPV6_RECVHOPOPTS',
+ 'IPV6_RECVPATHMTU',
+ 'IPV6_RECVPKTINFO',
+ 'IPV6_RECVRTHDR',
+ 'IPV6_RECVTCLASS',
+ 'IPV6_RTHDR',
+ 'IPV6_RTHDRDSTOPTS',
+ 'IPV6_RTHDR_TYPE_0',
+ 'IPV6_TCLASS',
+ 'IPV6_USE_MIN_MTU',
+ }
+ for opt in opts:
+ self.assertTrue(
+ hasattr(socket, opt), f"Missing RFC3542 socket option '{opt}'"
+ )
+
def testHostnameRes(self):
# Testing hostname resolution mechanisms
hostname = socket.gethostname()