summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/crashers/loosing_mro_ref.py7
-rw-r--r--Lib/test/test_grammar.py1
-rw-r--r--Lib/test/test_heapq.py3
-rw-r--r--Lib/test/test_struct.py6
-rw-r--r--Lib/test/test_sys.py3
5 files changed, 15 insertions, 5 deletions
diff --git a/Lib/test/crashers/loosing_mro_ref.py b/Lib/test/crashers/loosing_mro_ref.py
index 5ecde63..a8c6e63 100644
--- a/Lib/test/crashers/loosing_mro_ref.py
+++ b/Lib/test/crashers/loosing_mro_ref.py
@@ -27,10 +27,9 @@ class Base(object):
class Base2(object):
mykey = 'from Base2'
-class X(Base):
- # you can't add a non-string key to X.__dict__, but it can be
- # there from the beginning :-)
- locals()[MyKey()] = 5
+# you can't add a non-string key to X.__dict__, but it can be
+# there from the beginning :-)
+X = type('X', (Base,), {MyKey(): 5})
print(X.mykey)
# I get a segfault, or a slightly wrong assertion error in a debug build.
diff --git a/Lib/test/test_grammar.py b/Lib/test/test_grammar.py
index 1a34ff8..acfe1f1 100644
--- a/Lib/test/test_grammar.py
+++ b/Lib/test/test_grammar.py
@@ -335,6 +335,7 @@ class GrammarTests(unittest.TestCase):
self.assertEquals(l5(1, 2), 5)
self.assertEquals(l5(1, 2, 3), 6)
check_syntax_error(self, "lambda x: x = 2")
+ check_syntax_error(self, "lambda (None,): None")
l6 = lambda x, y, *, k=20: x+y+k
self.assertEquals(l6(1,2), 1+2+20)
self.assertEquals(l6(1,2,k=10), 1+2+10)
diff --git a/Lib/test/test_heapq.py b/Lib/test/test_heapq.py
index 1c7c97f..fba4fd7 100644
--- a/Lib/test/test_heapq.py
+++ b/Lib/test/test_heapq.py
@@ -211,10 +211,11 @@ class TestHeapC(TestHeap):
class LE:
def __init__(self, x):
self.x = x
- def __lt__(self, other):
+ def __le__(self, other):
return self.x >= other.x
data = [random.random() for i in range(100)]
target = sorted(data, reverse=True)
+ print("HASATTR", hasattr(LE(0), "__lt__"), LE(0).__lt__)
self.assertEqual(hsort(data, LT), target)
self.assertEqual(hsort(data, LE), target)
diff --git a/Lib/test/test_struct.py b/Lib/test/test_struct.py
index 917f626..616e665 100644
--- a/Lib/test/test_struct.py
+++ b/Lib/test/test_struct.py
@@ -8,6 +8,7 @@ from test.support import TestFailed, verbose, run_unittest, catch_warning
import sys
ISBIGENDIAN = sys.byteorder == "big"
+IS32BIT = sys.maxsize == 0x7fffffff
del sys
try:
@@ -580,6 +581,11 @@ class StructTest(unittest.TestCase):
for c in [b'\x01', b'\x7f', b'\xff', b'\x0f', b'\xf0']:
self.assertTrue(struct.unpack('>?', c)[0])
+ if IS32BIT:
+ def test_crasher(self):
+ self.assertRaises(MemoryError, struct.pack, "357913941b", "a")
+
+
def test_main():
run_unittest(StructTest)
diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py
index 4049802..08fc909 100644
--- a/Lib/test/test_sys.py
+++ b/Lib/test/test_sys.py
@@ -520,6 +520,9 @@ class SizeofTest(unittest.TestCase):
self.check_sizeof(32768, h + self.align(2) + 2)
self.check_sizeof(32768*32768-1, h + self.align(2) + 2)
self.check_sizeof(32768*32768, h + self.align(2) + 4)
+ # tuple
+ self.check_sizeof((), h)
+ self.check_sizeof((1,2,3), h + 3*p)
def test_main():