]> granicus.if.org Git - python/commitdiff
Issue #27953: skip failing math and cmath tests for tan on OS X 10.4.
authorMark Dickinson <dickinsm@gmail.com>
Sun, 4 Sep 2016 08:58:51 +0000 (09:58 +0100)
committerMark Dickinson <dickinsm@gmail.com>
Sun, 4 Sep 2016 08:58:51 +0000 (09:58 +0100)
Lib/test/test_cmath.py
Lib/test/test_math.py
Misc/NEWS

index 11b0c6120240fc3ec9f941acca4d7b186fb838f9..0451fb0aa22e6a0a7d65c15299c405d00cec90a7 100644 (file)
@@ -4,6 +4,8 @@ import test.test_math as test_math
 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 @@ class CMathTests(unittest.TestCase):
 
     @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 @@ class CMathTests(unittest.TestCase):
         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':
index 02d8b47c13af33e2edbf4ae5c62c6268c57baf8a..93b77b771e95da5aa5477bde86138cb9f3327dd4 100644 (file)
@@ -6,8 +6,9 @@ from test import support
 import unittest
 import math
 import os
-import sys
+import platform
 import struct
+import sys
 import sysconfig
 
 eps = 1E-05
@@ -1150,6 +1151,18 @@ class MathTests(unittest.TestCase):
 
     @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 @@ class MathTests(unittest.TestCase):
             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)
 
index a71309404ec9d3aaf1bdee1cc31c2e1755869cae..06034837f8c1092e987519af55213209e9e3f9b0 100644 (file)
--- 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.