diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2017-04-04 08:35:15 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-04 08:35:15 (GMT) |
commit | 5de85a17029356084b96db63e04d9eb150efd9c0 (patch) | |
tree | c281163219b3a185279a7b95ff7c15e40b21a231 /Lib/test | |
parent | 02e12138000da834f23719521a011fa93763384d (diff) | |
download | cpython-5de85a17029356084b96db63e04d9eb150efd9c0.zip cpython-5de85a17029356084b96db63e04d9eb150efd9c0.tar.gz cpython-5de85a17029356084b96db63e04d9eb150efd9c0.tar.bz2 |
bpo-29972: Skip tests known to fail on AIX (#979)
* bpo-29972: Fix test_eintr on AIX
On AIX, sigtimedwait(0.2) sleeps 199.8 ms, whereas the test expects
200 ms or longer.
* bpo-29972: Skip some inet_pton() tests on AIX
Skip some inet_pton() tests of test_socket on AIX.
inet_pton() on AIX is less strict than on Linux and doesn't reject
some invalid IP addresses. The unit tests test more the libc than
Python itself.
* bpo-29972: Skip tests known to fail on AIX
* test_locale.test_strcoll_with_diacritic()
* test_locale.test_strxfrm_with_diacritic()
* test_strptime.test_week_of_year_and_day_of_week_calculation()
* test_tools.test_POT_Creation_Date()
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/eintrdata/eintr_tester.py | 7 | ||||
-rw-r--r-- | Lib/test/test_locale.py | 4 | ||||
-rw-r--r-- | Lib/test/test_socket.py | 10 | ||||
-rw-r--r-- | Lib/test/test_strptime.py | 3 | ||||
-rw-r--r-- | Lib/test/test_tools/test_i18n.py | 4 |
5 files changed, 23 insertions, 5 deletions
diff --git a/Lib/test/eintrdata/eintr_tester.py b/Lib/test/eintrdata/eintr_tester.py index c619b3d..74a509b 100644 --- a/Lib/test/eintrdata/eintr_tester.py +++ b/Lib/test/eintrdata/eintr_tester.py @@ -380,7 +380,12 @@ class SignalEINTRTest(EINTRBaseTest): t0 = time.monotonic() signal.sigtimedwait([signal.SIGUSR1], self.sleep_time) dt = time.monotonic() - t0 - self.assertGreaterEqual(dt, self.sleep_time) + + if sys.platform.startswith('aix'): + # On AIX, sigtimedwait(0.2) sleeps 199.8 ms + self.assertGreaterEqual(dt, self.sleep_time * 0.9) + else: + self.assertGreaterEqual(dt, self.sleep_time) @unittest.skipUnless(hasattr(signal, 'sigwaitinfo'), 'need signal.sigwaitinfo()') diff --git a/Lib/test/test_locale.py b/Lib/test/test_locale.py index 4dd300e..668f3cb 100644 --- a/Lib/test/test_locale.py +++ b/Lib/test/test_locale.py @@ -365,9 +365,13 @@ class TestEnUSCollation(BaseLocalizedTest, TestCollation): raise unittest.SkipTest('wcscoll/wcsxfrm have known bugs') BaseLocalizedTest.setUp(self) + @unittest.skipIf(sys.platform.startswith('aix'), + 'bpo-29972: broken test on AIX') def test_strcoll_with_diacritic(self): self.assertLess(locale.strcoll('à', 'b'), 0) + @unittest.skipIf(sys.platform.startswith('aix'), + 'bpo-29972: broken test on AIX') def test_strxfrm_with_diacritic(self): self.assertLess(locale.strxfrm('à'), locale.strxfrm('b')) diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py index 7cc2e57..2155d63 100644 --- a/Lib/test/test_socket.py +++ b/Lib/test/test_socket.py @@ -1026,7 +1026,9 @@ class GeneralModuleTests(unittest.TestCase): self.assertEqual(b'\xaa\xaa\xaa\xaa', f('170.170.170.170')) self.assertEqual(b'\x01\x02\x03\x04', f('1.2.3.4')) self.assertEqual(b'\xff\xff\xff\xff', f('255.255.255.255')) - assertInvalid(f, '0.0.0.') + # bpo-29972: inet_pton() doesn't fail on AIX + if not sys.platform.startswith('aix'): + assertInvalid(f, '0.0.0.') assertInvalid(f, '300.0.0.0') assertInvalid(f, 'a.0.0.0') assertInvalid(f, '1.2.3.4.5') @@ -1081,10 +1083,12 @@ class GeneralModuleTests(unittest.TestCase): assertInvalid('::0::') assertInvalid('1::abc::') assertInvalid('1::abc::def') - assertInvalid('1:2:3:4:5:6:') assertInvalid('1:2:3:4:5:6') - assertInvalid('1:2:3:4:5:6:7:8:') assertInvalid('1:2:3:4:5:6:7:8:0') + # bpo-29972: inet_pton() doesn't fail on AIX + if not sys.platform.startswith('aix'): + assertInvalid('1:2:3:4:5:6:') + assertInvalid('1:2:3:4:5:6:7:8:') self.assertEqual(b'\x00' * 12 + b'\xfe\x2a\x17\x40', f('::254.42.23.64') diff --git a/Lib/test/test_strptime.py b/Lib/test/test_strptime.py index 2cf0926..9343180 100644 --- a/Lib/test/test_strptime.py +++ b/Lib/test/test_strptime.py @@ -5,6 +5,7 @@ import time import locale import re import os +import sys from test import support from datetime import date as datetime_date @@ -482,6 +483,8 @@ class CalculationTests(unittest.TestCase): _ymd_excluded = () _formats_excluded = () + @unittest.skipIf(sys.platform.startswith('aix'), + 'bpo-29972: broken test on AIX') def test_week_of_year_and_day_of_week_calculation(self): # Should be able to infer date if given year, week of year (%U or %W) # and day of the week diff --git a/Lib/test/test_tools/test_i18n.py b/Lib/test/test_tools/test_i18n.py index ce6f549..5c28bae 100644 --- a/Lib/test/test_tools/test_i18n.py +++ b/Lib/test/test_tools/test_i18n.py @@ -1,6 +1,7 @@ """Tests to cover the Tools/i18n package""" import os +import sys import unittest from test.support.script_helper import assert_python_ok @@ -53,7 +54,8 @@ class Test_pygettext(unittest.TestCase): #"Plural-Forms" is optional - + @unittest.skipIf(sys.platform.startswith('aix'), + 'bpo-29972: broken test on AIX') def test_POT_Creation_Date(self): """ Match the date format from xgettext for POT-Creation-Date """ from datetime import datetime |