def test_type_callback_setup(self): TestClass = self.get_callback_class() d = { '__type_callbacks__': [('void *', 'voidp_callback')], '__delayed_lookups__': {} } DelayedLookups.setup_named_callbacks(TestClass, d) self.assertFalse('__type_callbacks__' in d)
def test_type_callback_setup_bad(self): TestClass = self.get_callback_class() d = { '__type_callbacks__': ['void *', 'voidp_callback'], '__delayed_lookups__': {} } with self.assertRaises(ValueError): DelayedLookups.setup_named_callbacks(TestClass, d)
def test_minsymbol_callback_setup(self): TestClass = self.get_callback_class() d = { '__minsymbol_callbacks__': [('main', 'main_callback')], '__delayed_lookups__': {} } DelayedLookups.setup_named_callbacks(TestClass, d) self.assertFalse('__minsymbol_callbacks__' in d)
def test_minsymbol_callback_setup_bad(self): TestClass = self.get_callback_class() d = { '__minsymbol_callbacks__': ['main', 'main_callback'], '__delayed_lookups__': {} } with self.assertRaises(ValueError): DelayedLookups.setup_named_callbacks(TestClass, d)
def test_minsymval_setup(self): d = {'__minsymvals__' : [ 'main' ]} DelayedLookups.setup_delayed_lookups_for_class('TestClass', d) self.assertFalse('__minsymvals__' in d) self.assertTrue('main' in d) self.assertTrue(isinstance(d['main'], ClassProperty)) self.assertTrue('main' in d['__delayed_lookups__']) self.assertTrue(isinstance(d['__delayed_lookups__']['main'], DelayedMinimalSymval))
def test_minsymval_setup(self): d = {'__minsymvals__': ['main']} DelayedLookups.setup_delayed_lookups_for_class('TestClass', d) self.assertFalse('__minsymvals__' in d) self.assertTrue('main' in d) self.assertTrue(isinstance(d['main'], ClassProperty)) self.assertTrue('main' in d['__delayed_lookups__']) self.assertTrue( isinstance(d['__delayed_lookups__']['main'], DelayedMinimalSymval))
def test_name_collision_attrs(self): class test_data(object): def __init__(self): self.name = 'foo' def get(self): pass def set(self, value): pass d = {'__delayed_lookups__' : {}} attr = test_data() DelayedLookups.add_lookup('TestClass', d, 'foo', attr) with self.assertRaises(NameError): DelayedLookups.add_lookup('TestClass', d, 'foo', attr)
def test_type_setup(self): d = {'__types__': ['void *', 'struct test']} DelayedLookups.setup_delayed_lookups_for_class('TestClass', d) self.assertFalse('__types__' in d) self.assertTrue('void_p_type' in d) self.assertTrue(isinstance(d['void_p_type'], ClassProperty)) self.assertTrue('void_p_type' in d['__delayed_lookups__']) self.assertTrue( isinstance(d['__delayed_lookups__']['void_p_type'], DelayedType)) self.assertTrue('test_type' in d) self.assertTrue(isinstance(d['test_type'], ClassProperty)) self.assertTrue('test_type' in d['__delayed_lookups__']) self.assertTrue( isinstance(d['__delayed_lookups__']['test_type'], DelayedType))
def test_type_setup(self): d = {'__types__' : [ 'void *', 'struct test' ] } DelayedLookups.setup_delayed_lookups_for_class('TestClass', d) self.assertFalse('__types__' in d) self.assertTrue('void_p_type' in d) self.assertTrue(isinstance(d['void_p_type'], ClassProperty)) self.assertTrue('void_p_type' in d['__delayed_lookups__']) self.assertTrue(isinstance(d['__delayed_lookups__']['void_p_type'], DelayedType)) self.assertTrue('test_type' in d) self.assertTrue(isinstance(d['test_type'], ClassProperty)) self.assertTrue('test_type' in d['__delayed_lookups__']) self.assertTrue(isinstance(d['__delayed_lookups__']['test_type'], DelayedType))
def test_resolve_struct_middle_whitespace(self): spec = 'struct test' (name, attrname, pointer) = DelayedLookups._resolve_type(spec) self.assertTrue(name == 'struct test') self.assertTrue(attrname == 'test_type') self.assertFalse(pointer)
def test_resolve_char_pointer(self): spec = 'char *' (name, attrname, pointer) = DelayedLookups._resolve_type(spec) self.assertTrue(name == 'char') self.assertTrue(attrname == 'char_p_type') self.assertTrue(pointer)
def test_resolve_struct_normal_pointer(self): spec = 'struct test *' (name, attrname, pointer) = DelayedLookups._resolve_type(spec) self.assertTrue(name == 'struct test') self.assertTrue(attrname == 'test_p_type') self.assertTrue(pointer)
def test_name_collision_reserved(self): d = {'__delayed_lookups__': {}} with self.assertRaises(NameError): DelayedLookups.setup_delayed_lookups_for_class('TestClass', d)
def test_type_callback_setup(self): TestClass = self.get_callback_class() d = {'__type_callbacks__' : [ ('void *', 'voidp_callback') ], '__delayed_lookups__' : {} } DelayedLookups.setup_named_callbacks(TestClass, d) self.assertFalse('__type_callbacks__' in d)
def test_type_callback_setup_bad(self): TestClass = self.get_callback_class() d = {'__type_callbacks__' : [ 'void *', 'voidp_callback' ], '__delayed_lookups__' : {} } with self.assertRaises(ValueError): DelayedLookups.setup_named_callbacks(TestClass, d)
def test_minsymbol_callback_setup(self): TestClass = self.get_callback_class() d = {'__minsymbol_callbacks__' : [ ('main', 'main_callback') ], '__delayed_lookups__' : {} } DelayedLookups.setup_named_callbacks(TestClass, d) self.assertFalse('__minsymbol_callbacks__' in d)
def test_minsymbol_callback_setup_bad(self): TestClass = self.get_callback_class() d = {'__minsymbol_callbacks__' : [ 'main', 'main_callback' ], '__delayed_lookups__' : {} } with self.assertRaises(ValueError): DelayedLookups.setup_named_callbacks(TestClass, d)
def __new__(cls, name, parents, dct): DelayedLookups.setup_delayed_lookups_for_class(name, dct) return type.__new__(cls, name, parents, dct)
def test_name_collision_reserved(self): d = {'__delayed_lookups__' : {}} with self.assertRaises(NameError): DelayedLookups.setup_delayed_lookups_for_class('TestClass', d)
def __init__(cls, name, parents, dct): super(_CrashBaseMeta, cls).__init__(name, parents, dct) cls.setup_exports_for_class(cls, dct) DelayedLookups.setup_named_callbacks(cls, dct)
def test_symval_setup_bad(self): d = {'__symvals__': 'main'} with self.assertRaises(TypeError): DelayedLookups.setup_delayed_lookups_for_class('TestClass', d)
def test_symval_setup_bad(self): d = {'__symvals__' : 'main' } with self.assertRaises(TypeError): DelayedLookups.setup_delayed_lookups_for_class('TestClass', d)