Move to kernel style SPDX license identifiers
[lttng-tools.git] / extras / bindings / swig / python / tests / tests.py
CommitLineData
ab5be9fa
MJ
1#
2# Copyright (C) 2012 Danny Serres <danny.serres@efficios.com>
3#
4# SPDX-License-Identifier: GPL-2.0-only
5#
6
36907cb5
DS
7import unittest
8import os
9import time
68f8c317 10import tempfile
36907cb5
DS
11from lttng import *
12
13class TestLttngPythonModule (unittest.TestCase):
14
68f8c317
JR
15 def setUp(self):
16 self.tmpdir = tempfile.TemporaryDirectory()
36907cb5 17
68f8c317
JR
18 def tearDown(self):
19 self.tmpdir.cleanup()
36907cb5 20
68f8c317
JR
21 def test_kernel_all_events(self):
22 dom = Domain()
23 dom.type = DOMAIN_KERNEL
24 dom.buf_type = BUFFER_GLOBAL
36907cb5 25
68f8c317
JR
26 event = Event()
27 event.type = EVENT_TRACEPOINT
28 event.loglevel_type = EVENT_LOGLEVEL_ALL
36907cb5 29
68f8c317 30 han = Handle("test_kernel_all_ev", dom)
36907cb5 31
68f8c317
JR
32 r = create("test_kernel_all_ev", self.tmpdir.name)
33 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 34
68f8c317
JR
35 r = enable_event(han, event, None)
36 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 37
68f8c317
JR
38 r = start("test_kernel_all_ev")
39 self.assertGreaterEqual(r, 0, strerror(r))
40 time.sleep(2)
36907cb5 41
68f8c317
JR
42 r = stop("test_kernel_all_ev")
43 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 44
68f8c317
JR
45 r = destroy("test_kernel_all_ev")
46 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 47
36907cb5 48
68f8c317 49 def test_kernel_event(self):
36907cb5 50
68f8c317
JR
51 dom = Domain()
52 dom.type = DOMAIN_KERNEL
53 dom.buf_type = BUFFER_GLOBAL
36907cb5 54
68f8c317
JR
55 channel = Channel()
56 channel.name="mychan"
57 channel.attr.overwrite = 0
58 channel.attr.subbuf_size = 4096
59 channel.attr.num_subbuf = 8
60 channel.attr.switch_timer_interval = 0
61 channel.attr.read_timer_interval = 200
62 channel.attr.output = EVENT_SPLICE
36907cb5 63
68f8c317
JR
64 sched_switch = Event()
65 sched_switch.name = "sched_switch"
66 sched_switch.type = EVENT_TRACEPOINT
67 sched_switch.loglevel_type = EVENT_LOGLEVEL_ALL
36907cb5 68
68f8c317
JR
69 sched_process_exit = Event()
70 sched_process_exit.name = "sched_process_exit"
71 sched_process_exit.type = EVENT_TRACEPOINT
72 sched_process_exit.loglevel_type = EVENT_LOGLEVEL_ALL
36907cb5 73
68f8c317
JR
74 sched_process_free = Event()
75 sched_process_free.name = "sched_process_free"
76 sched_process_free.type = EVENT_TRACEPOINT
77 sched_process_free.loglevel_type = EVENT_LOGLEVEL_ALL
36907cb5 78
68f8c317 79 han = Handle("test_kernel_event", dom)
36907cb5 80
68f8c317
JR
81 #Create session test
82 r = create("test_kernel_event", self.tmpdir.name)
83 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 84
68f8c317
JR
85 #Enabling channel tests
86 r = enable_channel(han, channel)
87 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 88
68f8c317
JR
89 #Enabling events tests
90 r = enable_event(han, sched_switch, channel.name)
91 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 92
68f8c317
JR
93 r = enable_event(han, sched_process_exit, channel.name)
94 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 95
68f8c317
JR
96 r = enable_event(han, sched_process_free, channel.name)
97 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 98
68f8c317
JR
99 #Disabling events tests
100 r = disable_event(han, sched_switch.name, channel.name)
101 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 102
68f8c317
JR
103 r = disable_event(han, sched_process_free.name, channel.name)
104 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 105
68f8c317
JR
106 #Renabling events tests
107 r = enable_event(han, sched_switch, channel.name)
108 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 109
68f8c317
JR
110 r = enable_event(han, sched_process_free, channel.name)
111 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 112
68f8c317
JR
113 #Start, stop, destroy
114 r = start("test_kernel_event")
115 self.assertGreaterEqual(r, 0, strerror(r))
116 time.sleep(2)
36907cb5 117
68f8c317
JR
118 r = stop("test_kernel_event")
119 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 120
68f8c317
JR
121 r=disable_channel(han, channel.name)
122 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 123
68f8c317
JR
124 r=destroy("test_kernel_event")
125 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 126
36907cb5 127
36907cb5 128
68f8c317
JR
129 def test_ust_all_events(self):
130 dom = Domain()
131 dom.type = DOMAIN_UST
132 dom.buf_type = BUFFER_PER_UID
36907cb5 133
68f8c317
JR
134 event = Event()
135 event.type = EVENT_TRACEPOINT
136 event.loglevel_type = EVENT_LOGLEVEL_ALL
36907cb5 137
68f8c317 138 han = Handle("test_ust_all_ev", dom)
36907cb5 139
68f8c317
JR
140 r = create("test_ust_all_ev", self.tmpdir.name)
141 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 142
68f8c317
JR
143 r = enable_event(han, event, None)
144 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 145
68f8c317
JR
146 r = start("test_ust_all_ev")
147 self.assertGreaterEqual(r, 0, strerror(r))
148 time.sleep(2)
36907cb5 149
68f8c317
JR
150 r = stop("test_ust_all_ev")
151 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 152
68f8c317
JR
153 r = destroy("test_ust_all_ev")
154 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 155
36907cb5 156
68f8c317 157 def test_ust_event(self):
36907cb5 158
68f8c317
JR
159 dom = Domain()
160 dom.type = DOMAIN_UST
161 dom.buf_type = BUFFER_PER_UID
36907cb5 162
68f8c317
JR
163 channel = Channel()
164 channel.name="mychan"
165 channel.attr.overwrite = 0
166 channel.attr.subbuf_size = 4096
167 channel.attr.num_subbuf = 8
168 channel.attr.switch_timer_interval = 0
169 channel.attr.read_timer_interval = 200
170 channel.attr.output = EVENT_MMAP
36907cb5 171
68f8c317
JR
172 ev1 = Event()
173 ev1.name = "tp1"
174 ev1.type = EVENT_TRACEPOINT
175 ev1.loglevel_type = EVENT_LOGLEVEL_ALL
36907cb5 176
68f8c317
JR
177 ev2 = Event()
178 ev2.name = "ev2"
179 ev2.type = EVENT_TRACEPOINT
180 ev2.loglevel_type = EVENT_LOGLEVEL_ALL
36907cb5 181
68f8c317
JR
182 ev3 = Event()
183 ev3.name = "ev3"
184 ev3.type = EVENT_TRACEPOINT
185 ev3.loglevel_type = EVENT_LOGLEVEL_ALL
36907cb5 186
68f8c317 187 han = Handle("test_ust_event", dom)
36907cb5 188
68f8c317
JR
189 #Create session test
190 r = create("test_ust_event", self.tmpdir.name)
191 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 192
68f8c317
JR
193 #Enabling channel tests
194 r = enable_channel(han, channel)
195 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 196
68f8c317
JR
197 #Enabling events tests
198 r = enable_event(han, ev1, channel.name)
199 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 200
68f8c317
JR
201 r = enable_event(han, ev2, channel.name)
202 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 203
68f8c317
JR
204 r = enable_event(han, ev3, channel.name)
205 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 206
68f8c317
JR
207 #Disabling events tests
208 r = disable_event(han, ev1.name, channel.name)
209 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 210
68f8c317
JR
211 r = disable_event(han, ev3.name, channel.name)
212 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 213
68f8c317
JR
214 #Renabling events tests
215 r = enable_event(han, ev1, channel.name)
216 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 217
68f8c317
JR
218 r = enable_event(han, ev3, channel.name)
219 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 220
68f8c317
JR
221 #Start, stop
222 r = start("test_ust_event")
223 self.assertGreaterEqual(r, 0, strerror(r))
224 time.sleep(2)
36907cb5 225
68f8c317
JR
226 r = stop("test_ust_event")
227 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 228
68f8c317
JR
229 #Restart/restop
230 r = start("test_ust_event")
231 self.assertGreaterEqual(r, 0, strerror(r))
232 time.sleep(2)
36907cb5 233
68f8c317
JR
234 r = stop("test_ust_event")
235 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 236
68f8c317
JR
237 #Disabling channel and destroy
238 r=disable_channel(han, channel.name)
239 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 240
68f8c317
JR
241 r=destroy("test_ust_event")
242 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 243
36907cb5 244
68f8c317
JR
245 def test_other_functions(self):
246 dom = Domain()
247 dom.type=DOMAIN_KERNEL
248 dom.buf_type = BUFFER_GLOBAL
36907cb5 249
68f8c317
JR
250 event=Event()
251 event.type=EVENT_TRACEPOINT
252 event.loglevel_type=EVENT_LOGLEVEL_ALL
36907cb5 253
68f8c317
JR
254 ctx = EventContext()
255 ctx.type=EVENT_CONTEXT_PID
36907cb5 256
68f8c317
JR
257 chattr = ChannelAttr()
258 chattr.overwrite = 0
259 chattr.subbuf_size = 4096
260 chattr.num_subbuf = 8
261 chattr.switch_timer_interval = 0
262 chattr.read_timer_interval = 200
263 chattr.output = EVENT_SPLICE
36907cb5 264
68f8c317 265 han = Handle("test_otherf" , dom)
36907cb5 266
68f8c317
JR
267 r = create("test_otherf", self.tmpdir.name)
268 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 269
68f8c317
JR
270 r = enable_event(han, event, None)
271 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 272
68f8c317
JR
273 #Context test
274 r = add_context(han, ctx, "sched_switch", "channel0")
275 self.assertGreaterEqual(r, 0, strerror(r))
276 #Any channel
277 r = add_context(han, ctx, "sched_wakeup", None)
278 self.assertGreaterEqual(r, 0, strerror(r))
279 #All events
280 r = add_context(han, ctx, None, None)
281 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 282
68f8c317
JR
283 #Def. channel attr
284 channel_set_default_attr(dom, chattr)
285 channel_set_default_attr(None, None)
36907cb5 286
68f8c317
JR
287 #Ses Daemon alive
288 r = session_daemon_alive()
289 self.assertTrue(r == 1 or r == 0, strerror(r))
36907cb5 290
68f8c317
JR
291 #Setting trace group
292 r = set_tracing_group("testing")
293 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 294
36907cb5 295
68f8c317
JR
296 r = start("test_otherf")
297 self.assertGreaterEqual(r, 0, strerror(r))
298 time.sleep(2)
36907cb5 299
68f8c317
JR
300 r = stop("test_otherf")
301 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 302
68f8c317
JR
303 domains = list_domains("test_otherf")
304 self.assertTrue(domains[0].type == DOMAIN_KERNEL)
305 self.assertTrue(domains[0].buf_type == BUFFER_GLOBAL)
36907cb5 306
68f8c317 307 del han
36907cb5 308
68f8c317
JR
309 r = destroy("test_otherf")
310 self.assertGreaterEqual(r, 0, strerror(r))
311
312
313def ust_suite():
314 suite = unittest.TestSuite()
315 suite.addTest(TestLttngPythonModule("test_ust_event"))
316 suite.addTest(TestLttngPythonModule("test_ust_all_events"))
317 return suite
318
319def kernel_suite():
320 suite = unittest.TestSuite()
321 suite.addTest(TestLttngPythonModule("test_kernel_event"))
322 suite.addTest(TestLttngPythonModule("test_kernel_all_events"))
323 suite.addTest(TestLttngPythonModule("test_other_functions"))
324 return suite
325
326if __name__ == '__main__':
327 destroy("test_kernel_event")
328 destroy("test_kernel_all_events")
329 destroy("test_ust_all_events")
330 destroy("test_ust_event")
331 destroy("test_otherf")
332
333 runner = unittest.TextTestRunner(verbosity=2)
334
335 if os.geteuid() == 0:
336 runner.run(kernel_suite())
337
338 runner.run(ust_suite())
This page took 0.052219 seconds and 4 git commands to generate.