Issue #24773: Fixed tests failures on systems with 32-bit time_t.
Several 32-bit systems have issues with transitions in the year 2037. This is a bug in the system C library since time_t does not overflow until 2038, but let's skip tests starting from 2037 to work around those bugs.
This commit is contained in:
parent
8d4989687c
commit
611adf2466
|
@ -15,6 +15,7 @@ import pickle
|
|||
import random
|
||||
import struct
|
||||
import unittest
|
||||
import sysconfig
|
||||
|
||||
from array import array
|
||||
|
||||
|
@ -4675,6 +4676,7 @@ class ZoneInfoTest(unittest.TestCase):
|
|||
zonename = 'America/New_York'
|
||||
|
||||
def setUp(self):
|
||||
self.sizeof_time_t = sysconfig.get_config_var('SIZEOF_TIME_T')
|
||||
if sys.platform == "win32":
|
||||
self.skipTest("Skipping zoneinfo tests on Windows")
|
||||
try:
|
||||
|
@ -4750,6 +4752,9 @@ class ZoneInfoTest(unittest.TestCase):
|
|||
if self.zonename == 'Europe/Tallinn' and udt.date() == date(1999, 10, 31):
|
||||
print("Skip %s %s transition" % (self.zonename, udt))
|
||||
continue
|
||||
if self.sizeof_time_t == 4 and udt.year >= 2037:
|
||||
print("Skip %s %s transition for 32-bit time_t" % (self.zonename, udt))
|
||||
continue
|
||||
s0 = (udt - datetime(1970, 1, 1)) // SEC
|
||||
ss = shift // SEC # shift seconds
|
||||
for x in [-40 * 3600, -20*3600, -1, 0,
|
||||
|
|
Loading…
Reference in New Issue