Пример #1
0
 def test_ne_event_header_field_type(self):
     ec1, ec2 = self._create_event_classes()
     sc1 = bt2.StreamClass(name='my_stream_class', id=12,
                           packet_context_field_type=self._packet_context_ft,
                           event_context_field_type=self._event_context_ft,
                           event_classes=(ec1, ec2))
     ec1, ec2 = self._create_event_classes()
     sc2 = bt2.StreamClass(name='my_stream_class', id=12,
                           packet_context_field_type=self._packet_context_ft,
                           event_header_field_type=self._event_header_ft,
                           event_context_field_type=self._event_context_ft,
                           event_classes=(ec1, ec2))
     self.assertNotEqual(sc1, sc2)
 def setUp(self):
     self._trace = bt2.Trace()
     self._sc = bt2.StreamClass()
     self._ec = bt2.EventClass('salut')
     self._my_int_ft = bt2.IntegerFieldType(32)
     self._ec.payload_field_type = bt2.StructureFieldType()
     self._ec.payload_field_type += collections.OrderedDict([
         ('my_int', self._my_int_ft),
     ])
     self._sc.add_event_class(self._ec)
     self._clock_class = bt2.ClockClass('allo', 1000)
     self._trace.add_clock_class(self._clock_class)
     self._trace.packet_header_field_type = bt2.StructureFieldType()
     self._trace.packet_header_field_type += collections.OrderedDict([
         ('hello', self._my_int_ft),
     ])
     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['hello'] = 19487
     self._event = self._ec()
     self._event.add_clock_value(self._clock_class(1772))
     self._event.payload_field['my_int'] = 23
     self._event.packet = self._packet
Пример #3
0
 def setUp(self):
     self._trace_path = tempfile.mkdtemp()
     self._writer = bt2.CtfWriter(self._trace_path)
     self._cc = bt2.ClockClass('default', int(1e9))
     self._writer.trace.add_clock_class(self._cc)
     self._sc = bt2.StreamClass()
     pcft = bt2.StructureFieldType()
     pcft.append_field('packet_size', bt2.IntegerFieldType(32))
     pcft.append_field('content_size', bt2.IntegerFieldType(32))
     pcft.append_field('timestamp_begin', bt2.IntegerFieldType(64, mapped_clock_class=self._cc))
     pcft.append_field('timestamp_end', bt2.IntegerFieldType(64, mapped_clock_class=self._cc))
     self._sc.packet_context_field_type = pcft
Пример #4
0
 def _build_meta(self):
     self._trace = bt2.Trace()
     self._sc = bt2.StreamClass()
     self._ec = bt2.EventClass('salut')
     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._trace.add_stream_class(self._sc)
     self._stream = self._sc()
     self._packet = self._stream.create_packet()
Пример #5
0
 def setUp(self):
     self._packet_context_ft = bt2.StructureFieldType()
     self._packet_context_ft.append_field('menu', bt2.FloatingPointNumberFieldType())
     self._packet_context_ft.append_field('sticker', bt2.StringFieldType())
     self._event_header_ft = bt2.StructureFieldType()
     self._event_header_ft.append_field('id', bt2.IntegerFieldType(19))
     self._event_context_ft = bt2.StructureFieldType()
     self._event_context_ft.append_field('msg', bt2.StringFieldType())
     self._ec1, self._ec2 = self._create_event_classes()
     self._sc = bt2.StreamClass(name='my_stream_class', id=12,
                                packet_context_field_type=self._packet_context_ft,
                                event_header_field_type=self._event_header_ft,
                                event_context_field_type=self._event_context_ft,
                                event_classes=(self._ec1, self._ec2))
Пример #6
0
 def _create_stream_class(self, name, id):
     ec1, ec2 = self._create_event_classes()
     packet_context_fc = bt2.StructureFieldClass()
     packet_context_fc.append_field('menu',
                                    bt2.FloatingPointNumberFieldClass())
     packet_context_fc.append_field('sticker', bt2.StringFieldClass())
     event_header_fc = bt2.StructureFieldClass()
     event_header_fc.append_field('id', bt2.IntegerFieldClass(19))
     event_context_fc = bt2.StructureFieldClass()
     event_context_fc.append_field('msg', bt2.StringFieldClass())
     return bt2.StreamClass(name=name,
                            id=id,
                            packet_context_field_class=packet_context_fc,
                            event_header_field_class=event_header_fc,
                            event_context_field_class=event_context_fc,
                            event_classes=(ec1, ec2))
