コード例 #1
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
コード例 #2
0
ファイル: test_trace.py プロジェクト: stephening/babeltrace
 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
コード例 #3
0
ファイル: test_trace.py プロジェクト: stephening/babeltrace
 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))
コード例 #4
0
 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))
コード例 #5
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)
コード例 #6
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])
コード例 #7
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)
コード例 #8
0
ファイル: test_trace.py プロジェクト: stephening/babeltrace
 def test_ne_packet_header_field_class(self):
     cc1, cc2, sc1, sc2, header_fc = self._test_eq_create_objects()
     tc1 = bt2.Trace(name='my name',
                     native_byte_order=bt2.ByteOrder.LITTLE_ENDIAN,
                     env={
                         'the_string': 'value',
                         'the_int': 23
                     },
                     packet_header_field_class=header_fc,
                     clock_classes=(cc1, cc2),
                     stream_classes=(sc1, sc2))
     cc1, cc2, sc1, sc2, header_fc = self._test_eq_create_objects()
     header_fc.append_field('yes', bt2.StringFieldClass())
     tc2 = bt2.Trace(name='my name',
                     native_byte_order=bt2.ByteOrder.LITTLE_ENDIAN,
                     env={
                         'the_string': 'value',
                         'the_int': 23
                     },
                     packet_header_field_class=header_fc,
                     clock_classes=(cc1, cc2),
                     stream_classes=(sc1, sc2))
     self.assertNotEqual(tc1, tc2)
コード例 #9
0
 def test_contains(self):
     self.assertFalse('a' in self._fc)
     self._fc.append_field('a', bt2.StringFieldClass())
     self.assertTrue('a' in self._fc)
コード例 #10
0
 def test_len(self):
     fc = bt2.StringFieldClass()
     self._fc.append_field('a', fc)
     self._fc.append_field('b', fc)
     self._fc.append_field('c', fc)
     self.assertEqual(len(self._fc), 3)
コード例 #11
0
 def test_bool_op(self):
     self.assertFalse(self._fc)
     self._fc.append_field('a', bt2.StringFieldClass())
     self.assertTrue(self._fc)
コード例 #12
0
 def test_create_invalid_length_type(self):
     with self.assertRaises(TypeError):
         self._fc = bt2.ArrayFieldClass(bt2.StringFieldClass(), 'the length')
コード例 #13
0
 def setUp(self):
     self._fc = bt2.StringFieldClass()
コード例 #14
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()
コード例 #15
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
コード例 #16
0
 def test_create_invalid_length(self):
     with self.assertRaises(ValueError):
         self._fc = bt2.ArrayFieldClass(bt2.StringFieldClass(), -17)
コード例 #17
0
 def test_create_full(self):
     fc = bt2.StringFieldClass(encoding=bt2.Encoding.UTF8)
     self.assertEqual(fc.encoding, bt2.Encoding.UTF8)
コード例 #18
0
 def test_create_invalid_length_type(self):
     with self.assertRaises(TypeError):
         self._fc = bt2.SequenceFieldClass(bt2.StringFieldClass(), 17)
コード例 #19
0
 def test_append_field_invalid_name(self):
     with self.assertRaises(TypeError):
         self._fc.append_field(23, bt2.StringFieldClass())