Beispiel #1
0
 def test_ne_payload_field(self):
     tc = bt2.Trace()
     tc.add_stream_class(self._ec.stream_class)
     cc = bt2.ClockClass('hi', 1000)
     tc.add_clock_class(cc)
     ev1 = self._ec()
     self._fill_ev(ev1)
     ev1.payload_field['mosquito'] = 98
     ev1.clock_snapshots.add(cc(234))
     ev2 = self._ec()
     self._fill_ev(ev2)
     ev2.clock_snapshots.add(cc(234))
     self.assertNotEqual(ev1, ev2)
Beispiel #2
0
 def test_ne_context_field(self):
     tc = bt2.Trace()
     tc.add_stream_class(self._ec.stream_class)
     cc = bt2.ClockClass('hi', 1000)
     tc.add_clock_class(cc)
     ev1 = self._ec()
     self._fill_ev(ev1)
     ev1.context_field['ant'] = -3
     ev1.clock_snapshots.add(cc(234))
     ev2 = self._ec()
     self._fill_ev(ev2)
     ev2.clock_snapshots.add(cc(234))
     self.assertNotEqual(ev1, ev2)
Beispiel #3
0
 def test_create_full(self):
     header_ft = bt2.StructureFieldType()
     header_ft.append_field('magic', bt2.IntegerFieldType(32))
     clock_classes = bt2.ClockClass('cc1'), bt2.ClockClass('cc2')
     sc = self._create_stream_class('sc1', 3)
     tc = bt2.Trace(name='my name',
                    native_byte_order=bt2.ByteOrder.LITTLE_ENDIAN,
                    env={
                        'the_string': 'value',
                        'the_int': 23
                    },
                    packet_header_field_type=header_ft,
                    clock_classes=clock_classes,
                    stream_classes=(sc, ))
     self.assertEqual(tc.name, 'my name')
     self.assertEqual(tc.native_byte_order, bt2.ByteOrder.LITTLE_ENDIAN)
     self.assertEqual(tc.env['the_string'], 'value')
     self.assertEqual(tc.env['the_int'], 23)
     self.assertEqual(tc.packet_header_field_type, header_ft)
     self.assertEqual(tc.clock_classes['cc1'], clock_classes[0])
     self.assertEqual(tc.clock_classes['cc2'], clock_classes[1])
     self.assertEqual(tc[3], sc)
 def test_create_full(self):
     cc = bt2.ClockClass('name', 1000)
     ft = bt2.IntegerFieldType(24, alignment=16,
                               byte_order=bt2.ByteOrder.BIG_ENDIAN,
                               is_signed=True, base=bt2.Base.OCTAL,
                               encoding=bt2.Encoding.NONE,
                               mapped_clock_class=cc)
     self.assertEqual(ft.size, 24)
     self.assertEqual(ft.alignment, 16)
     self.assertEqual(ft.byte_order, bt2.ByteOrder.BIG_ENDIAN)
     self.assertTrue(ft.is_signed)
     self.assertEqual(ft.base, bt2.Base.OCTAL)
     self.assertEqual(ft.encoding, bt2.Encoding.NONE)
     self.assertEqual(ft.mapped_clock_class, cc)
 def test_ne_prio(self):
     cc1 = bt2.ClockClass('meow', 1234)
     cc2 = bt2.ClockClass('mix', 5678)
     cc3 = bt2.ClockClass('lel', 1548)
     cc_prio_map = bt2.ClockClassPriorityMap({cc1: 17, cc2: 2, cc3: 25})
     other_cc1 = bt2.ClockClass('meow', 1234)
     other_cc2 = bt2.ClockClass('mix', 5678)
     other_cc3 = bt2.ClockClass('lel', 1548)
     other_cc_prio_map = bt2.ClockClassPriorityMap({other_cc1: 17, other_cc2: 3, other_cc3: 25})
     self.assertNotEqual(cc_prio_map, other_cc_prio_map)
 def test_create_full(self):
     my_uuid = uuid.uuid1()
     cc = bt2.ClockClass(name='name',
                         description='some description',
                         frequency=1001,
                         precision=176,
                         offset=bt2.ClockClassOffset(45, 3003),
                         is_absolute=True,
                         uuid=my_uuid)
     self.assertEqual(cc.name, 'name')
     self.assertEqual(cc.description, 'some description')
     self.assertEqual(cc.frequency, 1001)
     self.assertEqual(cc.precision, 176)
     self.assertEqual(cc.offset, bt2.ClockClassOffset(45, 3003))
     self.assertEqual(cc.is_absolute, True)
     self.assertEqual(cc.uuid, copy.deepcopy(my_uuid))
