def test_cycles_to_ns_from_origin(self): def f(comp_self): return comp_self._create_clock_class(frequency=10**8, origin_is_unix_epoch=True) cc = run_in_component_init(f) self.assertEqual(cc.cycles_to_ns_from_origin(112), 1120)
def test_create_offset(self): def f(comp_self): return comp_self._create_clock_class( offset=bt2.ClockClassOffset(12, 56)) cc = run_in_component_init(f) self.assertEqual(cc.offset, bt2.ClockClassOffset(12, 56))
def setUp(self): def f(comp_self): return comp_self._create_trace_class() self._tc = run_in_component_init(f) self._sc = self._tc.create_stream_class( assigns_automatic_stream_id=True) self._tr = self._tc()
def setUp(self): def f(comp_self): tc = comp_self._create_trace_class(assigns_automatic_stream_class_id=True) cc = comp_self._create_clock_class() return tc, cc self._tc, self._cc = run_in_component_init(f) self._trace = self._tc()
def test_automatic_stream_class_id_raises(self): def f(comp_self): return comp_self._create_trace_class( assigns_automatic_stream_class_id=True) tc = run_in_component_init(f) self.assertTrue(tc.assigns_automatic_stream_class_id) with self.assertRaises(ValueError): tc.create_stream_class(23)
def test_create_default(self): def f(comp_self): return comp_self._create_trace_class() tc = run_in_component_init(f) self.assertEqual(len(tc), 0) self.assertIs(type(tc), bt2_trace_class._TraceClass) self.assertTrue(tc.assigns_automatic_stream_class_id) self.assertEqual(len(tc.user_attributes), 0)
def _create_trace_class_with_some_stream_classes(): def f(comp_self): return comp_self._create_trace_class( assigns_automatic_stream_class_id=False) tc = run_in_component_init(f) sc1 = tc.create_stream_class(id=12) sc2 = tc.create_stream_class(id=54) sc3 = tc.create_stream_class(id=2018) return tc, sc1, sc2, sc3
def test_no_assigns_automatic_stream_class_id(self): def f(comp_self): return comp_self._create_trace_class( assigns_automatic_stream_class_id=False) tc = run_in_component_init(f) self.assertFalse(tc.assigns_automatic_stream_class_id) sc = tc.create_stream_class(id=28) self.assertEqual(sc.id, 28)
def test_no_assigns_automatic_stream_class_id_raises(self): def f(comp_self): return comp_self._create_trace_class( assigns_automatic_stream_class_id=False) tc = run_in_component_init(f) self.assertFalse(tc.assigns_automatic_stream_class_id) # In this mode, it is required to pass an explicit id. with self.assertRaises(ValueError): tc.create_stream_class()
def test_automatic_stream_class_id(self): def f(comp_self): return comp_self._create_trace_class( assigns_automatic_stream_class_id=True) tc = run_in_component_init(f) self.assertTrue(tc.assigns_automatic_stream_class_id) # This should not throw. sc1 = tc.create_stream_class() sc2 = tc.create_stream_class() self.assertIs(type(sc1), bt2_stream_class._StreamClass) self.assertIs(type(sc2), bt2_stream_class._StreamClass) self.assertNotEqual(sc1.id, sc2.id)
def test_create_frequency(self): def f(comp_self): return comp_self._create_clock_class(frequency=987654321) cc = run_in_component_init(f) self.assertEqual(cc.frequency, 987654321)
def test_create_description(self): def f(comp_self): return comp_self._create_clock_class(description='hi people') cc = run_in_component_init(f) self.assertEqual(cc.description, 'hi people')
def _create_packet(with_pc): def create_tc_cc(comp_self): cc = comp_self._create_clock_class(frequency=1000, name='my_cc') tc = comp_self._create_trace_class() return cc, tc clock_class, tc = run_in_component_init(create_tc_cc) # stream event context sec = tc.create_structure_field_class() sec += [ ('cpu_id', tc.create_signed_integer_field_class(8)), ('stuff', tc.create_double_precision_real_field_class()), ] # packet context pc = None if with_pc: pc = tc.create_structure_field_class() pc += [ ('something', tc.create_signed_integer_field_class(8)), ('something_else', tc.create_double_precision_real_field_class()), ('events_discarded', tc.create_unsigned_integer_field_class(64)), ('packet_seq_num', tc.create_unsigned_integer_field_class(64)), ] # stream class sc = tc.create_stream_class( default_clock_class=clock_class, event_common_context_field_class=sec, packet_context_field_class=pc, supports_packets=True, ) # event context ec = tc.create_structure_field_class() ec += [ ('ant', tc.create_signed_integer_field_class(16)), ('msg', tc.create_string_field_class()), ] # event payload ep = tc.create_structure_field_class() ep += [ ('giraffe', tc.create_signed_integer_field_class(32)), ('gnu', tc.create_signed_integer_field_class(8)), ('mosquito', tc.create_signed_integer_field_class(8)), ] # event class event_class = sc.create_event_class(name='ec', payload_field_class=ep) event_class.common_context_field_class = ec # trace trace = tc() # stream stream = trace.create_stream(sc) # packet return stream.create_packet(), stream, pc
def test_create_user_attributes(self): def f(comp_self): return comp_self._create_trace_class(user_attributes={'salut': 23}) tc = run_in_component_init(f) self.assertEqual(tc.user_attributes, {'salut': 23})