docs: Add supported versions and fix-backport policy
[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
6a871bbe
KS
13
14class TestLttngPythonModule(unittest.TestCase):
36907cb5 15
68f8c317
JR
16 def setUp(self):
17 self.tmpdir = tempfile.TemporaryDirectory()
36907cb5 18
68f8c317
JR
19 def tearDown(self):
20 self.tmpdir.cleanup()
36907cb5 21
68f8c317
JR
22 def test_kernel_all_events(self):
23 dom = Domain()
24 dom.type = DOMAIN_KERNEL
25 dom.buf_type = BUFFER_GLOBAL
36907cb5 26
68f8c317
JR
27 event = Event()
28 event.type = EVENT_TRACEPOINT
29 event.loglevel_type = EVENT_LOGLEVEL_ALL
36907cb5 30
68f8c317 31 han = Handle("test_kernel_all_ev", dom)
36907cb5 32
68f8c317
JR
33 r = create("test_kernel_all_ev", self.tmpdir.name)
34 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 35
68f8c317
JR
36 r = enable_event(han, event, None)
37 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 38
68f8c317
JR
39 r = start("test_kernel_all_ev")
40 self.assertGreaterEqual(r, 0, strerror(r))
41 time.sleep(2)
36907cb5 42
68f8c317
JR
43 r = stop("test_kernel_all_ev")
44 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 45
68f8c317
JR
46 r = destroy("test_kernel_all_ev")
47 self.assertGreaterEqual(r, 0, strerror(r))
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 55 channel = Channel()
6a871bbe 56 channel.name = "mychan"
68f8c317
JR
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
6a871bbe 81 # Create session test
68f8c317
JR
82 r = create("test_kernel_event", self.tmpdir.name)
83 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 84
6a871bbe 85 # Enabling channel tests
68f8c317
JR
86 r = enable_channel(han, channel)
87 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 88
6a871bbe 89 # Enabling events tests
68f8c317
JR
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
6a871bbe 99 # Disabling events tests
68f8c317
JR
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
6a871bbe 106 # Renabling events tests
68f8c317
JR
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
6a871bbe 113 # Start, stop, destroy
68f8c317
JR
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
6a871bbe 121 r = disable_channel(han, channel.name)
68f8c317 122 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 123
6a871bbe 124 r = destroy("test_kernel_event")
68f8c317 125 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 126
68f8c317
JR
127 def test_ust_all_events(self):
128 dom = Domain()
129 dom.type = DOMAIN_UST
130 dom.buf_type = BUFFER_PER_UID
36907cb5 131
68f8c317
JR
132 event = Event()
133 event.type = EVENT_TRACEPOINT
134 event.loglevel_type = EVENT_LOGLEVEL_ALL
36907cb5 135
68f8c317 136 han = Handle("test_ust_all_ev", dom)
36907cb5 137
68f8c317
JR
138 r = create("test_ust_all_ev", self.tmpdir.name)
139 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 140
68f8c317
JR
141 r = enable_event(han, event, None)
142 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 143
68f8c317
JR
144 r = start("test_ust_all_ev")
145 self.assertGreaterEqual(r, 0, strerror(r))
146 time.sleep(2)
36907cb5 147
68f8c317
JR
148 r = stop("test_ust_all_ev")
149 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 150
68f8c317
JR
151 r = destroy("test_ust_all_ev")
152 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 153
68f8c317 154 def test_ust_event(self):
36907cb5 155
68f8c317
JR
156 dom = Domain()
157 dom.type = DOMAIN_UST
158 dom.buf_type = BUFFER_PER_UID
36907cb5 159
68f8c317 160 channel = Channel()
6a871bbe 161 channel.name = "mychan"
68f8c317
JR
162 channel.attr.overwrite = 0
163 channel.attr.subbuf_size = 4096
164 channel.attr.num_subbuf = 8
165 channel.attr.switch_timer_interval = 0
166 channel.attr.read_timer_interval = 200
167 channel.attr.output = EVENT_MMAP
36907cb5 168
68f8c317
JR
169 ev1 = Event()
170 ev1.name = "tp1"
171 ev1.type = EVENT_TRACEPOINT
172 ev1.loglevel_type = EVENT_LOGLEVEL_ALL
36907cb5 173
68f8c317
JR
174 ev2 = Event()
175 ev2.name = "ev2"
176 ev2.type = EVENT_TRACEPOINT
177 ev2.loglevel_type = EVENT_LOGLEVEL_ALL
36907cb5 178
68f8c317
JR
179 ev3 = Event()
180 ev3.name = "ev3"
181 ev3.type = EVENT_TRACEPOINT
182 ev3.loglevel_type = EVENT_LOGLEVEL_ALL
36907cb5 183
68f8c317 184 han = Handle("test_ust_event", dom)
36907cb5 185
6a871bbe 186 # Create session test
68f8c317
JR
187 r = create("test_ust_event", self.tmpdir.name)
188 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 189
6a871bbe 190 # Enabling channel tests
68f8c317
JR
191 r = enable_channel(han, channel)
192 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 193
6a871bbe 194 # Enabling events tests
68f8c317
JR
195 r = enable_event(han, ev1, channel.name)
196 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 197
68f8c317
JR
198 r = enable_event(han, ev2, channel.name)
199 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 200
68f8c317
JR
201 r = enable_event(han, ev3, channel.name)
202 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 203
6a871bbe 204 # Disabling events tests
68f8c317
JR
205 r = disable_event(han, ev1.name, channel.name)
206 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 207
68f8c317
JR
208 r = disable_event(han, ev3.name, channel.name)
209 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 210
6a871bbe 211 # Renabling events tests
68f8c317
JR
212 r = enable_event(han, ev1, channel.name)
213 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 214
68f8c317
JR
215 r = enable_event(han, ev3, channel.name)
216 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 217
6a871bbe 218 # Start, stop
68f8c317
JR
219 r = start("test_ust_event")
220 self.assertGreaterEqual(r, 0, strerror(r))
221 time.sleep(2)
36907cb5 222
68f8c317
JR
223 r = stop("test_ust_event")
224 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 225
6a871bbe 226 # Restart/restop
68f8c317
JR
227 r = start("test_ust_event")
228 self.assertGreaterEqual(r, 0, strerror(r))
229 time.sleep(2)
36907cb5 230
68f8c317
JR
231 r = stop("test_ust_event")
232 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 233
6a871bbe
KS
234 # Disabling channel and destroy
235 r = disable_channel(han, channel.name)
68f8c317 236 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 237
6a871bbe 238 r = destroy("test_ust_event")
68f8c317 239 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 240
68f8c317
JR
241 def test_other_functions(self):
242 dom = Domain()
6a871bbe 243 dom.type = DOMAIN_KERNEL
68f8c317 244 dom.buf_type = BUFFER_GLOBAL
36907cb5 245
6a871bbe
KS
246 event = Event()
247 event.type = EVENT_TRACEPOINT
248 event.loglevel_type = EVENT_LOGLEVEL_ALL
36907cb5 249
68f8c317 250 ctx = EventContext()
6a871bbe 251 ctx.type = EVENT_CONTEXT_PID
36907cb5 252
68f8c317
JR
253 chattr = ChannelAttr()
254 chattr.overwrite = 0
255 chattr.subbuf_size = 4096
256 chattr.num_subbuf = 8
257 chattr.switch_timer_interval = 0
258 chattr.read_timer_interval = 200
259 chattr.output = EVENT_SPLICE
36907cb5 260
6a871bbe 261 han = Handle("test_otherf", dom)
36907cb5 262
68f8c317
JR
263 r = create("test_otherf", self.tmpdir.name)
264 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 265
68f8c317
JR
266 r = enable_event(han, event, None)
267 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 268
6a871bbe 269 # Context test
68f8c317
JR
270 r = add_context(han, ctx, "sched_switch", "channel0")
271 self.assertGreaterEqual(r, 0, strerror(r))
6a871bbe 272 # Any channel
68f8c317
JR
273 r = add_context(han, ctx, "sched_wakeup", None)
274 self.assertGreaterEqual(r, 0, strerror(r))
6a871bbe 275 # All events
68f8c317
JR
276 r = add_context(han, ctx, None, None)
277 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 278
6a871bbe 279 # Def. channel attr
68f8c317
JR
280 channel_set_default_attr(dom, chattr)
281 channel_set_default_attr(None, None)
36907cb5 282
6a871bbe 283 # Ses Daemon alive
68f8c317
JR
284 r = session_daemon_alive()
285 self.assertTrue(r == 1 or r == 0, strerror(r))
36907cb5 286
6a871bbe 287 # Setting trace group
68f8c317
JR
288 r = set_tracing_group("testing")
289 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 290
68f8c317
JR
291 r = start("test_otherf")
292 self.assertGreaterEqual(r, 0, strerror(r))
293 time.sleep(2)
36907cb5 294
68f8c317
JR
295 r = stop("test_otherf")
296 self.assertGreaterEqual(r, 0, strerror(r))
36907cb5 297
68f8c317
JR
298 domains = list_domains("test_otherf")
299 self.assertTrue(domains[0].type == DOMAIN_KERNEL)
300 self.assertTrue(domains[0].buf_type == BUFFER_GLOBAL)
36907cb5 301
68f8c317 302 del han
36907cb5 303
68f8c317
JR
304 r = destroy("test_otherf")
305 self.assertGreaterEqual(r, 0, strerror(r))
306
307
308def ust_suite():
309 suite = unittest.TestSuite()
310 suite.addTest(TestLttngPythonModule("test_ust_event"))
311 suite.addTest(TestLttngPythonModule("test_ust_all_events"))
312 return suite
313
6a871bbe 314
68f8c317
JR
315def kernel_suite():
316 suite = unittest.TestSuite()
317 suite.addTest(TestLttngPythonModule("test_kernel_event"))
318 suite.addTest(TestLttngPythonModule("test_kernel_all_events"))
319 suite.addTest(TestLttngPythonModule("test_other_functions"))
320 return suite
321
6a871bbe
KS
322
323if __name__ == "__main__":
68f8c317
JR
324 destroy("test_kernel_event")
325 destroy("test_kernel_all_events")
326 destroy("test_ust_all_events")
327 destroy("test_ust_event")
328 destroy("test_otherf")
329
330 runner = unittest.TextTestRunner(verbosity=2)
331
332 if os.geteuid() == 0:
333 runner.run(kernel_suite())
334
335 runner.run(ust_suite())
This page took 0.069571 seconds and 5 git commands to generate.