def get_struct_with_length_and_alignment(): struct = StructTemplate('Pair', 'pair', parent=None, align=4) struct.add(UInt(2, 'first', 1)) struct.add(UInt(1, 'second', 2)) return struct
def get_struct_with_two_lists(name='pair'): struct = StructTemplate('PairOfLists', name, parent=None) struct.add(get_list_of_three('first_list', None)) struct.add(get_list_of_three('second_list', None)) return struct
def get_empty_pair(name='pair'): struct = StructTemplate('Pair', name, parent=None) struct.add(UInt(2, 'first', None)) struct.add(UInt(2, 'second', None)) return struct
def get_recursive_struct(): str_str = StructTemplate('StructStruct', 'str_str', parent=None) inner = get_pair() str_str.add(inner) return str_str
def get_pair(): struct = StructTemplate('Pair', 'pair', parent=None) struct.add(UInt(2, 'first', 1)) struct.add(UInt(2, 'second', 2)) return struct
def test_add_field_with_length_reference_missing(self): tmp = MessageTemplate('Dymagic', self._protocol, {}) tmp.add(UInt(2, 'len', None)) str = StructTemplate('FooType', 'foo', tmp) self.assertRaises(AssertionError, str.add, Char('notfound', "bar"))
def test_add_field_with_length_reference_to_parent(self): tmp = MessageTemplate('Dymagic', self._protocol, {}) tmp.add(UInt(2, 'len', None)) str = StructTemplate('FooType', 'foo', tmp) str.add(Char('len', "bar"))