Issue #27953: skip failing math and cmath tests for tan on OS X 10.4.

This commit is contained in:
Mark Dickinson 2016-09-04 09:58:51 +01:00
parent 96f774d824
commit 85746542ea
3 changed files with 41 additions and 1 deletions

View File

@ -4,6 +4,8 @@ import test.test_math as test_math
import unittest import unittest
import cmath, math import cmath, math
from cmath import phase, polar, rect, pi from cmath import phase, polar, rect, pi
import platform
import sys
import sysconfig import sysconfig
INF = float('inf') INF = float('inf')
@ -332,6 +334,18 @@ class CMathTests(unittest.TestCase):
@requires_IEEE_754 @requires_IEEE_754
def test_specific_values(self): def test_specific_values(self):
# Some tests need to be skipped on ancient OS X versions.
# See issue #27953.
SKIP_ON_TIGER = {'tan0064'}
osx_version = None
if sys.platform == 'darwin':
version_txt = platform.mac_ver()[0]
try:
osx_version = tuple(map(int, version_txt.split('.')))
except ValueError:
pass
def rect_complex(z): def rect_complex(z):
"""Wrapped version of rect that accepts a complex number instead of """Wrapped version of rect that accepts a complex number instead of
two float arguments.""" two float arguments."""
@ -345,6 +359,12 @@ class CMathTests(unittest.TestCase):
for id, fn, ar, ai, er, ei, flags in parse_testfile(test_file): for id, fn, ar, ai, er, ei, flags in parse_testfile(test_file):
arg = complex(ar, ai) arg = complex(ar, ai)
expected = complex(er, ei) expected = complex(er, ei)
# Skip certain tests on OS X 10.4.
if osx_version is not None and osx_version < (10, 5):
if id in SKIP_ON_TIGER:
continue
if fn == 'rect': if fn == 'rect':
function = rect_complex function = rect_complex
elif fn == 'polar': elif fn == 'polar':

View File

@ -6,8 +6,9 @@ from test import support
import unittest import unittest
import math import math
import os import os
import sys import platform
import struct import struct
import sys
import sysconfig import sysconfig
eps = 1E-05 eps = 1E-05
@ -1150,6 +1151,18 @@ class MathTests(unittest.TestCase):
@requires_IEEE_754 @requires_IEEE_754
def test_testfile(self): def test_testfile(self):
# Some tests need to be skipped on ancient OS X versions.
# See issue #27953.
SKIP_ON_TIGER = {'tan0064'}
osx_version = None
if sys.platform == 'darwin':
version_txt = platform.mac_ver()[0]
try:
osx_version = tuple(map(int, version_txt.split('.')))
except ValueError:
pass
fail_fmt = "{}: {}({!r}): {}" fail_fmt = "{}: {}({!r}): {}"
failures = [] failures = []
@ -1160,6 +1173,10 @@ class MathTests(unittest.TestCase):
if fn in ['rect', 'polar']: if fn in ['rect', 'polar']:
# no real versions of rect, polar # no real versions of rect, polar
continue continue
# Skip certain tests on OS X 10.4.
if osx_version is not None and osx_version < (10, 5):
if id in SKIP_ON_TIGER:
continue
func = getattr(math, fn) func = getattr(math, fn)

View File

@ -135,6 +135,9 @@ Library
Tests Tests
----- -----
- Issue #27953: Skip math and cmath tests that fail on OS X 10.4 due to a
poor libm implementation of tan.
- Issue #26040: Improve test_math and test_cmath coverage and rigour. Patch by - Issue #26040: Improve test_math and test_cmath coverage and rigour. Patch by
Jeff Allen. Jeff Allen.