Deprecate enable/disable-consumer
[lttng-tools.git] / tests / ust / overlap / overlap.sh
CommitLineData
26b53d3b
DG
1#!/bin/bash
2#
3# Copyright (C) - 2012 David Goulet <dgoulet@efficios.com>
4#
5# This library is free software; you can redistribute it and/or modify it under
6# the terms of the GNU Lesser General Public License as published by the Free
7# Software Foundation; version 2.1 of the License.
8#
9# This library is distributed in the hope that it will be useful, but WITHOUT
10# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12# details.
13#
14# You should have received a copy of the GNU Lesser General Public License
15# along with this library; if not, write to the Free Software Foundation, Inc.,
16# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17TEST_DESC="UST - Wildcard overlap"
18
19CURDIR=$(dirname $0)/
20TESTDIR=$CURDIR/../..
21SESSION_NAME="wildcard-overlap"
22
23DEMO_EVENT1="ust_tests_demo:starting"
24DEMO_EVENT1_2="ust_tests_demo:done"
25DEMO_EVENT2="ust_tests_demo2:loop"
26DEMO_EVENT3="ust_tests_demo3:done"
27
28NUM_DEMO1_EVENT=1
29NUM_DEMO1_2_EVENT=1
30NUM_DEMO2_EVENT=5
31NUM_DEMO3_EVENT=1
32
33source $TESTDIR/utils.sh
34
35print_test_banner "$TEST_DESC"
36
37if [ ! -x "$CURDIR/demo/demo" ]; then
38 echo -e "No UST nevents binary detected. Passing."
39 exit 0
40fi
41
42# MUST set TESTDIR before calling those functions
43
44run_demo_app()
45{
f8014aa3 46 cd $CURDIR/demo
26b53d3b
DG
47
48 # Start test
49 echo -n "Starting application... "
f8014aa3 50 ./demo-trace >/dev/null 2>&1
26b53d3b
DG
51 echo -n "Ended "
52 print_ok
53
f8014aa3 54 cd -
26b53d3b
DG
55}
56
57# Ease our life a bit ;)
58trace_match_demo1_events()
59{
907b42de
DG
60 trace_matches "$DEMO_EVENT1" $NUM_DEMO1_EVENT $TRACE_PATH
61 trace_matches "$DEMO_EVENT1_2" $NUM_DEMO1_EVENT $TRACE_PATH
26b53d3b
DG
62}
63
64# Ease our life a bit ;)
65trace_match_all_demo_events()
66{
67 trace_match_demo1_events
907b42de
DG
68 trace_matches "$DEMO_EVENT2" $NUM_DEMO2_EVENT $TRACE_PATH
69 trace_matches "$DEMO_EVENT3" $NUM_DEMO3_EVENT $TRACE_PATH
26b53d3b
DG
70}
71
72# Ease our life a bit ;)
73trace_match_no_demo_events()
74{
907b42de
DG
75 trace_matches "$DEMO_EVENT1" 0 $TRACE_PATH
76 trace_matches "$DEMO_EVENT1_2" 0 $TRACE_PATH
77 trace_matches "$DEMO_EVENT2" 0 $TRACE_PATH
78 trace_matches "$DEMO_EVENT3" 0 $TRACE_PATH
26b53d3b
DG
79}
80
81# Expect all "demo" events, no duplicate.
82test_enable_simple_wildcard()
83{
84 local event_wild1="us*"
85 local event_wild2="ust*"
86
87 echo ""
88 echo "=== Simple wildcard overlap"
89
907b42de
DG
90 enable_ust_lttng_event $SESSION_NAME "$event_wild1"
91 enable_ust_lttng_event $SESSION_NAME "$event_wild2"
26b53d3b
DG
92
93 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
94
95 run_demo_app
96
97 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
98
99 trace_match_all_demo_events
100
101 return $?
102}
103
104# Expect all "demo" events, no duplicate.
105test_enable_wildcard_filter()
106{
107 local event_wild1="us*"
108 local event_wild2="ust*"
109
110 echo ""
111 echo "=== Wildcard overlap with filter"
112
907b42de
DG
113 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild1" "1==1"
114 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild2" "1==0"
26b53d3b
DG
115
116 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
117
118 run_demo_app
119
120 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
121
122 trace_match_all_demo_events
123 return $?
124}
125
126# Expect all "demo" events, no duplicate.
127test_enable_wildcard_filter_2()
128{
129 local event_wild1="us*"
130 local event_wild2="ust*"
131
132 echo ""
133 echo "=== Wildcard overlap with filter 2"
134
907b42de
DG
135 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild1" "1==0"
136 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild2" "1==1"
26b53d3b
DG
137
138 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
139
140 run_demo_app
141
142 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
143
144 trace_match_all_demo_events
145 return $?
146}
147
148# Expect all "demo" events, no duplicate.
149test_enable_wildcard_filter_3()
150{
151 local event_wild1="us*"
152 local event_wild2="ust*"
153
154 echo ""
155 echo "=== Wildcard overlap with filter 3"
156
907b42de
DG
157 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild1" "1==1"
158 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild2" "1==1"
26b53d3b
DG
159
160 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
161
162 run_demo_app
163
164 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
165
166 trace_match_all_demo_events
167 return $?
168}
169
170# Expected: No events.
171test_enable_wildcard_filter_4()
172{
173 local event_wild1="us*"
174 local event_wild2="ust*"
175
176 echo ""
177 echo "=== Wildcard overlap with filter 4"
178
907b42de
DG
179 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild1" "1==0"
180 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild2" "1==0"
26b53d3b
DG
181
182 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
183
184 run_demo_app
185
186 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
187
188 trace_match_no_demo_events
189 return $?
190}
191
192# Expect all "demo" events, no duplicate.
193test_enable_wildcard_filter_5()
194{
195 local event_wild1="us*"
196 local event_wild2="$DEMO_EVENT1"
197
198 echo ""
199 echo "=== Wildcard overlap with filter 5"
200
907b42de
DG
201 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild1" "1==1"
202 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild2" "1==0"
26b53d3b
DG
203
204 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
205
206 run_demo_app
207
208 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
209
210 trace_match_all_demo_events
211 return $?
212}
213
214# Expect all $DEMO_EVENT1 events, no duplicate.
215test_enable_wildcard_filter_6()
216{
217 local event_wild1="us*"
218 local event_wild2="$DEMO_EVENT1"
219
220 echo ""
221 echo "=== Wildcard overlap with filter 6"
222
907b42de
DG
223 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild1" "1==0"
224 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild2" "1==1"
26b53d3b
DG
225
226 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
227
228 run_demo_app
229
230 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
231
232 trace_matches $DEMO_EVENT1 $NUM_DEMO1_EVENT $TRACE_PATH
233 trace_matches $DEMO_EVENT1_2 0 $TRACE_PATH
234 trace_matches $DEMO_EVENT2 0 $TRACE_PATH
235 trace_matches $DEMO_EVENT3 0 $TRACE_PATH
236 return $?
237}
238
239# Expect all events, no duplicate.
240test_enable_wildcard_filter_7()
241{
242 local event_wild1="us*"
243 local event_wild2="$DEMO_EVENT1"
244
245 echo ""
246 echo "=== Wildcard overlap with filter 7"
247
907b42de
DG
248 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild1" "1==1"
249 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild2" "1==1"
26b53d3b
DG
250
251 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
252
253 run_demo_app
254
255 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
256
257 trace_match_all_demo_events
258 return $?
259}
260
261# Expected: No events.
262test_enable_wildcard_filter_8()
263{
264 local event_wild1="us*"
265 local event_wild2="$DEMO_EVENT1"
266
267 echo ""
268 echo "=== Wildcard overlap with filter 8"
269
907b42de
DG
270 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild1" "1==0"
271 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild2" "1==0"
26b53d3b
DG
272
273 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
274
275 run_demo_app
276
277 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
278
279 trace_match_no_demo_events
280 return $?
281}
282
283# Expect all events.
284test_enable_same_wildcard_filter()
285{
286 local event_wild1="ust*"
287 local event_wild2="ust*"
288
289 echo ""
290 echo "=== Same wildcard overlap with filter"
291
907b42de
DG
292 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild1" "1==1&&1==1"
293 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild2" "1==1"
26b53d3b
DG
294
295 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
296
297 run_demo_app
298
299 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
300
301 trace_match_all_demo_events
302 return $?
303}
304
305# Expect all events.
306test_enable_same_wildcard_filter_2()
307{
308 local event_wild1="ust*"
309 local event_wild2="ust*"
310
311 echo ""
312 echo "=== Same wildcard overlap with filter 2"
313
907b42de
DG
314 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild1" "1==1"
315 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild2" "1==1"
f8014aa3
DG
316 if [ $? -eq 1 ]; then
317 echo -n "FAIL is normal. Same event with same filter is denied by the sessiond "
318 print_ok
319 else
320 print_fail
321 fi
26b53d3b
DG
322
323 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
324
325 run_demo_app
326
327 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
328
329 trace_match_all_demo_events
330 return $?
331}
332
333# Expect all events.
334test_enable_same_wildcard_filter_3()
335{
336 local event_wild1="ust*"
337 local event_wild2="ust*"
338
339 echo ""
340 echo "=== Same wildcard overlap with filter 3"
341
907b42de
DG
342 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild1" "1==1"
343 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild2" "1==0"
26b53d3b
DG
344
345 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
346
347 run_demo_app
348
349 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
350
351 trace_match_all_demo_events
352 return $?
353}
354
355# Expected: No events.
356test_enable_same_wildcard_filter_4()
357{
358 local event_wild1="ust*"
359 local event_wild2="ust*"
360
361 echo ""
362 echo "=== Same wildcard overlap with filter 4"
363
907b42de
DG
364 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild1" "1==0&&1==0"
365 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild2" "1==0"
26b53d3b
DG
366
367 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
368
369 run_demo_app
370
371 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
372
373 trace_match_no_demo_events
374 return $?
375}
376
377# Expected: Only $DEMO_EVENT1
378test_enable_same_event_filter()
379{
380 local event_wild1="$DEMO_EVENT1"
381 local event_wild2="$DEMO_EVENT1"
382
383 echo ""
384 echo "=== Enable same event with filter."
385
907b42de
DG
386 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild1" "1==1&&1==1"
387 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild2" "1==1"
26b53d3b
DG
388
389 disable_ust_lttng_event $SESSION_NAME "ust*"
390
391 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
392
393 run_demo_app
394
395 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
396
397 trace_matches $DEMO_EVENT1 $NUM_DEMO1_EVENT $TRACE_PATH
398 trace_matches $DEMO_EVENT1_2 0 $TRACE_PATH
399 trace_matches $DEMO_EVENT2 0 $TRACE_PATH
400 trace_matches $DEMO_EVENT3 0 $TRACE_PATH
401 return $?
402}
403
404# Expected: No events.
405test_disable_same_wildcard_filter()
406{
407 local event_wild1="ust*"
408 local event_wild2="ust*"
409
410 echo ""
411 echo "=== Disable same wildcard with filter."
412
907b42de
DG
413 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild1" "1==1&&1==1"
414 enable_ust_lttng_event_filter $SESSION_NAME "$event_wild2" "1==1"
26b53d3b
DG
415
416 disable_ust_lttng_event $SESSION_NAME "ust*"
417
418 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
419
420 run_demo_app
421
422 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
423
424 trace_match_no_demo_events
425 return $?
426}
427
428# Expect no events
429test_enable_bad_wildcard()
430{
431 # Invalid event
432 local event_wild1="ust_tests_demo"
433 local event_wild2="ust_tests_demo2"
434 local event_wild3="ust_tests_demo3"
435
436 echo ""
437 echo "=== Enable bad wildcard"
438
907b42de
DG
439 enable_ust_lttng_event $SESSION_NAME "$event_wild1"
440 enable_ust_lttng_event $SESSION_NAME "$event_wild2"
441 enable_ust_lttng_event $SESSION_NAME "$event_wild3"
26b53d3b
DG
442
443 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
444
445 run_demo_app
446
447 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
448
449 trace_match_no_demo_events
450 return $?
451}
452
453# Expect all "demo" events, no duplicate.
454test_enable_simple_wildcard_2()
455{
456 local event_wild1="us*"
457 local event_wild2="$DEMO_EVENT1"
458
459 echo ""
460 echo "=== Simple wildcard 2"
461
907b42de
DG
462 enable_ust_lttng_event $SESSION_NAME "$event_wild1"
463 enable_ust_lttng_event $SESSION_NAME "$event_wild2"
26b53d3b
DG
464
465 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
466
467 run_demo_app
468
469 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
470
471 trace_match_all_demo_events
472 return $?
473}
474
475# Expected: all CRIT events, + all warning events.
476test_enable_loglevel_overlap()
477{
478 local event_wild1="us*"
479 local event_wild2="ust*"
480
481 echo ""
482 echo "=== Enable loglevel overlap"
483
484 enable_ust_lttng_event_loglevel $SESSION_NAME "$event_wild1" "TRACE_WARNING"
485 enable_ust_lttng_event_loglevel $SESSION_NAME "$event_wild2" "TRACE_CRIT"
486
487 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
488
489 run_demo_app
490
491 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
492
493 trace_match_all_demo_events
494 return $?
495}
496
497# Expected: all CRIT events, + all warning events.
498test_enable_loglevel_only_overlap()
499{
500 local event_wild1="us*"
501 local event_wild2="ust*"
502
503 echo ""
504 echo "=== Enable loglevel only overlap"
505
506 enable_ust_lttng_event_loglevel $SESSION_NAME "$event_wild1" "TRACE_WARNING"
507 enable_ust_lttng_event_loglevel_only $SESSION_NAME "$event_wild2" "TRACE_CRIT"
508
509 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
510
511 run_demo_app
512
513 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
514
515 trace_match_all_demo_events
516 return $?
517}
518
519# Expected: all events
520test_enable_loglevel_overlap_2()
521{
522 local event_wild1="us*"
523 local event_wild2="$DEMO_EVENT2"
524
525 echo ""
526 echo "=== Enable loglevel overlap 2"
527
528 enable_ust_lttng_event_loglevel $SESSION_NAME "$event_wild1" "TRACE_WARNING"
529 enable_ust_lttng_event_loglevel $SESSION_NAME "$event_wild2" "TRACE_CRIT"
530
531 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
532
533 run_demo_app
534
535 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
536
537 trace_match_all_demo_events
538 return $?
539}
540
541# Expected only ust_tests_demo* events.
542test_enable_same_wildcard_loglevels()
543{
544 local event_wild1="ust*"
545 local event_wild2="ust*"
546
547 echo ""
548 echo "=== Enable same wildcard with different loglevels"
549
550 enable_ust_lttng_event_loglevel $SESSION_NAME "$event_wild1" "TRACE_CRIT"
551 enable_ust_lttng_event_loglevel $SESSION_NAME "$event_wild2" "TRACE_WARNING"
552
553 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
554
555 run_demo_app
556
557 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
558
559 trace_match_all_demo_events
560 return $?
561}
562
563# Expected only ust_tests_demo:starting events.
564test_enable_same_event_loglevels()
565{
566 local event_wild1="$DEMO_EVENT1"
567 local event_wild2="$DEMO_EVENT1"
568
569 echo ""
570 echo "=== Enable same event with different loglevels"
571
572 enable_ust_lttng_event_loglevel $SESSION_NAME "$event_wild1" "TRACE_CRIT"
573 enable_ust_lttng_event_loglevel $SESSION_NAME "$event_wild2" "TRACE_WARNING"
574
575 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
576
577 run_demo_app
578
579 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
580
581 trace_matches $DEMO_EVENT1 $NUM_DEMO1_EVENT $TRACE_PATH
582 trace_matches $DEMO_EVENT1_2 0 $TRACE_PATH
583 trace_matches $DEMO_EVENT2 0 $TRACE_PATH
584 trace_matches $DEMO_EVENT3 0 $TRACE_PATH
585 return $?
586}
587
588# Expect 0 event
589test_disable_simple_wildcard()
590{
591 local event_wild1="us*"
592 local event_wild2="$DEMO_EVENT1"
593
594 echo ""
595 echo "=== Disable simple wildcard"
596
907b42de
DG
597 enable_ust_lttng_event $SESSION_NAME "$event_wild1"
598 enable_ust_lttng_event $SESSION_NAME "$event_wild2"
26b53d3b 599
907b42de
DG
600 disable_ust_lttng_event $SESSION_NAME "$event_wild1"
601 disable_ust_lttng_event $SESSION_NAME "$event_wild2"
26b53d3b
DG
602
603 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
604
605 run_demo_app
606
607 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
608
609 # No events are expected.
610 trace_match_no_demo_events
611 return $?
612}
613
614# Expect only "ust_tests_demo" events.
615test_disable_wildcard_overlap()
616{
617 local event_wild1="us*"
618 local event_wild2="$DEMO_EVENT1"
619
620 echo ""
621 echo "=== Disable wildcard overlap"
622
907b42de
DG
623 enable_ust_lttng_event $SESSION_NAME "$event_wild1"
624 enable_ust_lttng_event $SESSION_NAME "$event_wild2"
26b53d3b 625
907b42de 626 disable_ust_lttng_event $SESSION_NAME "$event_wild1"
26b53d3b
DG
627
628 start_lttng_tracing $SESSION_NAME >/dev/null 2>&1
629
630 run_demo_app
631
632 stop_lttng_tracing $SESSION_NAME >/dev/null 2>&1
633
634 # Expect only "ust_tests_demo" events.
907b42de
DG
635 trace_matches "$DEMO_EVENT1" $NUM_DEMO1_EVENT $TRACE_PATH
636 trace_matches "$DEMO_EVENT1_2" 0 $TRACE_PATH
637 trace_matches "$DEMO_EVENT2" 0 $TRACE_PATH
638 trace_matches "$DEMO_EVENT3" 0 $TRACE_PATH
26b53d3b
DG
639 return $?
640}
641
642TESTS=(
643 "test_enable_wildcard_filter"
644 "test_enable_wildcard_filter_2"
645 "test_enable_wildcard_filter_3"
646 "test_enable_wildcard_filter_4"
647 "test_enable_wildcard_filter_5"
648 "test_enable_wildcard_filter_6"
649 "test_enable_wildcard_filter_7"
650 "test_enable_wildcard_filter_8"
651 "test_enable_same_wildcard_filter"
652 "test_enable_same_wildcard_filter_2"
653 "test_enable_same_wildcard_filter_3"
654 "test_enable_same_wildcard_filter_4"
655 "test_enable_same_event_filter"
656 "test_enable_loglevel_only_overlap"
657 "test_enable_same_event_loglevels"
658 "test_enable_same_wildcard_loglevels"
659 "test_enable_bad_wildcard"
660 "test_enable_loglevel_overlap_2"
661 "test_enable_simple_wildcard"
662 "test_enable_simple_wildcard_2"
663 "test_enable_loglevel_overlap"
664 "test_disable_simple_wildcard"
665 "test_disable_wildcard_overlap"
666)
667
668TEST_COUNT=${#TESTS[@]}
669i=0
670
671start_lttng_sessiond
672
673while [ "$i" -lt "$TEST_COUNT" ]; do
674
675 TRACE_PATH=$(mktemp -d)
676
677 create_lttng_session $SESSION_NAME $TRACE_PATH >/dev/null 2>&1
678
679 # Execute test
680 ${TESTS[$i]}
681 if [ $? -ne 0 ]; then
682 stop_lttng_sessiond
683 exit 1
684 fi
685
686 destroy_lttng_session $SESSION_NAME >/dev/null 2>&1
687
688 rm -rf $TRACE_PATH
689
690 let "i++"
691done
692
693stop_lttng_sessiond
This page took 0.048035 seconds and 4 git commands to generate.