pypy/module/_cffi_backend/test/test_recompiler.py::AppTestRecompiler::()::test_macro_check_value
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x0000020aacb53d00>
def test_macro_check_value(self):
# the value '-0x80000000' in C sources does not have a clear meaning
# to me; it appears to have a different effect than '-2147483648'...
# Moreover, on 32-bits, -2147483648 is actually equal to
# -2147483648U, which in turn is equal to 2147483648U and so positive.
import sys
vals = ['42', '-42', '0x80000000', '-2147483648',
'0', '9223372036854775809ULL',
'-9223372036854775807LL']
if sys.maxsize <= 2**32:
vals.remove('-2147483648')
cdef_lines = ['#define FOO_%d_%d %s' % (i, j, vals[i])
for i in range(len(vals))
for j in range(len(vals))]
verify_lines = ['#define FOO_%d_%d %s' % (i, j, vals[j]) # [j], not [i]
for i in range(len(vals))
for j in range(len(vals))]
ffi, lib = self.prepare(
'\n'.join(cdef_lines),
'test_macro_check_value_ok',
'\n'.join(verify_lines))
for j in range(len(vals)):
c_got = int(vals[j].replace('U', '').replace('L', ''), 0)
c_compiler_msg = str(c_got)
if c_got > 0:
c_compiler_msg += ' (0x%x)' % (c_got,)
#
for i in range(len(vals)):
attrname = 'FOO_%d_%d' % (i, j)
if i == j:
x = getattr(lib, attrname)
assert x == c_got
else:
> e = raises(ffi.error, getattr, lib, attrname)
E (application-level) AssertionError: DID NOT RAISE
[d:\pypy_stuff\buildbot64\slave\own-win-x86-64\build\pypy\module\_cffi_backend\test\test_recompiler.py:220]:38: AssertionError
builder: own-win-x86-64 build #2233
test: pypy/module/_cffi_backend/test/test_recompiler/py/AppTestRecompiler/()/test_macro_check_value