def test_create_full(self): fc = bt2.EnumerationFieldClass(size=24, alignment=16, byte_order=bt2.ByteOrder.BIG_ENDIAN, is_signed=True, base=bt2.Base.OCTAL, encoding=bt2.Encoding.NONE, mapped_clock_class=None) self.assertEqual(fc.size, 24) self.assertEqual(fc.alignment, 16) self.assertEqual(fc.byte_order, bt2.ByteOrder.BIG_ENDIAN) self.assertTrue(fc.is_signed) self.assertEqual(fc.base, bt2.Base.OCTAL) self.assertEqual(fc.encoding, bt2.Encoding.NONE)
def test_iadd(self): struct_fc = bt2.StructureFieldClass() c_field_class = bt2.StringFieldClass() d_field_class = bt2.EnumerationFieldClass(size=32) e_field_class = bt2.StructureFieldClass() struct_fc.append_field('c_string', c_field_class) struct_fc.append_field('d_enum', d_field_class) struct_fc.append_field('e_struct', e_field_class) a_field_class = bt2.FloatingPointNumberFieldClass() b_field_class = bt2.IntegerFieldClass(17) self._fc.append_field('a_float', a_field_class) self._fc.append_field('b_int', b_field_class) self._fc += struct_fc self.assertEqual(self._fc['a_float'], a_field_class) self.assertEqual(self._fc['b_int'], b_field_class) self.assertEqual(self._fc['c_string'], c_field_class) self.assertEqual(self._fc['d_enum'], d_field_class) self.assertEqual(self._fc['e_struct'], e_field_class)
def test_iadd(self): enum_fc = bt2.EnumerationFieldClass(size=16) enum_fc.add_mapping('c', 4, 5) enum_fc.add_mapping('d', 6, 18) enum_fc.add_mapping('e', 20, 27) self._fc.add_mapping('a', 0, 2) self._fc.add_mapping('b', 3) self._fc += enum_fc self.assertEqual(self._fc[0].name, 'a') self.assertEqual(self._fc[0].lower, 0) self.assertEqual(self._fc[0].upper, 2) self.assertEqual(self._fc[1].name, 'b') self.assertEqual(self._fc[1].lower, 3) self.assertEqual(self._fc[1].upper, 3) self.assertEqual(self._fc[2].name, 'c') self.assertEqual(self._fc[2].lower, 4) self.assertEqual(self._fc[2].upper, 5) self.assertEqual(self._fc[3].name, 'd') self.assertEqual(self._fc[3].lower, 6) self.assertEqual(self._fc[3].upper, 18) self.assertEqual(self._fc[4].name, 'e') self.assertEqual(self._fc[4].lower, 20) self.assertEqual(self._fc[4].upper, 27)
def test_find_by_value_unsigned(self): self._test_find_by_value(bt2.EnumerationFieldClass(size=8))
def test_find_by_value_signed(self): self._test_find_by_value(bt2.EnumerationFieldClass(size=8, is_signed=True))
def test_mapping_eq_invalid(self): enum1 = bt2.EnumerationFieldClass(size=32) enum1.add_mapping('b', 1, 3) self.assertNotEqual(enum1[0], 23)
def test_mapping_eq(self): enum1 = bt2.EnumerationFieldClass(size=32) enum2 = bt2.EnumerationFieldClass(size=16) enum1.add_mapping('b', 1, 3) enum2.add_mapping('b', 1, 3) self.assertEqual(enum1[0], enum2[0])
def test_integer_field_class_prop(self): int_fc = bt2.IntegerFieldClass(23) enum_fc = bt2.EnumerationFieldClass(int_fc) self.assertEqual(enum_fc.integer_field_class.addr, int_fc.addr)
def test_create_from_invalid_fc(self): with self.assertRaises(TypeError): fc = bt2.FloatingPointNumberFieldClass() self._fc = bt2.EnumerationFieldClass(fc)
def test_create_from_invalid_type(self): with self.assertRaises(TypeError): self._fc = bt2.EnumerationFieldClass('coucou')
def test_create_from_int_fc(self): int_fc = bt2.IntegerFieldClass(23) self._fc = bt2.EnumerationFieldClass(int_fc)
def setUp(self): self._fc = bt2.EnumerationFieldClass(size=35)