示例#1
0
 def test_fail_on_dynamic_length(self):
     union = UnionTemplate('NotLegal', 'dymagic', parent=None)
     union.add(UInt(2, 'bar', None))
     struct = StructTemplate('Foo', 'foo', parent=None)
     struct.add(UInt(1, 'len', 22))
     struct.add(Char('len', 'dymagic', 'foo'))
     self.assertRaises(Exception, union.add, struct)
示例#2
0
def get_empty_recursive_struct():
    str_str = StructTemplate('StructStruct', '3pairs', parent=None)
    pair1 = get_empty_pair('pair1')
    pair2 = get_empty_pair('pair2')
    pair3 = get_empty_pair('pair3')
    str_str.add(pair1)
    str_str.add(pair2)
    str_str.add(pair3)
    return str_str
示例#3
0
 def test_dynamic_field_validation(self):
     struct = StructTemplate('Foo', 'foo', parent=None)
     struct.add(UInt(2, 'len', None))
     struct.add(Char('len', 'text', None))
     encoded = struct.encode({'foo.len': 6, 'foo.text': 'fobba'})
     self._should_pass(
         struct.validate({'foo': encoded}, {'foo.text': 'fobba'}))
     self._should_fail(
         struct.validate({'foo': encoded}, {'foo.text': 'fob'}), 1)
 def test_dynamic_field_validation(self):
     struct = StructTemplate('Foo', 'foo', parent=None)
     struct.add(UInt(2, 'len', None))
     struct.add(Char('len', 'text', None))
     encoded = struct.encode({'foo.len': 6, 'foo.text': 'fobba'})
     self._should_pass(struct.validate({'foo': encoded}, {'foo.text': 'fobba'}))
     self._should_fail(struct.validate({'foo': encoded}, {'foo.text': 'fob'}), 1)
示例#5
0
 def test_fail_on_dynamic_length(self):
     union = UnionTemplate('NotLegal', 'dymagic', parent=None)
     union.add(UInt(2, 'bar', None))
     struct = StructTemplate('Foo', 'foo', parent=None)
     struct.add(UInt(1, 'len', 22))
     struct.add(Char('len', 'dymagic', 'foo'))
     self.assertRaises(Exception, union.add, struct)
示例#6
0
文件: tools.py 项目: yamateh/Rammbock
def get_empty_recursive_struct():
    str_str = StructTemplate('StructStruct', '3pairs', parent=None)
    pair1 = get_empty_pair('pair1')
    pair2 = get_empty_pair('pair2')
    pair3 = get_empty_pair('pair3')
    str_str.add(pair1)
    str_str.add(pair2)
    str_str.add(pair3)
    return str_str
 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"))
示例#8
0
文件: tools.py 项目: yamateh/Rammbock
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
示例#9
0
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
示例#10
0
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
示例#11
0
def get_recursive_struct():
    str_str = StructTemplate('StructStruct', 'str_str', parent=None)
    inner = get_pair()
    str_str.add(inner)
    return str_str
示例#12
0
def get_pair():
    struct = StructTemplate('Pair', 'pair', parent=None)
    struct.add(UInt(2, 'first', 1))
    struct.add(UInt(2, 'second', 2))
    return struct
示例#13
0
文件: tools.py 项目: yamateh/Rammbock
def get_pair():
    struct = StructTemplate('Pair', 'pair', parent=None)
    struct.add(UInt(2, 'first', 1))
    struct.add(UInt(2, 'second', 2))
    return struct
示例#14
0
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
示例#15
0
 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"))
示例#16
0
 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"))
示例#17
0
文件: tools.py 项目: yamateh/Rammbock
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
示例#18
0
文件: tools.py 项目: yamateh/Rammbock
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
示例#19
0
文件: tools.py 项目: yamateh/Rammbock
def get_recursive_struct():
    str_str = StructTemplate('StructStruct', 'str_str', parent=None)
    inner = get_pair()
    str_str.add(inner)
    return str_str