diff --git a/Lib/test/test_cmath.py b/Lib/test/test_cmath.py index 11b0c612024..0451fb0aa22 100644 --- a/Lib/test/test_cmath.py +++ b/Lib/test/test_cmath.py @@ -4,6 +4,8 @@ import unittest import cmath, math from cmath import phase, polar, rect, pi +import platform +import sys import sysconfig INF = float('inf') @@ -332,6 +334,18 @@ def test_cmath_matches_math(self): @requires_IEEE_754 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): """Wrapped version of rect that accepts a complex number instead of two float arguments.""" @@ -345,6 +359,12 @@ def polar_complex(z): for id, fn, ar, ai, er, ei, flags in parse_testfile(test_file): arg = complex(ar, ai) 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': function = rect_complex elif fn == 'polar': diff --git a/Lib/test/test_math.py b/Lib/test/test_math.py index 02d8b47c13a..93b77b771e9 100644 --- a/Lib/test/test_math.py +++ b/Lib/test/test_math.py @@ -6,8 +6,9 @@ import unittest import math import os -import sys +import platform import struct +import sys import sysconfig eps = 1E-05 @@ -1150,6 +1151,18 @@ def test_exceptions(self): @requires_IEEE_754 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}): {}" failures = [] @@ -1160,6 +1173,10 @@ def test_testfile(self): if fn in ['rect', 'polar']: # no real versions of rect, polar 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) diff --git a/Misc/NEWS b/Misc/NEWS index a71309404ec..06034837f8c 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -135,6 +135,9 @@ Library 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 Jeff Allen.