• Tim Peters's avatar
    Try to repair what may be the last new test failure on the · 319c47fc
    Tim Peters yazdı
    "x86 OpenBSD trunk" buildbot due to changing Python so that
    Python-exposed addresses are always non-negative.
    
    test_int_pointer_arg():  This line failed now whenever the
    box happened to assign an address to `ci` "with the sign
    bit set":
    
        self.failUnlessEqual(addressof(ci), func(byref(ci)))
    
    The problem is that the ctypes addressof() inherited "all
    addresses are non-negative now" from changes to
    PyLong_FromVoidPtr(), but byref() did not inherit that
    change and can still return a negative int.
    
    I don't know whether, or what, the ctypes implementation wants
    to do about that (possibly nothing), but in the meantime
    the test fails frequently.
    
    So, introduced a Python positive_address() function in
    the test module, that takes a purported machine address and,
    if negative, converts it to a non-negative value "with the
    same bits".  This should leave the test passing under all
    versions of Python.
    
    Belated thanks to Armin Rigo for teaching me the sick trick ;-)
    for determining the # of bits in a machine pointer via abuse
    of the struct module.
    319c47fc
Adı
Son kayıt (commit)
Son güncelleme
..
macholib Loading commit data...
test Loading commit data...
__init__.py Loading commit data...
_endian.py Loading commit data...
_loader.py Loading commit data...
wintypes.py Loading commit data...