https://github.com/python/cpython/pull/4930 --- Lib/test/test_ssl.py.orig +++ Lib/test/test_ssl.py @@ -29,6 +29,12 @@ PROTOCOLS = sorted(ssl._PROTOCOL_NAMES) HOST = support.HOST IS_LIBRESSL = ssl.OPENSSL_VERSION.startswith('LibreSSL') +if IS_LIBRESSL: + LIBRESSL_VERSION = tuple( + int(s) for s in ssl.OPENSSL_VERSION.rsplit(' ')[-1].split('.') + ) +else: + LIBRESSL_VERSION = () IS_OPENSSL_1_1 = not IS_LIBRESSL and ssl.OPENSSL_VERSION_INFO >= (1, 1, 0) @@ -3392,6 +3398,8 @@ def test_selected_npn_protocol(self): chatty=True, connectionchatty=True) self.assertIs(stats['client_npn_protocol'], None) + @unittest.skipIf(IS_LIBRESSL and LIBRESSL_VERSION >= (2, 6, 1), + "LibreSSL 2.6.1+ has broken NPN support") @unittest.skipUnless(ssl.HAS_NPN, "NPN support needed for this test") def test_npn_protocols(self): server_protocols = ['http/1.1', 'spdy/2']