def test_func_fromaddr(self): from _ffi import CDLL, types, FuncPtr libm = CDLL(self.libm_name) pow_addr = libm.getaddressindll('pow') pow = FuncPtr.fromaddr(pow_addr, 'pow', [types.double, types.double], types.double) assert pow(2, 3) == 8
def test_getaddressindll(self): import sys from _ffi import CDLL libm = CDLL(self.libm_name) pow_addr = libm.getaddressindll('pow') fff = sys.maxint*2-1 if sys.platform == 'win32': fff = sys.maxint*2+1 assert pow_addr == self.pow_addr & fff
def test_getaddressindll(self): import sys from _ffi import CDLL libm = CDLL(self.libm_name) pow_addr = libm.getaddressindll('pow') fff = sys.maxint * 2 - 1 if sys.platform == 'win32': fff = sys.maxint * 2 + 1 assert pow_addr == self.pow_addr & fff
def test_func_fromaddr2(self): if not self.iswin32: skip("windows specific") from _ffi import CDLL, types, FuncPtr from _rawffi import FUNCFLAG_STDCALL libm = CDLL(self.libm_name) pow_addr = libm.getaddressindll('pow') wrong_pow = FuncPtr.fromaddr(pow_addr, 'pow', [types.double, types.double], types.double, FUNCFLAG_STDCALL) try: wrong_pow(2, 3) == 8 except ValueError, e: assert e.message.startswith('Procedure called with')
def test_getaddressindll(self): import sys from _ffi import CDLL, types libm = CDLL(self.libm_name) pow_addr = libm.getaddressindll('pow') assert pow_addr == self.pow_addr & (sys.maxint*2-1)
def test_getaddressindll(self): import sys from _ffi import CDLL, types libm = CDLL(self.libm_name) pow_addr = libm.getaddressindll('pow') assert pow_addr == self.pow_addr & (sys.maxint * 2 - 1)