def setUp(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._clock_class = bt2.ClockClass('allo', 1000)
     self._trace.add_clock_class(self._clock_class)
     self._trace.packet_header_field_class = bt2.StructureFieldClass()
     self._trace.packet_header_field_class += collections.OrderedDict([
         ('hello', self._my_int_fc),
     ])
     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.clock_snapshots.add(self._clock_class(1772))
     self._event.payload_field['my_int'] = 23
     self._event.packet = self._packet
Exemple #2
0
    def _set_value(self, values):
        original_length_field = self.length_field
        if original_length_field is not None:
            original_values = self._value

        if len(values) != self.length_field:
            if self.length_field is not None:
                length_fc = self.length_field.field_class
            else:
                length_fc = bt2.IntegerFieldClass(size=64, is_signed=False)
            self.length_field = length_fc(len(values))

        try:
            for index, value in enumerate(values):
                if value is not None:
                    self[index].value = value
                else:
                    self[index].reset()
        except:
            if original_length_field is not None:
                self.length_field = original_length_field
                self.value = original_values
            else:
                self.reset()
            raise
Exemple #3
0
 def test_at_index(self):
     a_fc = bt2.IntegerFieldClass(32)
     b_fc = bt2.StringFieldClass()
     c_fc = bt2.FloatingPointNumberFieldClass()
     self._fc.append_field('c', c_fc)
     self._fc.append_field('a', a_fc)
     self._fc.append_field('b', b_fc)
     self.assertEqual(self._fc.at_index(1), a_fc)
Exemple #4
0
 def test_stream(self):
     tc = bt2.Trace()
     tc.packet_header_field_class = bt2.StructureFieldClass()
     tc.packet_header_field_class.append_field('magic',
                                               bt2.IntegerFieldClass(32))
     tc.packet_header_field_class.append_field('stream_id',
                                               bt2.IntegerFieldClass(16))
     tc.add_stream_class(self._ec.stream_class)
     ev = self._ec()
     self._fill_ev(ev)
     stream = self._ec.stream_class()
     packet = stream.create_packet()
     packet.header_field['magic'] = 0xc1fc1fc1
     packet.header_field['stream_id'] = 0
     packet.context_field['something'] = 154
     packet.context_field['something_else'] = 17.2
     ev.packet = packet
     self.assertEqual(ev.stream.addr, stream.addr)
Exemple #5
0
 def setUp(self):
     self._context_fc = bt2.StructureFieldClass()
     self._context_fc.append_field('allo', bt2.StringFieldClass())
     self._context_fc.append_field('zola', bt2.IntegerFieldClass(18))
     self._payload_fc = bt2.StructureFieldClass()
     self._payload_fc.append_field('zoom', bt2.StringFieldClass())
     self._ec = bt2.EventClass('my_event')
     self._ec.id = 18
     self._ec.emf_uri = 'yes'
     self._ec.log_level = bt2.EventClassLogLevel.INFO
     self._ec.context_field_class = self._context_fc
     self._ec.payload_field_class = self._payload_fc
 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()
Exemple #7
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()
Exemple #8
0
 def test_create_full(self):
     cc = bt2.ClockClass('name', 1000)
     fc = bt2.IntegerFieldClass(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(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)
     self.assertEqual(fc.mapped_clock_class, cc)
Exemple #9
0
    def test_getitem(self):
        tc = bt2.Trace()
        tc.packet_header_field_class = bt2.StructureFieldClass()
        tc.packet_header_field_class.append_field('magic',
                                                  bt2.IntegerFieldClass(32))
        tc.packet_header_field_class.append_field('stream_id',
                                                  bt2.IntegerFieldClass(16))
        tc.add_stream_class(self._ec.stream_class)
        ev = self._ec()
        self._fill_ev(ev)
        stream = self._ec.stream_class()
        packet = stream.create_packet()
        packet.header_field['magic'] = 0xc1fc1fc1
        packet.header_field['stream_id'] = 0
        packet.context_field['something'] = 154
        packet.context_field['something_else'] = 17.2

        with self.assertRaises(KeyError):
            ev['magic']

        ev.packet = packet
        self.assertEqual(ev['mosquito'], 42)
        self.assertEqual(ev['gnu'], 23)
        self.assertEqual(ev['giraffe'], 1)
        self.assertEqual(ev['msg'], 'hellooo')
        self.assertEqual(ev['ant'], -1)
        self.assertEqual(ev['stuff'], 13.194)
        self.assertEqual(ev['cpu_id'], 1)
        self.assertEqual(ev['ts'], 1234)
        self.assertEqual(ev['id'], 23)
        self.assertEqual(ev['something_else'], 17.2)
        self.assertEqual(ev['something'], 154)
        self.assertEqual(ev['stream_id'], 0)
        self.assertEqual(ev['magic'], 0xc1fc1fc1)

        with self.assertRaises(KeyError):
            ev['yes']
Exemple #10
0
 def _create_event_classes(self):
     context_fc = bt2.StructureFieldClass()
     context_fc.append_field('allo', bt2.StringFieldClass())
     context_fc.append_field('zola', bt2.IntegerFieldClass(18))
     payload_fc = bt2.StructureFieldClass()
     payload_fc.append_field('zoom', bt2.StringFieldClass())
     ec1 = bt2.EventClass('event23',
                          id=23,
                          context_field_class=context_fc,
                          payload_field_class=payload_fc)
     ec2 = bt2.EventClass('event17',
                          id=17,
                          context_field_class=payload_fc,
                          payload_field_class=context_fc)
     return ec1, ec2
Exemple #11
0
    def test_iter(self):
        a_fc = bt2.IntegerFieldClass(32)
        b_fc = bt2.StringFieldClass()
        c_fc = bt2.FloatingPointNumberFieldClass()
        fields = (
            ('a', a_fc),
            ('b', b_fc),
            ('c', c_fc),
        )

        for field in fields:
            self._fc.append_field(*field)

        for (name, fc_field_class), field in zip(self._fc.items(), fields):
            self.assertEqual(name, field[0])
            self.assertEqual(fc_field_class, field[1])
Exemple #12
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))
 def setUp(self):
     self._packet_context_fc = bt2.StructureFieldClass()
     self._packet_context_fc.append_field(
         'menu', bt2.FloatingPointNumberFieldClass())
     self._packet_context_fc.append_field('sticker', bt2.StringFieldClass())
     self._event_header_fc = bt2.StructureFieldClass()
     self._event_header_fc.append_field('id', bt2.IntegerFieldClass(19))
     self._event_context_fc = bt2.StructureFieldClass()
     self._event_context_fc.append_field('msg', bt2.StringFieldClass())
     self._ec1, self._ec2 = self._create_event_classes()
     self._sc = bt2.StreamClass(
         name='my_stream_class',
         id=12,
         packet_context_field_class=self._packet_context_fc,
         event_header_field_class=self._event_header_fc,
         event_context_field_class=self._event_context_fc,
         event_classes=(self._ec1, self._ec2))
