summaryrefslogtreecommitdiff
path: root/Lib/test/test_sys.py
diff options
context:
space:
mode:
authorMark Dickinson <dickinsm@gmail.com>2009-03-20 15:51:55 +0000
committerMark Dickinson <dickinsm@gmail.com>2009-03-20 15:51:55 +0000
commitefc82f7e8eff19d8e844a3dc268a88de7fbcb173 (patch)
tree58198f2e7610ba6d33865884487de006de30af85 /Lib/test/test_sys.py
parentc8e81ef508f0f1dc4e5c31bd0bec2766867fead5 (diff)
downloadcpython-git-efc82f7e8eff19d8e844a3dc268a88de7fbcb173.tar.gz
Issue #4258: Use 30-bit digits for Python longs, on 64-bit platforms.
Backport of r70459.
Diffstat (limited to 'Lib/test/test_sys.py')
-rw-r--r--Lib/test/test_sys.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py
index 128880d810..a4554a67ba 100644
--- a/Lib/test/test_sys.py
+++ b/Lib/test/test_sys.py
@@ -332,6 +332,9 @@ class SysModuleTest(unittest.TestCase):
self.assert_(isinstance(sys.executable, basestring))
self.assertEqual(len(sys.float_info), 11)
self.assertEqual(sys.float_info.radix, 2)
+ self.assertEqual(len(sys.long_info), 2)
+ self.assert_(sys.long_info.bits_per_digit % 5 == 0)
+ self.assert_(sys.long_info.sizeof_digit >= 1)
self.assert_(isinstance(sys.hexversion, int))
self.assert_(isinstance(sys.maxint, int))
if test.test_support.have_unicode:
@@ -417,6 +420,7 @@ class SizeofTest(unittest.TestCase):
if hasattr(sys, "gettotalrefcount"):
self.header += '2P'
self.vheader += '2P'
+ self.longdigit = sys.long_info.sizeof_digit
import _testcapi
self.gc_headsize = _testcapi.SIZEOF_PYGC_HEAD
self.file = open(test.test_support.TESTFN, 'wb')
@@ -594,11 +598,12 @@ class SizeofTest(unittest.TestCase):
check(reversed([]), size(h + 'lP'))
# long
check(0L, size(vh))
- check(1L, size(vh) + self.H)
- check(-1L, size(vh) + self.H)
- check(32768L, size(vh) + 2*self.H)
- check(32768L*32768L-1, size(vh) + 2*self.H)
- check(32768L*32768L, size(vh) + 3*self.H)
+ check(1L, size(vh) + self.longdigit)
+ check(-1L, size(vh) + self.longdigit)
+ PyLong_BASE = 2**sys.long_info.bits_per_digit
+ check(PyLong_BASE, size(vh) + 2*self.longdigit)
+ check(PyLong_BASE**2-1, size(vh) + 2*self.longdigit)
+ check(PyLong_BASE**2, size(vh) + 3*self.longdigit)
# module
check(unittest, size(h + 'P'))
# None