def _create_ec():
    # clock class
    cc = bt2.ClockClass('salut_clock')

    # event header
    eh = bt2.StructureFieldType()
    eh += OrderedDict((
        ('id', bt2.IntegerFieldType(8)),
        ('ts', bt2.IntegerFieldType(32, mapped_clock_class=cc)),
    ))

    # packet context
    pc = bt2.StructureFieldType()
    pc += OrderedDict((('something', bt2.IntegerFieldType(8)), ))

    # stream class
    sc = bt2.StreamClass()
    sc.packet_context_field_type = pc
    sc.event_header_field_type = eh
    sc.event_context_field_type = None

    # event payload
    ep = bt2.StructureFieldType()
    ep += OrderedDict((('mosquito', bt2.StringFieldType()), ))

    # event class
    event_class = bt2.EventClass('ec', id=0)
    event_class.context_field_type = None
    event_class.payload_field_type = ep
    sc.add_event_class(event_class)

    # packet header
    ph = bt2.StructureFieldType()
    ph += OrderedDict((
        ('magic', bt2.IntegerFieldType(32)),
        ('stream_id', bt2.IntegerFieldType(16)),
    ))

    # trace
    trace = bt2.Trace()
    trace.packet_header_field_type = ph
    trace.add_clock_class(cc)
    trace.add_stream_class(sc)
    return event_class
Beispiel #8
0
 def setUp(self):
     self._trace = bt2.Trace()
     self._sc = bt2.StreamClass()
     self._ec = bt2.EventClass('salut')
     self._clock_class = bt2.ClockClass('yo', 1000)
     self._uint64_int_fc = bt2.IntegerFieldClass(64, mapped_clock_class=self._clock_class)
     self._my_int_fc = bt2.IntegerFieldClass(32)
     self._ec.payload_field_class = bt2.StructureFieldClass()
     self._ec.payload_field_class += collections.OrderedDict([
         ('my_int', self._my_int_fc),
     ])
     self._sc.add_event_class(self._ec)
     self._sc.packet_context_field_class = bt2.StructureFieldClass()
     self._sc.packet_context_field_class += collections.OrderedDict([
         ('events_discarded', self._my_int_fc),
         ('timestamp_begin', self._uint64_int_fc),
         ('timestamp_end', self._uint64_int_fc),
     ])
     self._trace.add_clock_class(self._clock_class)
     self._trace.add_stream_class(self._sc)
     self._stream = self._sc()
 def test_create_invalid_no_name(self):
     with self.assertRaises(TypeError):
         bt2.ClockClass()
 def setUp(self):
     self._cc = bt2.ClockClass('salut', 1000000)
 def test_ne_clock_class(self):
     cc1 = bt2.ClockClass('yes', 1500)
     cc2 = bt2.ClockClass('yes', 1501)
     cv1 = cc1(123)
     cv2 = cc2(123)
     self.assertNotEqual(cv1, cv2)
 def setUp(self):
     self._cc = bt2.ClockClass('salut',
                               1000,
                               offset=bt2.ClockClassOffset(45, 354))
     self._cv = self._cc(123)