Пример #7
0
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
Пример #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()
Пример #9
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
Пример #10
0
    def _create_packet(self, with_ph=True, with_pc=True):
        # event header
        eh = bt2.StructureFieldType()
        eh += OrderedDict((
            ('id', bt2.IntegerFieldType(8)),
            ('ts', bt2.IntegerFieldType(32)),
        ))

        # stream event context
        sec = bt2.StructureFieldType()
        sec += OrderedDict((
            ('cpu_id', bt2.IntegerFieldType(8)),
            ('stuff', bt2.FloatingPointNumberFieldType()),
        ))

        # packet context
        if with_pc:
            pc = bt2.StructureFieldType()
            pc += OrderedDict((
                ('something', bt2.IntegerFieldType(8)),
                ('something_else', bt2.FloatingPointNumberFieldType()),
            ))
        else:
            pc = None

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

        # event context
        ec = bt2.StructureFieldType()
        ec += OrderedDict((
            ('ant', bt2.IntegerFieldType(16, is_signed=True)),
            ('msg', bt2.StringFieldType()),
        ))

        # event payload
        ep = bt2.StructureFieldType()
        ep += OrderedDict((
            ('giraffe', bt2.IntegerFieldType(32)),
            ('gnu', bt2.IntegerFieldType(8)),
            ('mosquito', bt2.IntegerFieldType(8)),
        ))

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

        # packet header
        if with_ph:
            ph = bt2.StructureFieldType()
            ph += OrderedDict((
                ('magic', bt2.IntegerFieldType(32)),
                ('stream_id', bt2.IntegerFieldType(16)),
            ))
        else:
            ph = None

        # trace c;ass
        tc = bt2.Trace()
        tc.packet_header_field_type = ph
        tc.add_stream_class(sc)

        # stream
        stream = sc()

        # packet
        return stream.create_packet()
 def test_no_id(self):
     sc = bt2.StreamClass()
     self.assertIsNone(sc.id)
Пример #12
0
    def _create_ec(self,
                   with_eh=True,
                   with_sec=True,
                   with_ec=True,
                   with_ep=True):
        # event header
        if with_eh:
            eh = bt2.StructureFieldClass()
            eh += OrderedDict((
                ('id', bt2.IntegerFieldClass(8)),
                ('ts', bt2.IntegerFieldClass(32)),
            ))
        else:
            eh = None

        # stream event context
        if with_sec:
            sec = bt2.StructureFieldClass()
            sec += OrderedDict((
                ('cpu_id', bt2.IntegerFieldClass(8)),
                ('stuff', bt2.FloatingPointNumberFieldClass()),
            ))
        else:
            sec = None

        # packet context
        pc = bt2.StructureFieldClass()
        pc += OrderedDict((
            ('something', bt2.IntegerFieldClass(8)),
            ('something_else', bt2.FloatingPointNumberFieldClass()),
        ))

        # stream class
        sc = bt2.StreamClass()
        sc.packet_context_field_class = pc
        sc.event_header_field_class = eh
        sc.event_context_field_class = sec

        # event context
        if with_ec:
            ec = bt2.StructureFieldClass()
            ec += OrderedDict((
                ('ant', bt2.IntegerFieldClass(16, is_signed=True)),
                ('msg', bt2.StringFieldClass()),
            ))
        else:
            ec = None

        # event payload
        if with_ep:
            ep = bt2.StructureFieldClass()
            ep += OrderedDict((
                ('giraffe', bt2.IntegerFieldClass(32)),
                ('gnu', bt2.IntegerFieldClass(8)),
                ('mosquito', bt2.IntegerFieldClass(8)),
            ))
        else:
            ep = None

        # event class
        event_class = bt2.EventClass('ec')
        event_class.context_field_class = ec
        event_class.payload_field_class = ep
        sc.add_event_class(event_class)
        return event_class
Пример #13
0
 def test_stream_class_prop(self):
     sc = bt2.StreamClass()
     sc.add_event_class(self._ec)
     self.assertEqual(self._ec.stream_class.addr, sc.addr)
Пример #14
0
    def _create_stream(self, name='my_stream', stream_id=None):
        # event header
        eh = bt2.StructureFieldClass()
        eh += OrderedDict((
            ('id', bt2.IntegerFieldClass(8)),
            ('ts', bt2.IntegerFieldClass(32)),
        ))

        # stream event context
        sec = bt2.StructureFieldClass()
        sec += OrderedDict((
            ('cpu_id', bt2.IntegerFieldClass(8)),
            ('stuff', bt2.FloatingPointNumberFieldClass()),
        ))

        # packet context
        pc = bt2.StructureFieldClass()
        pc += OrderedDict((
            ('something', bt2.IntegerFieldClass(8)),
            ('something_else', bt2.FloatingPointNumberFieldClass()),
        ))

        # stream class
        sc = bt2.StreamClass()
        sc.packet_context_field_class = pc
        sc.event_header_field_class = eh
        sc.event_context_field_class = sec

        # event context
        ec = bt2.StructureFieldClass()
        ec += OrderedDict((
            ('ant', bt2.IntegerFieldClass(16, is_signed=True)),
            ('msg', bt2.StringFieldClass()),
        ))

        # event payload
        ep = bt2.StructureFieldClass()
        ep += OrderedDict((
            ('giraffe', bt2.IntegerFieldClass(32)),
            ('gnu', bt2.IntegerFieldClass(8)),
            ('mosquito', bt2.IntegerFieldClass(8)),
        ))

        # event class
        event_class = bt2.EventClass('ec')
        event_class.context_field_class = ec
        event_class.payload_field_class = ep
        sc.add_event_class(event_class)

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

        # trace c;ass
        tc = bt2.Trace()
        tc.packet_header_field_class = ph
        tc.add_stream_class(sc)

        # stream
        return sc(name=name, id=stream_id)