changeset: 103026:b4d52df5595e user: Mark Dickinson date: Sun Sep 04 09:58:51 2016 +0100 files: Lib/test/test_cmath.py Lib/test/test_math.py Misc/NEWS description: Issue #27953: skip failing math and cmath tests for tan on OS X 10.4. diff -r e3dbe8b7279a -r b4d52df5595e Lib/test/test_cmath.py --- a/Lib/test/test_cmath.py Sat Sep 03 19:30:22 2016 +0100 +++ b/Lib/test/test_cmath.py Sun Sep 04 09:58:51 2016 +0100 @@ -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 @@ @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 @@ 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 -r e3dbe8b7279a -r b4d52df5595e Lib/test/test_math.py --- a/Lib/test/test_math.py Sat Sep 03 19:30:22 2016 +0100 +++ b/Lib/test/test_math.py Sun Sep 04 09:58:51 2016 +0100 @@ -6,8 +6,9 @@ import unittest import math import os +import platform +import struct import sys -import struct import sysconfig eps = 1E-05 @@ -1150,6 +1151,18 @@ @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 @@ 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 -r e3dbe8b7279a -r b4d52df5595e Misc/NEWS --- a/Misc/NEWS Sat Sep 03 19:30:22 2016 +0100 +++ b/Misc/NEWS Sun Sep 04 09:58:51 2016 +0100 @@ -135,6 +135,9 @@ 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.