Beispiel #13
0
 def test_ne_clock_class(self):
     cc1 = bt2.ClockClass('yes')
     cc2 = bt2.ClockClass('yes')
     cv1 = cc1.create_clock_value(123)
     cv2 = cc2.create_clock_value(123)
     self.assertNotEqual(cv1, cv2)
 def setUp(self):
     self._cc1 = bt2.ClockClass('cc1', 1000)
     self._cc2 = bt2.ClockClass('cc2', 2000)
     self._cc_prio_map = bt2.ClockClassPriorityMap()
     self._cc_prio_map[self._cc1] = 25
     self._cc_prio_map[self._cc2] = 50
    def test_setitem_wrong_value_type(self):
        cc_prio_map = bt2.ClockClassPriorityMap()
        cc1 = bt2.ClockClass('mix', 5678)

        with self.assertRaises(TypeError):
            cc_prio_map[cc1] = 'priority'
 def test_assign_mapped_clock_class(self):
     cc = bt2.ClockClass('name', 1000)
     self._ft.mapped_clock_class = cc
     self.assertEqual(self._ft.mapped_clock_class, cc)
Beispiel #17
0
    def setUp(self):
        self._values = {
            'ph_field_1': 42,
            'ph_field_2': 'bla bla',
            'spc_field': 'some string',
            'seh_field': 'another string',
            'sec_field': 68752,
            'ec_field': 89,
            'ef_field': 8476,
        }

        self._int_ft = bt2.IntegerFieldType(32)
        self._str_ft = bt2.StringFieldType()

        self._trace = bt2.Trace()
        self._trace.packet_header_field_type = bt2.StructureFieldType()
        self._trace.packet_header_field_type += collections.OrderedDict([
            ('ph_field_1', self._int_ft),
            ('ph_field_2', self._str_ft),
        ])

        self._sc = bt2.StreamClass()
        self._sc.packet_context_field_type = bt2.StructureFieldType()
        self._sc.packet_context_field_type += collections.OrderedDict([
            ('spc_field', self._str_ft),
        ])

        self._sc.event_header_field_type = bt2.StructureFieldType()
        self._sc.event_header_field_type += collections.OrderedDict([
            ('seh_field', self._str_ft),
        ])

        self._sc.event_context_field_type = bt2.StructureFieldType()
        self._sc.event_context_field_type += collections.OrderedDict([
            ('sec_field', self._int_ft),
        ])

        self._clock_class = bt2.ClockClass('allo', 1000)
        self._trace.add_clock_class(self._clock_class)

        self._ec = bt2.EventClass('event_class_name')
        self._ec.context_field_type = bt2.StructureFieldType()
        self._ec.context_field_type += collections.OrderedDict([
            ('ec_field', self._int_ft),
        ])
        self._ec.payload_field_type = bt2.StructureFieldType()
        self._ec.payload_field_type += collections.OrderedDict([
            ('ef_field', self._int_ft),
        ])

        self._sc.add_event_class(self._ec)

        self._trace.add_stream_class(self._sc)
        self._cc_prio_map = bt2.ClockClassPriorityMap()
        self._cc_prio_map[self._clock_class] = 231
        self._stream = self._sc()
        self._packet = self._stream.create_packet()
        self._packet.header_field['ph_field_1'] = self._values['ph_field_1']
        self._packet.header_field['ph_field_2'] = self._values['ph_field_2']
        self._packet.context_field['spc_field'] = self._values['spc_field']

        self._event = self._ec()
        self._event.add_clock_value(self._clock_class(1772))
        self._event.header_field['seh_field'] = self._values['seh_field']
        self._event.stream_event_context_field['sec_field'] = self._values[
            'sec_field']
        self._event.context_field['ec_field'] = self._values['ec_field']
        self._event.payload_field['ef_field'] = self._values['ef_field']
        self._event.packet = self._packet
Beispiel #18
0
 def setUp(self):
     self._cc = bt2.ClockClass('salut')
     self._cv = self._cc.create_clock_value(123)