9ce40dcc52bf5fc84ae7643090169d87630552ec
[lttng-tools.git] / tests / regression / kernel / test_syscall
1 #!/bin/bash
2 #
3 # Copyright (C) 2013 Christian Babeux <christian.babeux@efficios.com>
4 # Copyright (C) 2014 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
5 #
6 # SPDX-License-Identifier: GPL-2.0-only
7 #
8
9 TEST_DESC="Kernel tracer - System calls"
10
11 CURDIR=$(dirname $0)/
12 TESTDIR=$CURDIR/../..
13 NUM_TESTS=214
14
15 # `gen-syscall-event` starts and waits for the creation a file passed by
16 # arguments to start executing 3 syscalls (open,read,close) and returning.
17 TESTCMD="$TESTDIR/utils/testapp/gen-syscall-events/gen-syscall-events"
18
19 source $TESTDIR/utils/utils.sh
20
21 function trace_testapp()
22 {
23 local start_file_sync
24 start_file_sync=$(mktemp -u)
25
26 # Clear all entries from the resource tracker
27 lttng_untrack_kernel_all_ok
28
29 # Launch the testapp and save its Process ID
30 ./"$TESTCMD" "$start_file_sync" &
31 PID=$!
32
33 # Set LTTng to track this PID and start the tracing
34 lttng_track_pid_ok $PID
35
36 start_lttng_tracing_ok
37
38 # Create start file to launch the execution of the workload by the
39 # test app
40 touch "$start_file_sync"
41
42 wait $PID
43
44 stop_lttng_tracing_ok
45
46 # Clean up the synchronization file
47 rm -f "$start_file_sync"
48 }
49
50 function validate_list()
51 {
52 local session_name=$1
53 local event_name=$2
54 local opt=$3
55
56 out=$($TESTDIR/../src/bin/lttng/$LTTNG_BIN list $session_name $opt | grep $event_name)
57 if [ -z "$out" ]; then
58 fail "Validate syscall listing"
59 diag "$event_name not found when listing $session_name (opt $opt)"
60 else
61 pass "Validate syscall listing. Found $event_name."
62 fi
63 }
64
65 function test_syscall_event_list()
66 {
67 local EVENT_NAME="getpid"
68
69 diag "Syscall event listing"
70
71 validate_list "" $EVENT_NAME "-k --syscall"
72 }
73
74 function test_syscall_simple_list()
75 {
76 TRACE_PATH=$(mktemp -d)
77 SESSION_NAME="kernel_syscall_simple_list"
78 local EVENT_NAME="close"
79
80 diag "Syscall simple listing"
81
82 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
83
84 lttng_enable_kernel_syscall_ok $SESSION_NAME $EVENT_NAME
85
86 validate_list $SESSION_NAME $EVENT_NAME
87
88 trace_testapp
89
90 # ensure all events are in the trace.
91 validate_trace_exp "-e syscall_entry_$EVENT_NAME: -e compat_syscall_entry_$EVENT_NAME:" $TRACE_PATH
92 validate_trace_exp "-e syscall_exit_$EVENT_NAME: -e compat_syscall_exit_$EVENT_NAME:" $TRACE_PATH
93
94 # ensure trace only contains those.
95 validate_trace_only_exp "-e syscall_entry_$EVENT_NAME: -e compat_syscall_entry_$EVENT_NAME: -e syscall_exit_$EVENT_NAME: -e compat_syscall_exit_$EVENT_NAME:" $TRACE_PATH
96
97 destroy_lttng_session_ok $SESSION_NAME
98
99 rm -rf $TRACE_PATH
100 }
101
102 function test_syscall_simple_list_two()
103 {
104 TRACE_PATH=$(mktemp -d)
105 SESSION_NAME="kernel_syscall_simple_list_two"
106 local EVENT_NAME="close"
107 local EVENT_NAME2="read"
108
109 diag "Syscall simple listing"
110
111 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
112
113 lttng_enable_kernel_syscall_ok $SESSION_NAME $EVENT_NAME
114 lttng_enable_kernel_syscall_ok $SESSION_NAME $EVENT_NAME2
115
116 validate_list $SESSION_NAME $EVENT_NAME
117 validate_list $SESSION_NAME $EVENT_NAME2
118
119 trace_testapp
120
121 # ensure all events are in the trace.
122 validate_trace_exp "-e syscall_entry_$EVENT_NAME: -e compat_syscall_entry_$EVENT_NAME:" $TRACE_PATH
123 validate_trace_exp "-e syscall_exit_$EVENT_NAME: -e compat_syscall_exit_$EVENT_NAME:" $TRACE_PATH
124
125 validate_trace_exp "-e syscall_entry_$EVENT_NAME2: -e compat_syscall_entry_$EVENT_NAME2:" $TRACE_PATH
126 validate_trace_exp "-e syscall_exit_$EVENT_NAME2: -e compat_syscall_exit_$EVENT_NAME2:" $TRACE_PATH
127
128 # ensure trace only contains those.
129 validate_trace_only_exp "-e syscall_entry_$EVENT_NAME: -e compat_syscall_entry_$EVENT_NAME: -e syscall_exit_$EVENT_NAME: -e compat_syscall_exit_$EVENT_NAME: -e syscall_entry_$EVENT_NAME2: -e compat_syscall_entry_$EVENT_NAME2: -e syscall_exit_$EVENT_NAME2: -e compat_syscall_exit_$EVENT_NAME2:" $TRACE_PATH
130
131 destroy_lttng_session_ok $SESSION_NAME
132
133 rm -rf $TRACE_PATH
134 }
135
136 function test_syscall_single()
137 {
138 TRACE_PATH=$(mktemp -d)
139 SESSION_NAME="kernel_syscall_single"
140
141 diag "Syscall trace single"
142
143 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
144
145 lttng_enable_kernel_syscall_ok $SESSION_NAME "openat"
146
147 trace_testapp
148
149 # ensure all events are in the trace.
150 validate_trace_exp "-e syscall_entry_openat: -e compat_syscall_entry_openat:" $TRACE_PATH
151 validate_trace_exp "-e syscall_exit_openat: -e compat_syscall_exit_openat:" $TRACE_PATH
152
153 # ensure trace only contains those.
154 validate_trace_only_exp "-e syscall_entry_openat: -e compat_syscall_entry_openat: -e syscall_exit_openat: -e compat_syscall_exit_openat:" $TRACE_PATH
155
156 destroy_lttng_session_ok $SESSION_NAME
157
158 rm -rf $TRACE_PATH
159 }
160
161 function test_syscall_two()
162 {
163 TRACE_PATH=$(mktemp -d)
164 SESSION_NAME="kernel_syscall_two"
165
166 diag "Syscall trace two events"
167
168 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
169
170 lttng_enable_kernel_syscall_ok $SESSION_NAME "openat"
171 lttng_enable_kernel_syscall_ok $SESSION_NAME "close"
172
173 trace_testapp
174
175 # ensure all events are in the trace.
176 validate_trace_exp "-e syscall_entry_openat: -e compat_syscall_entry_openat:" $TRACE_PATH
177 validate_trace_exp "-e syscall_exit_openat: -e compat_syscall_exit_openat:" $TRACE_PATH
178 validate_trace_exp "-e syscall_entry_close: -e compat_syscall_entry_close:" $TRACE_PATH
179 validate_trace_exp "-e syscall_exit_close: -e compat_syscall_exit_close:" $TRACE_PATH
180
181 # ensure trace only contains those.
182 validate_trace_only_exp "-e syscall_entry_openat: -e compat_syscall_entry_openat: -e syscall_exit_openat: -e compat_syscall_exit_openat: -e syscall_entry_close: -e compat_syscall_entry_close: -e syscall_exit_close: -e compat_syscall_exit_close:" $TRACE_PATH
183
184 destroy_lttng_session_ok $SESSION_NAME
185
186 rm -rf $TRACE_PATH
187 }
188
189 function test_syscall_all()
190 {
191 TRACE_PATH=$(mktemp -d)
192 SESSION_NAME="kernel_syscall_all"
193
194 diag "Syscall trace all events"
195
196 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
197
198 # enable all syscalls
199 lttng_enable_kernel_syscall_ok $SESSION_NAME
200
201 trace_testapp
202
203 # ensure at least open and close are there.
204 validate_trace_exp "-e syscall_entry_openat: -e compat_syscall_entry_openat:" $TRACE_PATH
205 validate_trace_exp "-e syscall_exit_openat: -e compat_syscall_exit_openat:" $TRACE_PATH
206 validate_trace_exp "-e syscall_entry_close: -e compat_syscall_entry_close:" $TRACE_PATH
207 validate_trace_exp "-e syscall_exit_close: -e compat_syscall_exit_close:" $TRACE_PATH
208 # trace may contain other syscalls.
209
210 destroy_lttng_session_ok $SESSION_NAME
211
212 rm -rf $TRACE_PATH
213 }
214
215 function test_syscall_all_disable_one()
216 {
217 TRACE_PATH=$(mktemp -d)
218 SESSION_NAME="kernel_syscall_all_disable_one"
219
220 diag "Syscall trace all events and disable one"
221
222 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
223
224 # enable all syscalls
225 lttng_enable_kernel_syscall_ok $SESSION_NAME
226 # try to disable open system call: fails because enabler semantic of
227 # "all syscalls" is not "the open" system call.
228 lttng_disable_kernel_syscall_fail $SESSION_NAME "openat"
229
230 trace_testapp
231
232 # ensure "openat" syscall is there.
233 validate_trace_exp "-e syscall_entry_openat: -e compat_syscall_entry_openat: -e syscall_exit_openat: -e compat_syscall_exit_openat:" $TRACE_PATH
234
235 # ensure "close" syscall is there.
236 validate_trace_exp "-e syscall_entry_close: -e compat_syscall_entry_close:" $TRACE_PATH
237 validate_trace_exp "-e syscall_exit_close: -e compat_syscall_exit_close:" $TRACE_PATH
238
239 destroy_lttng_session_ok $SESSION_NAME
240
241 rm -rf $TRACE_PATH
242 }
243
244 function test_syscall_all_disable_two()
245 {
246 TRACE_PATH=$(mktemp -d)
247 SESSION_NAME="kernel_syscall_all_disable_two"
248
249 diag "Syscall trace all events and disable two"
250
251 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
252
253 # enable all syscalls
254 lttng_enable_kernel_syscall_ok $SESSION_NAME
255 # try to disable open and close system calls: fails because enabler
256 # semantic of "all syscalls" is not "the open" system call.
257 lttng_disable_kernel_syscall_fail $SESSION_NAME "openat"
258 lttng_disable_kernel_syscall_fail $SESSION_NAME "close"
259
260 trace_testapp
261
262 # ensure "openat" syscall is there.
263 validate_trace_exp "-e syscall_entry_openat: -e compat_syscall_entry_openat: -e syscall_exit_openat: -e compat_syscall_exit_openat:" $TRACE_PATH
264
265 # ensure "close" syscall is there.
266 validate_trace_exp "-e syscall_entry_close: -e compat_syscall_entry_close:" $TRACE_PATH
267 validate_trace_exp "-e syscall_exit_close: -e compat_syscall_exit_close:" $TRACE_PATH
268
269 # ensure "read" syscall is there.
270 validate_trace_exp "-e syscall_entry_read: -e compat_syscall_entry_read:" $TRACE_PATH
271 validate_trace_exp "-e syscall_exit_read: -e compat_syscall_exit_read:" $TRACE_PATH
272
273 destroy_lttng_session_ok $SESSION_NAME
274
275 rm -rf $TRACE_PATH
276 }
277
278 function test_syscall_enable_all_disable_all()
279 {
280 TRACE_PATH=$(mktemp -d)
281 SESSION_NAME="kernel_syscall_enable_all_disable_all"
282
283 diag "Syscall trace all events and disable all"
284
285 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
286
287 # enable all system calls
288 lttng_enable_kernel_syscall_ok $SESSION_NAME
289 # disable all system calls
290 lttng_disable_kernel_syscall_ok $SESSION_NAME
291
292 trace_testapp
293
294 # ensure nothing has been traced.
295 validate_trace_empty $TRACE_PATH
296
297 destroy_lttng_session_ok $SESSION_NAME
298
299 rm -rf $TRACE_PATH
300 }
301
302 function test_syscall_enable_all_disable_all_enable_all()
303 {
304 TRACE_PATH=$(mktemp -d)
305 SESSION_NAME="kernel_syscall_enable_all_disable_all_enable_all"
306
307 diag "Syscall trace all events and enable/disable all"
308
309 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
310
311 # enable all system calls
312 lttng_enable_kernel_syscall_ok $SESSION_NAME
313 # disable all system calls
314 lttng_disable_kernel_syscall_ok $SESSION_NAME
315 # enable all system calls
316 lttng_enable_kernel_syscall_ok $SESSION_NAME
317
318 trace_testapp
319
320 # ensure at least open and close are there.
321 validate_trace_exp "-e syscall_entry_openat: -e compat_syscall_entry_openat:" $TRACE_PATH
322 validate_trace_exp "-e syscall_exit_openat: -e compat_syscall_exit_openat:" $TRACE_PATH
323 validate_trace_exp "-e syscall_entry_close: -e compat_syscall_entry_close:" $TRACE_PATH
324 validate_trace_exp "-e syscall_exit_close: -e compat_syscall_exit_close:" $TRACE_PATH
325 # trace may contain other syscalls.
326
327 destroy_lttng_session_ok $SESSION_NAME
328
329 rm -rf $TRACE_PATH
330 }
331
332 function test_syscall_enable_all_enable_one_disable_all()
333 {
334 TRACE_PATH=$(mktemp -d)
335 SESSION_NAME="kernel_syscall_enable_all_enable_one_disable_all"
336
337 diag "Syscall trace all events, enable one and disable all"
338
339 create_lttng_session_ok $SESSION_NAME "$TRACE_PATH"
340
341 # enable all syscalls
342 lttng_enable_kernel_syscall_ok $SESSION_NAME
343
344 # enable one specific syscall, "openat"
345 lttng_enable_kernel_syscall_ok $SESSION_NAME openat
346
347 # disable all syscalls
348 lttng_disable_kernel_syscall_ok $SESSION_NAME
349
350 trace_testapp
351
352 # The trace shouldn't contain any syscalls, disable-all should disable
353 # even individually specified syscalls
354 trace_match_only openat 0 "$TRACE_PATH"
355
356 destroy_lttng_session_ok $SESSION_NAME
357
358 rm -rf "$TRACE_PATH"
359 }
360
361 function test_syscall_enable_one_enable_all_disable_one()
362 {
363 TRACE_PATH=$(mktemp -d)
364 SESSION_NAME="kernel_syscall_enable_one_enable_all_disable_one"
365
366 diag "Syscall trace all events and enable/disable one"
367
368 create_lttng_session_ok $SESSION_NAME "$TRACE_PATH"
369
370 # enable one specific syscall, "openat"
371 lttng_enable_kernel_syscall_ok $SESSION_NAME openat
372
373 # enable all syscalls
374 lttng_enable_kernel_syscall_ok $SESSION_NAME
375
376 # disable one specific syscall, "openat"
377 lttng_disable_kernel_syscall_ok $SESSION_NAME openat
378
379 trace_testapp
380
381 # The trace should contain all syscalls, including 'openat' because
382 # enable-all overrides individually disabled syscalls.
383 validate_trace openat "$TRACE_PATH"
384
385 destroy_lttng_session_ok $SESSION_NAME
386
387 rm -rf "$TRACE_PATH"
388 }
389
390 function test_syscall_enable_one_enable_all_disable_all_disable_one()
391 {
392 TRACE_PATH=$(mktemp -d)
393 SESSION_NAME="kernel_syscall_enable_one_enable_all_disable_all_disable_one"
394
395 diag "Syscall trace all events and enable/disable one"
396
397 create_lttng_session_ok $SESSION_NAME "$TRACE_PATH"
398
399 # enable one specific syscall, "openat"
400 lttng_enable_kernel_syscall_ok $SESSION_NAME openat
401
402 # enable all syscalls
403 lttng_enable_kernel_syscall_ok $SESSION_NAME
404
405 # disable all syscalls
406 lttng_disable_kernel_syscall_ok $SESSION_NAME
407
408 # disable one specific syscall, "openat"
409 lttng_disable_kernel_syscall_ok $SESSION_NAME openat
410
411 trace_testapp
412
413 # The trace shouldn't contain any syscalls, disable-all should disable
414 # even individually specified syscalls
415 trace_match_only openat 0 "$TRACE_PATH"
416
417 destroy_lttng_session_ok $SESSION_NAME
418
419 rm -rf "$TRACE_PATH"
420 }
421
422 function test_syscall_enable_all_disable_all_twice()
423 {
424 TRACE_PATH=$(mktemp -d)
425 SESSION_NAME="kernel_syscall_enable_all_disable_all_twice"
426
427 diag "Syscall trace all events and enable/disable all twice"
428
429 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
430
431 # enable all system calls
432 lttng_enable_kernel_syscall_ok $SESSION_NAME
433 # disable all system calls
434 lttng_disable_kernel_syscall_ok $SESSION_NAME
435 # enable all system calls
436 lttng_enable_kernel_syscall_ok $SESSION_NAME
437 # disable all system calls
438 lttng_disable_kernel_syscall_ok $SESSION_NAME
439
440 trace_testapp
441
442 # ensure nothing has been traced.
443 validate_trace_empty $TRACE_PATH
444
445 destroy_lttng_session_ok $SESSION_NAME
446
447 rm -rf $TRACE_PATH
448 }
449
450 function test_syscall_enable_one_disable_one()
451 {
452 TRACE_PATH=$(mktemp -d)
453 SESSION_NAME="kernel_syscall_enable_one_disable_one"
454
455 diag "Syscall trace one event and disable one"
456
457 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
458
459 # enable open system call
460 lttng_enable_kernel_syscall_ok $SESSION_NAME "openat"
461 # disable open system call
462 lttng_disable_kernel_syscall_ok $SESSION_NAME "openat"
463
464 trace_testapp
465
466 # ensure nothing has been traced.
467 validate_trace_empty $TRACE_PATH
468
469 destroy_lttng_session_ok $SESSION_NAME
470
471 rm -rf $TRACE_PATH
472 }
473
474 function test_syscall_enable_two_disable_two()
475 {
476 TRACE_PATH=$(mktemp -d)
477 SESSION_NAME="kernel_syscall_enable_two_disable_two"
478
479 diag "Syscall trace two events and disable two"
480
481 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
482
483 # enable open and close system calls
484 lttng_enable_kernel_syscall_ok $SESSION_NAME "openat"
485 lttng_enable_kernel_syscall_ok $SESSION_NAME "close"
486 # disable open and close system calls
487 lttng_disable_kernel_syscall_ok $SESSION_NAME "openat"
488 lttng_disable_kernel_syscall_ok $SESSION_NAME "close"
489
490 trace_testapp
491
492 # ensure nothing has been traced.
493 validate_trace_empty $TRACE_PATH
494
495 destroy_lttng_session_ok $SESSION_NAME
496
497 rm -rf $TRACE_PATH
498 }
499
500 function test_syscall_enable_two_disable_one()
501 {
502 TRACE_PATH=$(mktemp -d)
503 SESSION_NAME="kernel_syscall_enable_two_disable_one"
504
505 diag "Syscall trace two events and disable one"
506
507 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
508
509 # enable open and close system calls
510 lttng_enable_kernel_syscall_ok $SESSION_NAME "openat"
511 lttng_enable_kernel_syscall_ok $SESSION_NAME "close"
512 # disable close system call
513 lttng_disable_kernel_syscall_ok $SESSION_NAME "close"
514
515 trace_testapp
516
517 # ensure open is there.
518 validate_trace_exp "-e syscall_entry_openat: -e compat_syscall_entry_openat:" $TRACE_PATH
519 validate_trace_exp "-e syscall_exit_openat: -e compat_syscall_exit_openat:" $TRACE_PATH
520
521 # ensure trace only contains those.
522 validate_trace_only_exp "-e syscall_entry_openat: -e compat_syscall_entry_openat: -e syscall_exit_openat: -e compat_syscall_exit_openat:" $TRACE_PATH
523
524 destroy_lttng_session_ok $SESSION_NAME
525
526 rm -rf $TRACE_PATH
527 }
528
529 function test_syscall_disable_twice()
530 {
531 TRACE_PATH=$(mktemp -d)
532 SESSION_NAME="kernel_syscall_disable_twice"
533
534 diag "Syscall trace one event and disable twice"
535
536 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
537
538 lttng_enable_kernel_syscall_ok $SESSION_NAME "openat"
539 # First disable will succeed
540 lttng_disable_kernel_syscall_ok $SESSION_NAME "openat"
541 # Second disable succeeds too, due to enabler semantic.
542 lttng_disable_kernel_syscall_ok $SESSION_NAME "openat"
543
544 destroy_lttng_session_ok $SESSION_NAME
545
546 rm -rf $TRACE_PATH
547 }
548
549 function test_syscall_disable_all_twice()
550 {
551 TRACE_PATH=$(mktemp -d)
552 SESSION_NAME="kernel_syscall_disable_all_twice"
553
554 diag "Syscall trace all events and disable all twice"
555
556 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
557
558 lttng_enable_kernel_syscall_ok $SESSION_NAME
559 # First disable will succeed
560 lttng_disable_kernel_syscall_ok $SESSION_NAME
561 # Second disable succeeds too, due to enabler semantic.
562 lttng_disable_kernel_syscall_ok $SESSION_NAME
563
564 destroy_lttng_session_ok $SESSION_NAME
565
566 rm -rf $TRACE_PATH
567 }
568
569
570 function test_syscall_enable_unknown()
571 {
572 TRACE_PATH=$(mktemp -d)
573 SESSION_NAME="kernel_syscall_enable_unknown"
574
575 diag "Syscall enable an unknown event"
576
577 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
578
579 # Enabling a syscall that does not exist succeeds, due to enabler
580 # semantic.
581 lttng_enable_kernel_syscall_ok $SESSION_NAME "thissyscallcannotexist"
582
583 destroy_lttng_session_ok $SESSION_NAME
584
585 rm -rf $TRACE_PATH
586 }
587
588 function test_syscall_enable_all_enable_one()
589 {
590 TRACE_PATH=$(mktemp -d)
591 SESSION_NAME="kernel_syscall_enable_all_enable_one"
592
593 diag "Syscall enable all and enable one"
594
595 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
596
597 lttng_enable_kernel_syscall_ok $SESSION_NAME
598 # Enabling an event already enabled succeeds, due to enabler semantic.
599 lttng_enable_kernel_syscall_ok $SESSION_NAME "openat"
600
601 destroy_lttng_session_ok $SESSION_NAME
602
603 rm -rf $TRACE_PATH
604 }
605
606 function test_syscall_disable_all_disable_one()
607 {
608 TRACE_PATH=$(mktemp -d)
609 SESSION_NAME="kernel_syscall_enable_all_enable_one"
610
611 diag "Syscall disable all and disable one"
612
613 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
614
615 lttng_enable_kernel_syscall_ok $SESSION_NAME
616 lttng_disable_kernel_syscall_ok $SESSION_NAME
617 # Disabling an event already disabled fails.
618 lttng_disable_kernel_syscall_fail $SESSION_NAME "openat"
619
620 destroy_lttng_session_ok $SESSION_NAME
621
622 rm -rf $TRACE_PATH
623 }
624
625 function test_syscall_enable_channel_disable_all()
626 {
627 TRACE_PATH=$(mktemp -d)
628 SESSION_NAME="kernel_syscall_enable_channel_disable_all"
629 CHANNEL_NAME="channel"
630
631 diag "Syscall enable channel and disable all"
632
633 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
634
635 lttng_enable_kernel_channel_ok $SESSION_NAME $CHANNEL_NAME
636 # sessiond semantic for "disable all" is to try to match all enalers
637 # it knowns about. Disable all succeeds if it finds no match.
638 lttng_disable_kernel_syscall_ok $SESSION_NAME "-a" $CHANNEL_NAME
639
640 destroy_lttng_session_ok $SESSION_NAME
641
642 rm -rf $TRACE_PATH
643 }
644
645 function test_syscall_enable_channel_disable_one()
646 {
647 TRACE_PATH=$(mktemp -d)
648 SESSION_NAME="kernel_syscall_enable_channel_disable_all"
649 CHANNEL_NAME="channel"
650
651 diag "Syscall enable channel and disable one"
652
653 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
654
655 lttng_enable_kernel_channel_ok $SESSION_NAME $CHANNEL_NAME
656 lttng_disable_kernel_syscall_fail $SESSION_NAME "openat" $CHANNEL_NAME
657
658 destroy_lttng_session_ok $SESSION_NAME
659
660 rm -rf $TRACE_PATH
661 }
662
663 # MUST set TESTDIR before calling those functions
664 plan_tests $NUM_TESTS
665
666 print_test_banner "$TEST_DESC"
667
668 if [ "$(id -u)" == "0" ]; then
669 isroot=1
670 else
671 isroot=0
672 fi
673
674 skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
675 {
676 start_lttng_sessiond
677
678 test_syscall_event_list
679 test_syscall_simple_list
680 test_syscall_simple_list_two
681 test_syscall_single
682 test_syscall_two
683 test_syscall_all
684 test_syscall_all_disable_one
685 test_syscall_all_disable_two
686 test_syscall_enable_all_disable_all
687 test_syscall_enable_all_disable_all_enable_all
688 test_syscall_enable_all_disable_all_twice
689 test_syscall_enable_all_enable_one_disable_all
690 test_syscall_enable_one_enable_all_disable_one
691 test_syscall_enable_one_enable_all_disable_all_disable_one
692 test_syscall_enable_one_disable_one
693 test_syscall_enable_two_disable_two
694 test_syscall_enable_two_disable_one
695 test_syscall_disable_twice
696 test_syscall_disable_all_twice
697 test_syscall_enable_unknown
698 test_syscall_enable_all_enable_one
699 test_syscall_disable_all_disable_one
700 test_syscall_enable_channel_disable_all
701 test_syscall_enable_channel_disable_one
702
703 stop_lttng_sessiond
704 }
This page took 0.042552 seconds and 3 git commands to generate.