diff options
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/crashers/loosing_mro_ref.py | 7 | ||||
-rw-r--r-- | Lib/test/test_grammar.py | 1 | ||||
-rw-r--r-- | Lib/test/test_heapq.py | 3 | ||||
-rw-r--r-- | Lib/test/test_struct.py | 6 | ||||
-rw-r--r-- | Lib/test/test_sys.py | 3 |
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 5ecde63820..a8c6e63ee2 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 1a34ff8b74..acfe1f1573 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 1c7c97fa48..fba4fd71f8 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 917f62695b..616e6658d5 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 4049802969..08fc909dca 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(): |