| import py | |
| from cffi import FFI | |
| class FakeBackend(object): | |
| def nonstandard_integer_types(self): | |
| return {} | |
| def sizeof(self, name): | |
| return 1 | |
| def load_library(self, path): | |
| return "fake library" | |
| def new_primitive_type(self, name): | |
| return FakeType("primitive " + name) | |
| def new_void_type(self): | |
| return FakeType("void") | |
| def new_pointer_type(self, x): | |
| return FakeType('ptr-to-%r' % (x,)) | |
| def new_array_type(self, x, y): | |
| return FakeType('array-from-%r-len-%r' % (x, y)) | |
| def cast(self, x, y): | |
| return 'casted!' | |
| def _get_types(self): | |
| return "CData", "CType" | |
| buffer = "buffer type" | |
| class FakeType(object): | |
| def __init__(self, cdecl): | |
| self.cdecl = cdecl | |
| def test_typeof(): | |
| ffi = FFI(backend=FakeBackend()) | |
| clong = ffi.typeof("signed long int") | |
| assert isinstance(clong, FakeType) | |
| assert clong.cdecl == 'primitive long' |