bpo-34373: fix test_mktime and test_pthread_getcpuclickid tests on AIX (GH-8726)
* Fix test_mktime on AIX by adding code to get mktime to behave the
same way as it does on other *nix systems
* Fix test_pthread_getcpuclickid in AIX by adjusting the test case
expectations when running on AIX in 32-bit mode
Patch by Michael Felt.
diff --git a/Lib/test/test_time.py b/Lib/test/test_time.py
index 2f0665a..136ad29 100644
--- a/Lib/test/test_time.py
+++ b/Lib/test/test_time.py
@@ -119,7 +119,13 @@
def test_pthread_getcpuclockid(self):
clk_id = time.pthread_getcpuclockid(threading.get_ident())
self.assertTrue(type(clk_id) is int)
- self.assertNotEqual(clk_id, time.CLOCK_THREAD_CPUTIME_ID)
+ # when in 32-bit mode AIX only returns the predefined constant
+ if not platform.system() == "AIX":
+ self.assertNotEqual(clk_id, time.CLOCK_THREAD_CPUTIME_ID)
+ elif (sys.maxsize.bit_length() > 32):
+ self.assertNotEqual(clk_id, time.CLOCK_THREAD_CPUTIME_ID)
+ else:
+ self.assertEqual(clk_id, time.CLOCK_THREAD_CPUTIME_ID)
t1 = time.clock_gettime(clk_id)
t2 = time.clock_gettime(clk_id)
self.assertLessEqual(t1, t2)
@@ -424,13 +430,6 @@
def test_mktime(self):
# Issue #1726687
for t in (-2, -1, 0, 1):
- if sys.platform.startswith('aix') and t == -1:
- # Issue #11188, #19748: mktime() returns -1 on error. On Linux,
- # the tm_wday field is used as a sentinel () to detect if -1 is
- # really an error or a valid timestamp. On AIX, tm_wday is
- # unchanged even on success and so cannot be used as a
- # sentinel.
- continue
try:
tt = time.localtime(t)
except (OverflowError, OSError):