예제 #1
0
 def test_emptySpareField(self):
     """
     You can't insert a 0-sized spare. It makes no sense, too.
     Just comment the field if you don't need a field anymore.
     """
     spare_desc = ET.fromstring('<field type="spare" bits="0">woot</field>')
     self.assertRaises(ValueError, lambda : structureparser.parse_field(spare_desc))
예제 #2
0
 def test_emptySpareField(self):
     """
     You can't insert a 0-sized spare. It makes no sense, too.
     Just comment the field if you don't need a field anymore.
     """
     spare_desc = ET.fromstring('<field type="spare" bits="0">woot</field>')
     self.assertRaises(ValueError, lambda: structureparser.parse_field(spare_desc))
예제 #3
0
 def test_bool_doesnotexist(self):
     bool_desc = ET.fromstring('<field type="bool25">a_field</field>')
     self.assertRaises(ValueError, lambda : structureparser.parse_field(bool_desc))
예제 #4
0
 def test_spareField(self):
     spare_desc = ET.fromstring('<field type="spare" bits="8">woot</field>')
     parsed_field = structureparser.parse_field(spare_desc)
     self.assertEqual(parsed_field["name"], "woot")
     self.assertEqual(parsed_field["type"], "spare")
     self.assertEqual(parsed_field["bits"], 8)
예제 #5
0
 def test_paddingBits(self):
     padding_desc = ET.fromstring('<field type="padding">dis_not_pudding</field>')
     parsed_field = structureparser.parse_field(padding_desc)
     self.assertEqual(parsed_field["name"], "dis_not_pudding")
     self.assertEqual(parsed_field["type"], "padding")
     self.assertEqual(parsed_field["bits"], 0)
예제 #6
0
 def test_spare_nosize(self):
     spare_desc = ET.fromstring('<field type="spare"></field>')
     result = structureparser.parse_field(spare_desc)
예제 #7
0
 def test_schar(self):
     char_desc = ET.fromstring('<field type="schar">a_field</field>')
     parsed_field = structureparser.parse_field(char_desc)
     self.assertEqual(parsed_field["type"], "schar")
     self.assertEqual(parsed_field["bits"], 8)
예제 #8
0
 def test_bool32(self):
     bool_desc = ET.fromstring('<field type="bool32">a_field</field>')
     parsed_field = structureparser.parse_field(bool_desc)
     self.assertEqual(parsed_field["bits"], 32)
예제 #9
0
 def test_spare_size_ignored_lenght(self):
     parsed_doc = parser.parse_field(ET.fromstring('<field type="spare" lenght="10">test</field>'))
     res = ws.build_field(parsed_doc)
     self.assertEqual("spare test;", res)
예제 #10
0
 def test_int8_repeated_variable(self):
     parsed_doc = parser.parse_field(ET.fromstring('<field type="uint8" repeated="num_of_nums">test</field>'))
     res = ws.build_field(parsed_doc)
     self.assertEqual("uint8[num_of_nums] test;", res)
예제 #11
0
 def test_int8_repeated(self):
     parsed_doc = parser.parse_field(ET.fromstring('<field type="uint8" repeated="5">test</field>'))
     res = ws.build_field(parsed_doc)
     self.assertEqual("uint8[5] test;", res)
예제 #12
0
 def test_int8(self):
     parsed_doc = parser.parse_field(ET.fromstring('<field type="uint8" bits="0">test</field>'))
     res = ws.build_field(parsed_doc)
     self.assertEqual("uint8 test;", res)
예제 #13
0
 def test_spare_nosize(self):
     parsed_doc = parser.parse_field(
         ET.fromstring('<field type="spare">test</field>'))
     res = ws.build_field(parsed_doc)
     self.assertEqual("spare test;", res)
예제 #14
0
 def test_spare_size_ignored_lenght(self):
     parsed_doc = parser.parse_field(
         ET.fromstring('<field type="spare" lenght="10">test</field>'))
     res = ws.build_field(parsed_doc)
     self.assertEqual("spare test;", res)
예제 #15
0
 def test_int8_repeated_variable(self):
     parsed_doc = parser.parse_field(
         ET.fromstring(
             '<field type="uint8" repeated="num_of_nums">test</field>'))
     res = ws.build_field(parsed_doc)
     self.assertEqual("uint8[num_of_nums] test;", res)
예제 #16
0
 def test_int8_repeated(self):
     parsed_doc = parser.parse_field(
         ET.fromstring('<field type="uint8" repeated="5">test</field>'))
     res = ws.build_field(parsed_doc)
     self.assertEqual("uint8[5] test;", res)
