Rename "default beginning/end CS" -> "beginning/end default CS"
[babeltrace.git] / tests / bindings / python / bt2 / test_message.py
1 import collections
2 import unittest
3 import bt2
4
5
6 class AllMessagesTestCase(unittest.TestCase):
7 def setUp(self):
8
9 class MyIter(bt2._UserMessageIterator):
10 def __init__(self, self_port_output):
11 self._at = 0
12
13 def __next__(self):
14 if test_obj._clock_class:
15 if self._at == 0:
16 msg = self._create_stream_beginning_message(test_obj._stream)
17 elif self._at == 1:
18 msg = self._create_stream_activity_beginning_message(test_obj._stream, default_clock_snapshot=self._at)
19 elif self._at == 2:
20 msg = self._create_packet_beginning_message(test_obj._packet, self._at)
21 elif self._at == 3:
22 msg = self._create_event_message(test_obj._event_class, test_obj._packet, self._at)
23 elif self._at == 4:
24 msg = self._create_message_iterator_inactivity_message(test_obj._clock_class, self._at)
25 elif self._at == 5:
26 msg = self._create_discarded_events_message(test_obj._stream, 890, self._at, self._at)
27 elif self._at == 6:
28 msg = self._create_packet_end_message(test_obj._packet, self._at)
29 elif self._at == 7:
30 msg = self._create_discarded_packets_message(test_obj._stream, 678, self._at, self._at)
31 elif self._at == 8:
32 msg = self._create_stream_activity_end_message(test_obj._stream, default_clock_snapshot=self._at)
33 elif self._at == 9:
34 msg = self._create_stream_end_message(test_obj._stream)
35 elif self._at >= 10:
36 raise bt2.Stop
37 else:
38 if self._at == 0:
39 msg = self._create_stream_beginning_message(test_obj._stream)
40 elif self._at == 1:
41 msg = self._create_stream_activity_beginning_message(test_obj._stream)
42 elif self._at == 2:
43 msg = self._create_packet_beginning_message(test_obj._packet)
44 elif self._at == 3:
45 msg = self._create_event_message(test_obj._event_class, test_obj._packet)
46 elif self._at == 4:
47 msg = self._create_discarded_events_message(test_obj._stream, 890)
48 elif self._at == 5:
49 msg = self._create_packet_end_message(test_obj._packet)
50 elif self._at == 6:
51 msg = self._create_discarded_packets_message(test_obj._stream, 678)
52 elif self._at == 7:
53 msg = self._create_stream_activity_end_message(test_obj._stream)
54 elif self._at == 8:
55 msg = self._create_stream_end_message(test_obj._stream)
56 elif self._at >= 9:
57 raise bt2.Stop
58
59 self._at += 1
60 return msg
61
62 class MySrc(bt2._UserSourceComponent, message_iterator_class=MyIter):
63 def __init__(self, params):
64 self._add_output_port('out')
65
66 with_cc = bool(params['with_cc'])
67 tc = self._create_trace_class()
68 if with_cc:
69 cc = self._create_clock_class()
70 else:
71 cc = None
72
73 sc = tc.create_stream_class(default_clock_class=cc,
74 packets_have_beginning_default_clock_snapshot=with_cc,
75 packets_have_end_default_clock_snapshot=with_cc,
76 supports_discarded_events=True,
77 discarded_events_have_default_clock_snapshots=with_cc,
78 supports_discarded_packets=True,
79 discarded_packets_have_default_clock_snapshots=with_cc)
80
81 # Create payload field class
82 my_int_fc = tc.create_signed_integer_field_class(32)
83 payload_fc = tc.create_structure_field_class()
84 payload_fc += collections.OrderedDict([
85 ('my_int', my_int_fc),
86 ])
87
88 ec = sc.create_event_class(name='salut', payload_field_class=payload_fc)
89
90 trace = tc()
91 stream = trace.create_stream(sc)
92 packet = stream.create_packet()
93
94 test_obj._trace = trace
95 test_obj._stream = stream
96 test_obj._packet = packet
97 test_obj._event_class = ec
98 test_obj._clock_class = cc
99
100 test_obj = self
101 self._graph = bt2.Graph()
102 self._src = MySrc
103 self._iter = MyIter
104
105 def test_all_msg_with_cc(self):
106 params = {'with_cc': True}
107 self._src_comp = self._graph.add_component(self._src, 'my_source', params)
108 self._msg_iter = self._graph.create_output_port_message_iterator(self._src_comp.output_ports['out'])
109
110 for i, msg in enumerate(self._msg_iter):
111 if i == 0:
112 self.assertIsInstance(msg, bt2.message._StreamBeginningMessage)
113 self.assertEqual(msg.stream.addr, self._stream.addr)
114 elif i == 1:
115 self.assertIsInstance(msg, bt2.message._StreamActivityBeginningMessage)
116 self.assertEqual(msg.default_clock_snapshot.value, i)
117 elif i == 2:
118 self.assertIsInstance(msg, bt2.message._PacketBeginningMessage)
119 self.assertEqual(msg.packet.addr, self._packet.addr)
120 self.assertEqual(msg.default_clock_snapshot.value, i)
121 elif i == 3:
122 self.assertIsInstance(msg, bt2.message._EventMessage)
123 self.assertEqual(msg.event.event_class.addr, self._event_class.addr)
124 self.assertEqual(msg.default_clock_snapshot.value, i)
125 elif i == 4:
126 self.assertIsInstance(msg, bt2.message._MessageIteratorInactivityMessage)
127 self.assertEqual(msg.default_clock_snapshot.value, i)
128 elif i == 5:
129 self.assertIsInstance(msg, bt2.message._DiscardedEventsMessage)
130 self.assertEqual(msg.stream.addr, self._stream.addr)
131 self.assertEqual(msg.count, 890)
132 self.assertEqual(msg.stream.stream_class.default_clock_class.addr, self._clock_class.addr)
133 self.assertEqual(msg.beginning_default_clock_snapshot.value, i)
134 self.assertEqual(msg.end_default_clock_snapshot.value, i)
135 elif i == 6:
136 self.assertIsInstance(msg, bt2.message._PacketEndMessage)
137 self.assertEqual(msg.packet.addr, self._packet.addr)
138 self.assertEqual(msg.default_clock_snapshot.value, i)
139 elif i == 7:
140 self.assertIsInstance(msg, bt2.message._DiscardedPacketsMessage)
141 self.assertEqual(msg.stream.addr, self._stream.addr)
142 self.assertEqual(msg.count, 678)
143 self.assertEqual(msg.stream.stream_class.default_clock_class.addr, self._clock_class.addr)
144 self.assertEqual(msg.beginning_default_clock_snapshot.value, i)
145 self.assertEqual(msg.end_default_clock_snapshot.value, i)
146 elif i == 8:
147 self.assertIsInstance(msg, bt2.message._StreamActivityEndMessage)
148 self.assertEqual(msg.stream.addr, self._stream.addr)
149 self.assertEqual(msg.default_clock_snapshot.value, i)
150 elif i == 9:
151 self.assertIsInstance(msg, bt2.message._StreamEndMessage)
152 self.assertEqual(msg.stream.addr, self._stream.addr)
153 else:
154 raise Exception
155
156 def test_all_msg_without_cc(self):
157 params = {'with_cc': False}
158 self._src_comp = self._graph.add_component(self._src, 'my_source', params)
159 self._msg_iter = self._graph.create_output_port_message_iterator(self._src_comp.output_ports['out'])
160
161 for i, msg in enumerate(self._msg_iter):
162 if i == 0:
163 self.assertIsInstance(msg, bt2.message._StreamBeginningMessage)
164 self.assertEqual(msg.stream.addr, self._stream.addr)
165 elif i == 1:
166 self.assertIsInstance(msg, bt2.message._StreamActivityBeginningMessage)
167 with self.assertRaises(bt2.NonexistentClockSnapshot):
168 msg.default_clock_snapshot
169 elif i == 2:
170 self.assertIsInstance(msg, bt2.message._PacketBeginningMessage)
171 self.assertEqual(msg.packet.addr, self._packet.addr)
172 elif i == 3:
173 self.assertIsInstance(msg, bt2.message._EventMessage)
174 self.assertEqual(msg.event.event_class.addr, self._event_class.addr)
175 with self.assertRaises(bt2.NonexistentClockSnapshot):
176 msg.default_clock_snapshot
177 elif i == 4:
178 self.assertIsInstance(msg, bt2.message._DiscardedEventsMessage)
179 self.assertEqual(msg.stream.addr, self._stream.addr)
180 self.assertEqual(msg.count, 890)
181 self.assertIsNone(msg.stream.stream_class.default_clock_class)
182 with self.assertRaises(bt2.NonexistentClockSnapshot):
183 msg.beginning_default_clock_snapshot
184 with self.assertRaises(bt2.NonexistentClockSnapshot):
185 msg.end_default_clock_snapshot
186 elif i == 5:
187 self.assertIsInstance(msg, bt2.message._PacketEndMessage)
188 self.assertEqual(msg.packet.addr, self._packet.addr)
189 elif i == 6:
190 self.assertIsInstance(msg, bt2.message._DiscardedPacketsMessage)
191 self.assertEqual(msg.stream.addr, self._stream.addr)
192 self.assertEqual(msg.count, 678)
193 self.assertIsNone(msg.stream.stream_class.default_clock_class)
194 with self.assertRaises(bt2.NonexistentClockSnapshot):
195 msg.beginning_default_clock_snapshot
196 with self.assertRaises(bt2.NonexistentClockSnapshot):
197 msg.end_default_clock_snapshot
198 elif i == 7:
199 self.assertIsInstance(msg, bt2.message._StreamActivityEndMessage)
200 self.assertEqual(msg.stream.addr, self._stream.addr)
201 with self.assertRaises(bt2.NonexistentClockSnapshot):
202 msg.default_clock_snapshot
203 elif i == 8:
204 self.assertIsInstance(msg, bt2.message._StreamEndMessage)
205 self.assertEqual(msg.stream.addr, self._stream.addr)
206 else:
207 raise Exception
208
This page took 0.037045 seconds and 5 git commands to generate.