Exemple #14
0
 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)
Exemple #15
0
 def setUp(self):
     self._elem_fc = bt2.IntegerFieldClass(23)
     self._fc = bt2.ArrayFieldClass(self._elem_fc, 45)
Exemple #16
0
    def test_at_index_out_of_bounds_after(self):
        self._fc.append_field('c', bt2.IntegerFieldClass(32))

        with self.assertRaises(IndexError):
            self._fc.at_index(len(self._fc))
Exemple #17
0
    def test_at_index_invalid(self):
        self._fc.append_field('c', bt2.IntegerFieldClass(32))

        with self.assertRaises(TypeError):
            self._fc.at_index('yes')
Exemple #18
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
Exemple #19
0
 def _get_std_header(self):
     header_fc = bt2.StructureFieldClass()
     header_fc.append_field('magic', bt2.IntegerFieldClass(32))
     header_fc.append_field('stream_id', bt2.IntegerFieldClass(32))
     return header_fc
Exemple #20
0
 def test_append_field_kwargs(self):
     int_field_class = bt2.IntegerFieldClass(32)
     self._fc.append_field(name='int32', field_class=int_field_class)
     field_class = self._fc['int32']
     self.assertEqual(field_class, int_field_class)
Exemple #21
0
 def test_assign_packet_header_field_class(self):
     header_fc = bt2.StructureFieldClass()
     header_fc.append_field('magic', bt2.IntegerFieldClass(32))
     self._tc.packet_header_field_class = header_fc
     self.assertEqual(self._tc.packet_header_field_class, header_fc)
Exemple #22
0
 def test_create_invalid_size(self):
     with self.assertRaises(TypeError):
         fc = bt2.IntegerFieldClass('yes')
Exemple #23
0
 def setUp(self):
     self._elem_fc = bt2.IntegerFieldClass(23)
     self._fc = bt2.SequenceFieldClass(self._elem_fc, 'the.length')
Exemple #24
0
 def test_create_neg_zero(self):
     with self.assertRaises(ValueError):
         fc = bt2.IntegerFieldClass(0)
Exemple #25
0
 def setUp(self):
     self._fc = bt2.IntegerFieldClass(35)
Exemple #26
0
 def test_create_from_int_fc(self):
     int_fc = bt2.IntegerFieldClass(23)
     self._fc = bt2.EnumerationFieldClass(int_fc)
Exemple #27
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)
Exemple #28
0
    def _create_packet(self, with_ph=True, with_pc=True):
        # 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
        if with_pc:
            pc = bt2.StructureFieldClass()
            pc += OrderedDict((
                ('something', bt2.IntegerFieldClass(8)),
                ('something_else', bt2.FloatingPointNumberFieldClass()),
            ))
        else:
            pc = None

        # 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
        if with_ph:
            ph = bt2.StructureFieldClass()
            ph += OrderedDict((
                ('magic', bt2.IntegerFieldClass(32)),
                ('stream_id', bt2.IntegerFieldClass(16)),
            ))
        else:
            ph = None

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

        # stream
        stream = sc()

        # packet
        return stream.create_packet()