예제 #17
0
 def test_spareField(self):
     spare_desc = ET.fromstring('<field type="spare" bits="8">woot</field>')
     parsed_field = structureparser.parse_field(spare_desc)
     self.assertEqual(parsed_field["name"], "woot")
     self.assertEqual(parsed_field["type"], "spare")
     self.assertEqual(parsed_field["bits"], 8)
예제 #18
0
 def test_spare_nosize(self):
     parsed_doc = parser.parse_field(ET.fromstring('<field type="spare">test</field>'))
     res = ws.build_field(parsed_doc)
     self.assertEqual("spare test;", res)
예제 #19
0
 def test_bool_doesnotexist(self):
     bool_desc = ET.fromstring('<field type="bool25">a_field</field>')
     self.assertRaises(ValueError, lambda: structureparser.parse_field(bool_desc))
예제 #20
0
 def test_raw_withsize(self):
     char_desc = ET.fromstring('<field type="raw" lenght="5">a_field</field>')
     parsed_field = structureparser.parse_field(char_desc)
     self.assertEqual(parsed_field["type"], "raw")
     self.assertEqual(parsed_field["bits"], 40)
예제 #21
0
 def test_raw_withsize(self):
     char_desc = ET.fromstring('<field type="raw" lenght="5">a_field</field>')
     parsed_field = structureparser.parse_field(char_desc)
     self.assertEqual(parsed_field["type"], "raw")
     self.assertEqual(parsed_field["bits"], 40)
예제 #22
0
 def test_spare_wrongsize(self):
     spare_desc = ET.fromstring('<field type="spare" bits="a">woot</field>')
     self.assertRaises(ValueError, lambda: structureparser.parse_field(spare_desc))
예제 #23
0
 def test_spare_wrongsize(self):
     spare_desc = ET.fromstring('<field type="spare" bits="a">woot</field>')
     self.assertRaises(ValueError, lambda : structureparser.parse_field(spare_desc))
예제 #24
0
 def test_spare_nosize(self):
     spare_desc = ET.fromstring('<field type="spare"></field>')
     result = structureparser.parse_field(spare_desc)
예제 #25
0
 def test_float64(self):
     float_desc = ET.fromstring('<field type="float64">woot</field>')
     parsed_field = structureparser.parse_field(float_desc)
     self.assertEqual(parsed_field["name"], "woot")
     self.assertEqual(parsed_field["type"], "float64")
     self.assertEqual(parsed_field["bits"], 64)
예제 #26
0
 def test_float64(self):
     float_desc = ET.fromstring('<field type="float64">woot</field>')
     parsed_field = structureparser.parse_field(float_desc)
     self.assertEqual(parsed_field["name"], "woot")
     self.assertEqual(parsed_field["type"], "float64")
     self.assertEqual(parsed_field["bits"], 64)
예제 #27
0
 def test_paddingBits_sizeIsIgnored(self):
     padding_desc = ET.fromstring('<field type="padding" bits="15">dis_not_pudding</field>')
     parsed_field = structureparser.parse_field(padding_desc)
     #`bits` is overridden
     self.assertEqual(parsed_field["bits"], 0) 
예제 #28
0
 def test_paddingBits(self):
     padding_desc = ET.fromstring('<field type="padding">dis_not_pudding</field>')
     parsed_field = structureparser.parse_field(padding_desc)
     self.assertEqual(parsed_field["name"], "dis_not_pudding")
     self.assertEqual(parsed_field["type"], "padding")
     self.assertEqual(parsed_field["bits"], 0)
예제 #29
0
 def test_bool32(self):
     bool_desc = ET.fromstring('<field type="bool32">a_field</field>')
     parsed_field = structureparser.parse_field(bool_desc)
     self.assertEqual(parsed_field["bits"], 32)
예제 #30
0
 def test_paddingBits_sizeIsIgnored(self):
     padding_desc = ET.fromstring('<field type="padding" bits="15">dis_not_pudding</field>')
     parsed_field = structureparser.parse_field(padding_desc)
     # `bits` is overridden
     self.assertEqual(parsed_field["bits"], 0)
예제 #31
0
 def test_schar(self):
     char_desc = ET.fromstring('<field type="schar">a_field</field>')
     parsed_field = structureparser.parse_field(char_desc)
     self.assertEqual(parsed_field["type"], "schar")
     self.assertEqual(parsed_field["bits"], 8)
예제 #32
0
 def test_int8(self):
     parsed_doc = parser.parse_field(
         ET.fromstring('<field type="uint8" bits="0">test</field>'))
     res = ws.build_field(parsed_doc)
     self.assertEqual("uint8 test;", res)