pypy/module/struct/test/test_struct.py::AppTestStruct::()::test_struct_error
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x0bd225b0>
def test_struct_error(self):
"""
Check the various ways to get a struct.error. Note that CPython
and PyPy might disagree on the specific exception raised in a
specific situation, e.g. struct.error/TypeError/OverflowError.
"""
import sys
calcsize = self.struct.calcsize
pack = self.struct.pack
unpack = self.struct.unpack
error = self.struct.error
try:
calcsize("12") # incomplete struct format
except error: # (but ignored on CPython)
pass
raises(error, calcsize, "[") # bad char in struct format
raises(error, calcsize, "!P") # bad char in struct format
raises(error, pack, "ii", 15) # struct format requires more arguments
raises(error, pack, "i", 3, 4) # too many arguments for struct format
raises(error, unpack, "ii", "?")# unpack str size too short for format
raises(error, unpack, "b", "??")# unpack str size too long for format
raises(error, pack, "c", "foo") # expected a string of length 1
try:
pack("0p") # bad '0p' in struct format
except error: # (but ignored on CPython)
pass
if '__pypy__' in sys.builtin_module_names:
> raises(error, unpack, "0p", "") # segfaults on CPython 2.5.2!
E (application-level) AssertionError: DID NOT RAISE
[/buildbot/slave/own-linux-x86-32/build/pypy/module/struct/test/test_struct.py:312]:28: AssertionError
builder: own-linux-x86-32 build #9539+
test: pypy/module/struct/test/test_struct.py::AppTestStruct::()::test_struct_error