A test for the recent overflow-in-format-crash bug.
Only runs when sys.maxint == 2**32 - 1; different things go wrong on a 64-bit box.
This commit is contained in:
parent
cafe0eefc3
commit
549ab8a98d
|
@ -183,12 +183,12 @@ testboth("%#X", 0, "0X0")
|
|||
testboth("%#X", 0L, "0X0")
|
||||
|
||||
testboth("%x", 0x42, "42")
|
||||
# testboth("%x", -0x42, "ffffffbe") # Alas, that's specific to 32-bit machines
|
||||
# testboth("%x", -0x42, "ffffffbe") # specific to 32-bit boxes; see below
|
||||
testboth("%x", 0x42L, "42")
|
||||
testboth("%x", -0x42L, "-42")
|
||||
|
||||
testboth("%o", 042, "42")
|
||||
# testboth("%o", -042, "37777777736") # Alas, that's specific to 32-bit machines
|
||||
# testboth("%o", -042, "37777777736") # specific to 32-bit boxes; see below
|
||||
testboth("%o", 042L, "42")
|
||||
testboth("%o", -042L, "-42")
|
||||
|
||||
|
@ -221,3 +221,15 @@ if have_unicode:
|
|||
|
||||
test_exc('%d', '1', TypeError, "int argument required")
|
||||
test_exc('%g', '1', TypeError, "float argument required")
|
||||
|
||||
if sys.maxint == 2**32-1:
|
||||
# crashes 2.2.1 and earlier:
|
||||
try:
|
||||
"%*d"%(sys.maxint, -127)
|
||||
except MemoryError:
|
||||
pass
|
||||
else:
|
||||
raise TestFailed, '"%*d"%(sys.maxint, -127) should fail'
|
||||
# (different things go wrong on a 64 bit box...)
|
||||
testboth("%x", -0x42, "ffffffbe")
|
||||
testboth("%o", -042, "37777777736")
|
||||
|
|
Loading…
Reference in New Issue