6 class AllMessagesTestCase(unittest
.TestCase
):
9 class MyIter(bt2
._UserMessageIterator
):
10 def __init__(self
, self_port_output
):
14 if test_obj
._clock
_class
:
16 msg
= self
._create
_stream
_beginning
_message
(test_obj
._stream
)
18 msg
= self
._create
_stream
_activity
_beginning
_message
(test_obj
._stream
, default_clock_snapshot
=self
._at
)
20 msg
= self
._create
_packet
_beginning
_message
(test_obj
._packet
, self
._at
)
22 msg
= self
._create
_event
_message
(test_obj
._event
_class
, test_obj
._packet
, self
._at
)
24 msg
= self
._create
_message
_iterator
_inactivity
_message
(test_obj
._clock
_class
, self
._at
)
26 msg
= self
._create
_discarded
_events
_message
(test_obj
._stream
, 890, self
._at
, self
._at
)
28 msg
= self
._create
_packet
_end
_message
(test_obj
._packet
, self
._at
)
30 msg
= self
._create
_discarded
_packets
_message
(test_obj
._stream
, 678, self
._at
, self
._at
)
32 msg
= self
._create
_stream
_activity
_end
_message
(test_obj
._stream
, default_clock_snapshot
=self
._at
)
34 msg
= self
._create
_stream
_end
_message
(test_obj
._stream
)
39 msg
= self
._create
_stream
_beginning
_message
(test_obj
._stream
)
41 msg
= self
._create
_stream
_activity
_beginning
_message
(test_obj
._stream
)
43 msg
= self
._create
_packet
_beginning
_message
(test_obj
._packet
)
45 msg
= self
._create
_event
_message
(test_obj
._event
_class
, test_obj
._packet
)
47 msg
= self
._create
_discarded
_events
_message
(test_obj
._stream
, 890)
49 msg
= self
._create
_packet
_end
_message
(test_obj
._packet
)
51 msg
= self
._create
_discarded
_packets
_message
(test_obj
._stream
, 678)
53 msg
= self
._create
_stream
_activity
_end
_message
(test_obj
._stream
)
55 msg
= self
._create
_stream
_end
_message
(test_obj
._stream
)
62 class MySrc(bt2
._UserSourceComponent
, message_iterator_class
=MyIter
):
63 def __init__(self
, params
):
64 self
._add
_output
_port
('out')
66 with_cc
= params
['with_cc']
67 tc
= self
._create
_trace
_class
()
69 cc
= self
._create
_clock
_class
()
70 packets_have_clock_snapshots
= True
73 packets_have_clock_snapshots
= False
75 sc
= tc
.create_stream_class(default_clock_class
=cc
,
76 packets_have_default_beginning_clock_snapshot
=packets_have_clock_snapshots
,
77 packets_have_default_end_clock_snapshot
=packets_have_clock_snapshots
)
79 # Create payload field class
80 my_int_fc
= tc
.create_signed_integer_field_class(32)
81 payload_fc
= tc
.create_structure_field_class()
82 payload_fc
+= collections
.OrderedDict([
83 ('my_int', my_int_fc
),
86 ec
= sc
.create_event_class(name
='salut', payload_field_class
=payload_fc
)
89 stream
= trace
.create_stream(sc
)
90 packet
= stream
.create_packet()
92 test_obj
._trace
= trace
93 test_obj
._stream
= stream
94 test_obj
._packet
= packet
95 test_obj
._event
_class
= ec
96 test_obj
._clock
_class
= cc
99 self
._graph
= bt2
.Graph()
103 def test_all_msg_with_cc(self
):
104 params
= {'with_cc': True}
105 self
._src
_comp
= self
._graph
.add_component(self
._src
, 'my_source', params
)
106 self
._msg
_iter
= self
._graph
.create_output_port_message_iterator(self
._src
_comp
.output_ports
['out'])
108 for i
, msg
in enumerate(self
._msg
_iter
):
110 self
.assertIsInstance(msg
, bt2
.message
._StreamBeginningMessage
)
111 self
.assertEqual(msg
.stream
.addr
, self
._stream
.addr
)
113 self
.assertIsInstance(msg
, bt2
.message
._StreamActivityBeginningMessage
)
114 self
.assertEqual(msg
.default_clock_snapshot
.value
, i
)
116 self
.assertIsInstance(msg
, bt2
.message
._PacketBeginningMessage
)
117 self
.assertEqual(msg
.packet
.addr
, self
._packet
.addr
)
118 self
.assertEqual(msg
.default_clock_snapshot
.value
, i
)
120 self
.assertIsInstance(msg
, bt2
.message
._EventMessage
)
121 self
.assertEqual(msg
.event
.event_class
.addr
, self
._event
_class
.addr
)
122 self
.assertEqual(msg
.default_clock_snapshot
.value
, i
)
124 self
.assertIsInstance(msg
, bt2
.message
._MessageIteratorInactivityMessage
)
125 self
.assertEqual(msg
.default_clock_snapshot
.value
, i
)
127 self
.assertIsInstance(msg
, bt2
.message
._DiscardedEventsMessage
)
128 self
.assertEqual(msg
.stream
.addr
, self
._stream
.addr
)
129 self
.assertEqual(msg
.count
, 890)
130 self
.assertEqual(msg
.default_clock_class
.addr
, self
._clock
_class
.addr
)
131 self
.assertEqual(msg
.beginning_default_clock_snapshot
.value
, i
)
132 self
.assertEqual(msg
.end_default_clock_snapshot
.value
, i
)
134 self
.assertIsInstance(msg
, bt2
.message
._PacketEndMessage
)
135 self
.assertEqual(msg
.packet
.addr
, self
._packet
.addr
)
136 self
.assertEqual(msg
.default_clock_snapshot
.value
, i
)
138 self
.assertIsInstance(msg
, bt2
.message
._DiscardedPacketsMessage
)
139 self
.assertEqual(msg
.stream
.addr
, self
._stream
.addr
)
140 self
.assertEqual(msg
.count
, 678)
141 self
.assertEqual(msg
.default_clock_class
.addr
, self
._clock
_class
.addr
)
142 self
.assertEqual(msg
.beginning_default_clock_snapshot
.value
, i
)
143 self
.assertEqual(msg
.end_default_clock_snapshot
.value
, i
)
145 self
.assertIsInstance(msg
, bt2
.message
._StreamActivityEndMessage
)
146 self
.assertEqual(msg
.stream
.addr
, self
._stream
.addr
)
147 self
.assertEqual(msg
.default_clock_snapshot
.value
, i
)
149 self
.assertIsInstance(msg
, bt2
.message
._StreamEndMessage
)
150 self
.assertEqual(msg
.stream
.addr
, self
._stream
.addr
)
154 def test_all_msg_without_cc(self
):
155 params
= {'with_cc': False}
156 self
._src
_comp
= self
._graph
.add_component(self
._src
, 'my_source', params
)
157 self
._msg
_iter
= self
._graph
.create_output_port_message_iterator(self
._src
_comp
.output_ports
['out'])
159 for i
, msg
in enumerate(self
._msg
_iter
):
161 self
.assertIsInstance(msg
, bt2
.message
._StreamBeginningMessage
)
162 self
.assertEqual(msg
.stream
.addr
, self
._stream
.addr
)
164 self
.assertIsInstance(msg
, bt2
.message
._StreamActivityBeginningMessage
)
165 with self
.assertRaises(bt2
.NoDefaultClockClass
):
166 msg
.default_clock_snapshot
168 self
.assertIsInstance(msg
, bt2
.message
._PacketBeginningMessage
)
169 self
.assertEqual(msg
.packet
.addr
, self
._packet
.addr
)
171 self
.assertIsInstance(msg
, bt2
.message
._EventMessage
)
172 self
.assertEqual(msg
.event
.event_class
.addr
, self
._event
_class
.addr
)
173 with self
.assertRaises(bt2
.NoDefaultClockClass
):
174 msg
.default_clock_snapshot
176 self
.assertIsInstance(msg
, bt2
.message
._DiscardedEventsMessage
)
177 self
.assertEqual(msg
.stream
.addr
, self
._stream
.addr
)
178 self
.assertEqual(msg
.count
, 890)
179 self
.assertIsNone(msg
.default_clock_class
)
180 with self
.assertRaises(bt2
.NoDefaultClockClass
):
181 msg
.beginning_default_clock_snapshot
182 with self
.assertRaises(bt2
.NoDefaultClockClass
):
183 msg
.end_default_clock_snapshot
185 self
.assertIsInstance(msg
, bt2
.message
._PacketEndMessage
)
186 self
.assertEqual(msg
.packet
.addr
, self
._packet
.addr
)
188 self
.assertIsInstance(msg
, bt2
.message
._DiscardedPacketsMessage
)
189 self
.assertEqual(msg
.stream
.addr
, self
._stream
.addr
)
190 self
.assertEqual(msg
.count
, 678)
191 self
.assertIsNone(msg
.default_clock_class
)
192 with self
.assertRaises(bt2
.NoDefaultClockClass
):
193 msg
.beginning_default_clock_snapshot
194 with self
.assertRaises(bt2
.NoDefaultClockClass
):
195 msg
.end_default_clock_snapshot
197 self
.assertIsInstance(msg
, bt2
.message
._StreamActivityEndMessage
)
198 self
.assertEqual(msg
.stream
.addr
, self
._stream
.addr
)
199 with self
.assertRaises(bt2
.NoDefaultClockClass
):
200 msg
.default_clock_snapshot
202 self
.assertIsInstance(msg
, bt2
.message
._StreamEndMessage
)
203 self
.assertEqual(msg
.stream
.addr
, self
._stream
.addr
)