summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorPaul Monson <paulmon@users.noreply.github.com>2019-06-19 20:09:54 (GMT)
committerSteve Dower <steve.dower@python.org>2019-06-19 20:09:54 (GMT)
commitf355069a3337711642c3403429afb9faef93f512 (patch)
treec2a749be8e1921205c676ecdb22fe8703d947c42 /Lib
parent12f1c726d8328e5e096c35c36901f6d19bc942d3 (diff)
downloadcpython-f355069a3337711642c3403429afb9faef93f512.zip
cpython-f355069a3337711642c3403429afb9faef93f512.tar.gz
cpython-f355069a3337711642c3403429afb9faef93f512.tar.bz2
bpo-36511: Add buildbot scripts and fix tests for Windows ARM32 buildbot (GH-13454)
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/support/__init__.py4
-rw-r--r--Lib/test/test_math.py2
-rw-r--r--Lib/test/test_pyexpat.py3
-rw-r--r--Lib/test/test_regrtest.py4
-rw-r--r--Lib/test/test_ssl.py9
5 files changed, 20 insertions, 2 deletions
diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py
index 7c0efc7..b5538d2 100644
--- a/Lib/test/support/__init__.py
+++ b/Lib/test/support/__init__.py
@@ -485,7 +485,9 @@ def _is_gui_available():
if hasattr(_is_gui_available, 'result'):
return _is_gui_available.result
reason = None
- if sys.platform.startswith('win'):
+ if sys.platform.startswith('win') and platform.win32_is_iot():
+ reason = "gui is not available on Windows IoT Core"
+ elif sys.platform.startswith('win'):
# if Python is running as a service (such as the buildbot service),
# gui interaction may be disallowed
import ctypes
diff --git a/Lib/test/test_math.py b/Lib/test/test_math.py
index fa69044..362d093 100644
--- a/Lib/test/test_math.py
+++ b/Lib/test/test_math.py
@@ -468,6 +468,8 @@ class MathTests(unittest.TestCase):
self.assertRaises(ValueError, math.cos, NINF)
self.assertTrue(math.isnan(math.cos(NAN)))
+ @unittest.skipIf(sys.platform == 'win32' and platform.machine() in ('ARM', 'ARM64'),
+ "Windows UCRT is off by 2 ULP this test requires accuracy within 1 ULP")
def testCosh(self):
self.assertRaises(TypeError, math.cosh)
self.ftest('cosh(0)', math.cosh(0), 1)
diff --git a/Lib/test/test_pyexpat.py b/Lib/test/test_pyexpat.py
index 92fffc4..082d85a 100644
--- a/Lib/test/test_pyexpat.py
+++ b/Lib/test/test_pyexpat.py
@@ -3,6 +3,7 @@
from io import BytesIO
import os
+import platform
import sys
import sysconfig
import unittest
@@ -465,7 +466,7 @@ class HandlerExceptionTest(unittest.TestCase):
"pyexpat.c", "StartElement")
self.check_traceback_entry(entries[2],
"test_pyexpat.py", "StartElementHandler")
- if sysconfig.is_python_build():
+ if sysconfig.is_python_build() and not (sys.platform == 'win32' and platform.machine() == 'ARM'):
self.assertIn('call_with_frame("StartElement"', entries[1][3])
diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py
index 904b326..0a00925 100644
--- a/Lib/test/test_regrtest.py
+++ b/Lib/test/test_regrtest.py
@@ -618,6 +618,8 @@ class ProgramsTestCase(BaseTestCase):
test_args = ['--testdir=%s' % self.tmptestdir]
if platform.machine() == 'ARM64':
test_args.append('-arm64') # ARM 64-bit build
+ elif platform.machine() == 'ARM':
+ test_args.append('-arm32') # 32-bit ARM build
elif platform.architecture()[0] == '64bit':
test_args.append('-x64') # 64-bit build
if not Py_DEBUG:
@@ -633,6 +635,8 @@ class ProgramsTestCase(BaseTestCase):
rt_args = ["-q"] # Quick, don't run tests twice
if platform.machine() == 'ARM64':
rt_args.append('-arm64') # ARM 64-bit build
+ elif platform.machine() == 'ARM':
+ rt_args.append('-arm32') # 32-bit ARM build
elif platform.architecture()[0] == '64bit':
rt_args.append('-x64') # 64-bit build
if Py_DEBUG:
diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
index 7ba8156..c72a857 100644
--- a/Lib/test/test_ssl.py
+++ b/Lib/test/test_ssl.py
@@ -28,6 +28,9 @@ ssl = support.import_module("ssl")
from ssl import TLSVersion, _TLSContentType, _TLSMessageType, _TLSAlertType
+Py_DEBUG = hasattr(sys, 'gettotalrefcount')
+Py_DEBUG_WIN32 = Py_DEBUG and sys.platform == 'win32'
+
PROTOCOLS = sorted(ssl._PROTOCOL_NAMES)
HOST = support.HOST
IS_LIBRESSL = ssl.OPENSSL_VERSION.startswith('LibreSSL')
@@ -1347,6 +1350,7 @@ class ContextTests(unittest.TestCase):
ctx.load_verify_locations(cadata=b"broken")
+ @unittest.skipIf(Py_DEBUG_WIN32, "Avoid mixing debug/release CRT on Windows")
def test_load_dh_params(self):
ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
ctx.load_dh_params(DHFILE)
@@ -1665,6 +1669,7 @@ class SSLErrorTests(unittest.TestCase):
self.assertEqual(str(e), "foo")
self.assertEqual(e.errno, 1)
+ @unittest.skipIf(Py_DEBUG_WIN32, "Avoid mixing debug/release CRT on Windows")
def test_lib_reason(self):
# Test the library and reason attributes
ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
@@ -3845,6 +3850,7 @@ class ThreadedTests(unittest.TestCase):
sni_name=hostname)
self.assertIs(stats['compression'], None)
+ @unittest.skipIf(Py_DEBUG_WIN32, "Avoid mixing debug/release CRT on Windows")
def test_dh_params(self):
# Check we can get a connection with ephemeral Diffie-Hellman
client_context, server_context, hostname = testing_context()
@@ -4440,6 +4446,7 @@ class TestSSLDebug(unittest.TestCase):
return len(list(f))
@requires_keylog
+ @unittest.skipIf(Py_DEBUG_WIN32, "Avoid mixing debug/release CRT on Windows")
def test_keylog_defaults(self):
self.addCleanup(support.unlink, support.TESTFN)
ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
@@ -4463,6 +4470,7 @@ class TestSSLDebug(unittest.TestCase):
ctx.keylog_filename = 1
@requires_keylog
+ @unittest.skipIf(Py_DEBUG_WIN32, "Avoid mixing debug/release CRT on Windows")
def test_keylog_filename(self):
self.addCleanup(support.unlink, support.TESTFN)
client_context, server_context, hostname = testing_context()
@@ -4500,6 +4508,7 @@ class TestSSLDebug(unittest.TestCase):
@requires_keylog
@unittest.skipIf(sys.flags.ignore_environment,
"test is not compatible with ignore_environment")
+ @unittest.skipIf(Py_DEBUG_WIN32, "Avoid mixing debug/release CRT on Windows")
def test_keylog_env(self):
self.addCleanup(support.unlink, support.TESTFN)
with unittest.mock.patch.dict(os.environ):