3 # Copyright (C) - 2012 David Goulet <dgoulet@efficios.com>
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.
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
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
17 TEST_DESC
="UST - Wildcard overlap"
20 TESTDIR
=$CURDIR/..
/..
/..
21 SESSION_NAME
="wildcard-overlap"
23 DEMO_EVENT1
="ust_tests_demo:starting"
24 DEMO_EVENT1_2
="ust_tests_demo:done"
25 DEMO_EVENT2
="ust_tests_demo2:loop"
26 DEMO_EVENT3
="ust_tests_demo3:done"
35 source $TESTDIR/utils
/utils.sh
37 if [ ! -x "$CURDIR/demo/demo" ]; then
38 BAIL_OUT
"No UST nevents binary detected."
41 # MUST set TESTDIR before calling those functions
48 .
/demo-trace
>/dev
/null
2>&1
49 ok $?
"Start application"
54 # Ease our life a bit ;)
55 trace_match_demo1_events
()
57 trace_matches
"$DEMO_EVENT1" $NUM_DEMO1_EVENT $TRACE_PATH
58 trace_matches
"$DEMO_EVENT1_2" $NUM_DEMO1_EVENT $TRACE_PATH
61 # Ease our life a bit ;)
62 trace_match_all_demo_events
()
64 trace_match_demo1_events
65 trace_matches
"$DEMO_EVENT2" $NUM_DEMO2_EVENT $TRACE_PATH
66 trace_matches
"$DEMO_EVENT3" $NUM_DEMO3_EVENT $TRACE_PATH
69 # Ease our life a bit ;)
70 trace_match_no_demo_events
()
72 trace_matches
"$DEMO_EVENT1" 0 $TRACE_PATH
73 trace_matches
"$DEMO_EVENT1_2" 0 $TRACE_PATH
74 trace_matches
"$DEMO_EVENT2" 0 $TRACE_PATH
75 trace_matches
"$DEMO_EVENT3" 0 $TRACE_PATH
78 # Expect all "demo" events, no duplicate.
79 test_enable_simple_wildcard
()
81 local event_wild1
="us*"
82 local event_wild2
="ust*"
84 diag
"Simple wildcard overlap"
86 enable_ust_lttng_event
$SESSION_NAME "$event_wild1"
87 enable_ust_lttng_event
$SESSION_NAME "$event_wild2"
89 start_lttng_tracing
$SESSION_NAME
93 stop_lttng_tracing
$SESSION_NAME
95 trace_match_all_demo_events
100 # Expect all "demo" events, no duplicate.
101 test_enable_wildcard_filter
()
103 local event_wild1
="us*"
104 local event_wild2
="ust*"
106 diag
"Wildcard overlap with filter"
108 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild1" "1==1"
109 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild2" "1==0"
111 start_lttng_tracing
$SESSION_NAME
115 stop_lttng_tracing
$SESSION_NAME
117 trace_match_all_demo_events
121 # Expect all "demo" events, no duplicate.
122 test_enable_wildcard_filter_2
()
124 local event_wild1
="us*"
125 local event_wild2
="ust*"
127 diag
"Wildcard overlap with filter 2"
129 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild1" "1==0"
130 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild2" "1==1"
132 start_lttng_tracing
$SESSION_NAME
136 stop_lttng_tracing
$SESSION_NAME
138 trace_match_all_demo_events
142 # Expect all "demo" events, no duplicate.
143 test_enable_wildcard_filter_3
()
145 local event_wild1
="us*"
146 local event_wild2
="ust*"
148 diag
"Wildcard overlap with filter 3"
150 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild1" "1==1"
151 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild2" "1==1"
153 start_lttng_tracing
$SESSION_NAME
157 stop_lttng_tracing
$SESSION_NAME
159 trace_match_all_demo_events
163 # Expected: No events.
164 test_enable_wildcard_filter_4
()
166 local event_wild1
="us*"
167 local event_wild2
="ust*"
169 diag
"Wildcard overlap with filter 4"
171 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild1" "1==0"
172 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild2" "1==0"
174 start_lttng_tracing
$SESSION_NAME
178 stop_lttng_tracing
$SESSION_NAME
180 trace_match_no_demo_events
184 # Expect all "demo" events, no duplicate.
185 test_enable_wildcard_filter_5
()
187 local event_wild1
="us*"
188 local event_wild2
="$DEMO_EVENT1"
190 diag
"Wildcard overlap with filter 5"
192 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild1" "1==1"
193 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild2" "1==0"
195 start_lttng_tracing
$SESSION_NAME
199 stop_lttng_tracing
$SESSION_NAME
201 trace_match_all_demo_events
205 # Expect all $DEMO_EVENT1 events, no duplicate.
206 test_enable_wildcard_filter_6
()
208 local event_wild1
="us*"
209 local event_wild2
="$DEMO_EVENT1"
211 diag
"Wildcard overlap with filter 6"
213 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild1" "1==0"
214 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild2" "1==1"
216 start_lttng_tracing
$SESSION_NAME
220 stop_lttng_tracing
$SESSION_NAME
222 trace_matches
$DEMO_EVENT1 $NUM_DEMO1_EVENT $TRACE_PATH
223 trace_matches
$DEMO_EVENT1_2 0 $TRACE_PATH
224 trace_matches
$DEMO_EVENT2 0 $TRACE_PATH
225 trace_matches
$DEMO_EVENT3 0 $TRACE_PATH
229 # Expect all events, no duplicate.
230 test_enable_wildcard_filter_7
()
232 local event_wild1
="us*"
233 local event_wild2
="$DEMO_EVENT1"
235 diag
"Wildcard overlap with filter 7"
237 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild1" "1==1"
238 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild2" "1==1"
240 start_lttng_tracing
$SESSION_NAME
244 stop_lttng_tracing
$SESSION_NAME
246 trace_match_all_demo_events
250 # Expected: No events.
251 test_enable_wildcard_filter_8
()
253 local event_wild1
="us*"
254 local event_wild2
="$DEMO_EVENT1"
256 diag
"Wildcard overlap with filter 8"
258 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild1" "1==0"
259 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild2" "1==0"
261 start_lttng_tracing
$SESSION_NAME
265 stop_lttng_tracing
$SESSION_NAME
267 trace_match_no_demo_events
272 test_enable_same_wildcard_filter
()
274 local event_wild1
="ust*"
275 local event_wild2
="ust*"
277 diag
"Same wildcard overlap with filter"
279 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild1" "1==1&&1==1"
280 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild2" "1==1"
282 start_lttng_tracing
$SESSION_NAME
286 stop_lttng_tracing
$SESSION_NAME
288 trace_match_all_demo_events
293 test_enable_same_wildcard_filter_2
()
295 local event_wild1
="ust*"
296 local event_wild2
="ust*"
298 diag
"Same wildcard overlap with filter 2"
300 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild1" "1==1"
302 # Enabling the same events with same filters should fail. This one is expected to fail.
303 $TESTDIR/..
/src
/bin
/lttng
/$LTTNG_BIN enable-event
"$event_wild2" -s $SESSION_NAME -u --filter "1==1" >/dev
/null
2>&1
304 if [ $?
-ne 0 ]; then
305 pass
"Enable event $event_name with filtering for session $sess_name twice failure detected"
307 fail
"Enable event $event_name with filtering for session $sess_name twice failure NOT detected"
310 start_lttng_tracing
$SESSION_NAME
314 stop_lttng_tracing
$SESSION_NAME
316 trace_match_all_demo_events
321 test_enable_same_wildcard_filter_3
()
323 local event_wild1
="ust*"
324 local event_wild2
="ust*"
326 diag
"Same wildcard overlap with filter 3"
328 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild1" "1==1"
329 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild2" "1==0"
331 start_lttng_tracing
$SESSION_NAME
335 stop_lttng_tracing
$SESSION_NAME
337 trace_match_all_demo_events
341 # Expected: No events.
342 test_enable_same_wildcard_filter_4
()
344 local event_wild1
="ust*"
345 local event_wild2
="ust*"
347 diag
"Same wildcard overlap with filter 4"
349 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild1" "1==0&&1==0"
350 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild2" "1==0"
352 start_lttng_tracing
$SESSION_NAME
356 stop_lttng_tracing
$SESSION_NAME
358 trace_match_no_demo_events
362 # Expected: Only $DEMO_EVENT1
363 test_enable_same_event_filter
()
365 local event_wild1
="$DEMO_EVENT1"
366 local event_wild2
="$DEMO_EVENT1"
368 diag
"Enable same event with filter."
370 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild1" "1==1&&1==1"
371 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild2" "1==1"
373 start_lttng_tracing
$SESSION_NAME
377 stop_lttng_tracing
$SESSION_NAME
379 trace_matches
$DEMO_EVENT1 $NUM_DEMO1_EVENT $TRACE_PATH
380 trace_matches
$DEMO_EVENT1_2 0 $TRACE_PATH
381 trace_matches
$DEMO_EVENT2 0 $TRACE_PATH
382 trace_matches
$DEMO_EVENT3 0 $TRACE_PATH
386 # Expected: No events.
387 test_disable_same_wildcard_filter
()
389 local event_wild1
="ust*"
390 local event_wild2
="ust*"
392 diag
"Disable same wildcard with filter."
394 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild1" "1==1&&1==1"
395 enable_ust_lttng_event_filter
$SESSION_NAME "$event_wild2" "1==1"
397 disable_ust_lttng_event
$SESSION_NAME "ust*"
399 start_lttng_tracing
$SESSION_NAME
403 stop_lttng_tracing
$SESSION_NAME
405 trace_match_no_demo_events
410 test_enable_bad_wildcard
()
413 local event_wild1
="ust_tests_demo"
414 local event_wild2
="ust_tests_demo2"
415 local event_wild3
="ust_tests_demo3"
417 diag
"Enable bad wildcard"
419 enable_ust_lttng_event
$SESSION_NAME "$event_wild1"
420 enable_ust_lttng_event
$SESSION_NAME "$event_wild2"
421 enable_ust_lttng_event
$SESSION_NAME "$event_wild3"
423 start_lttng_tracing
$SESSION_NAME
427 stop_lttng_tracing
$SESSION_NAME
429 trace_match_no_demo_events
433 # Expect all "demo" events, no duplicate.
434 test_enable_simple_wildcard_2
()
436 local event_wild1
="us*"
437 local event_wild2
="$DEMO_EVENT1"
439 diag
"Simple wildcard 2"
441 enable_ust_lttng_event
$SESSION_NAME "$event_wild1"
442 enable_ust_lttng_event
$SESSION_NAME "$event_wild2"
444 start_lttng_tracing
$SESSION_NAME
448 stop_lttng_tracing
$SESSION_NAME
450 trace_match_all_demo_events
454 # Expected: all CRIT events, + all warning events.
455 test_enable_loglevel_overlap
()
457 local event_wild1
="us*"
458 local event_wild2
="ust*"
460 diag
"Enable loglevel overlap"
462 enable_ust_lttng_event_loglevel
$SESSION_NAME "$event_wild1" "TRACE_WARNING"
463 enable_ust_lttng_event_loglevel
$SESSION_NAME "$event_wild2" "TRACE_CRIT"
465 start_lttng_tracing
$SESSION_NAME
469 stop_lttng_tracing
$SESSION_NAME
471 trace_match_all_demo_events
475 # Expected: all CRIT events, + all warning events.
476 test_enable_loglevel_only_overlap
()
478 local event_wild1
="us*"
479 local event_wild2
="ust*"
481 diag
"Enable loglevel only overlap"
483 enable_ust_lttng_event_loglevel
$SESSION_NAME "$event_wild1" "TRACE_WARNING"
484 enable_ust_lttng_event_loglevel_only
$SESSION_NAME "$event_wild2" "TRACE_CRIT"
486 start_lttng_tracing
$SESSION_NAME
490 stop_lttng_tracing
$SESSION_NAME
492 trace_match_all_demo_events
496 # Expected: all events
497 test_enable_loglevel_overlap_2
()
499 local event_wild1
="us*"
500 local event_wild2
="$DEMO_EVENT2"
502 diag
"Enable loglevel overlap 2"
504 enable_ust_lttng_event_loglevel
$SESSION_NAME "$event_wild1" "TRACE_WARNING"
505 enable_ust_lttng_event_loglevel
$SESSION_NAME "$event_wild2" "TRACE_CRIT"
507 start_lttng_tracing
$SESSION_NAME
511 stop_lttng_tracing
$SESSION_NAME
513 trace_match_all_demo_events
517 # Expected only ust_tests_demo* events.
518 test_enable_same_wildcard_loglevels
()
520 local event_wild1
="ust*"
521 local event_wild2
="ust*"
523 diag
"Enable same wildcard with different loglevels"
525 enable_ust_lttng_event_loglevel
$SESSION_NAME "$event_wild1" "TRACE_CRIT"
526 enable_ust_lttng_event_loglevel
$SESSION_NAME "$event_wild2" "TRACE_WARNING"
528 start_lttng_tracing
$SESSION_NAME
532 stop_lttng_tracing
$SESSION_NAME
534 trace_match_all_demo_events
538 # Expected only ust_tests_demo:starting events.
539 test_enable_same_event_loglevels
()
541 local event_wild1
="$DEMO_EVENT1"
542 local event_wild2
="$DEMO_EVENT1"
544 diag
"Enable same event with different loglevels"
546 enable_ust_lttng_event_loglevel
$SESSION_NAME "$event_wild1" "TRACE_CRIT"
547 enable_ust_lttng_event_loglevel
$SESSION_NAME "$event_wild2" "TRACE_WARNING"
549 start_lttng_tracing
$SESSION_NAME
553 stop_lttng_tracing
$SESSION_NAME
555 trace_matches
$DEMO_EVENT1 $NUM_DEMO1_EVENT $TRACE_PATH
556 trace_matches
$DEMO_EVENT1_2 0 $TRACE_PATH
557 trace_matches
$DEMO_EVENT2 0 $TRACE_PATH
558 trace_matches
$DEMO_EVENT3 0 $TRACE_PATH
563 test_disable_simple_wildcard
()
565 local event_wild1
="us*"
566 local event_wild2
="$DEMO_EVENT1"
568 diag
"Disable simple wildcard"
570 enable_ust_lttng_event
$SESSION_NAME "$event_wild1"
571 enable_ust_lttng_event
$SESSION_NAME "$event_wild2"
573 disable_ust_lttng_event
$SESSION_NAME "$event_wild1"
574 disable_ust_lttng_event
$SESSION_NAME "$event_wild2"
576 start_lttng_tracing
$SESSION_NAME
580 stop_lttng_tracing
$SESSION_NAME
582 # No events are expected.
583 trace_match_no_demo_events
587 # Expect only "ust_tests_demo" events.
588 test_disable_wildcard_overlap
()
590 local event_wild1
="us*"
591 local event_wild2
="$DEMO_EVENT1"
593 diag
"Disable wildcard overlap"
595 enable_ust_lttng_event
$SESSION_NAME "$event_wild1"
596 enable_ust_lttng_event
$SESSION_NAME "$event_wild2"
598 disable_ust_lttng_event
$SESSION_NAME "$event_wild1"
600 start_lttng_tracing
$SESSION_NAME
604 stop_lttng_tracing
$SESSION_NAME
606 # Expect only "ust_tests_demo" events.
607 trace_matches
"$DEMO_EVENT1" $NUM_DEMO1_EVENT $TRACE_PATH
608 trace_matches
"$DEMO_EVENT1_2" 0 $TRACE_PATH
609 trace_matches
"$DEMO_EVENT2" 0 $TRACE_PATH
610 trace_matches
"$DEMO_EVENT3" 0 $TRACE_PATH
614 plan_tests
$NUM_TESTS
616 print_test_banner
"$TEST_DESC"
619 "test_enable_wildcard_filter"
620 "test_enable_wildcard_filter_2"
621 "test_enable_wildcard_filter_3"
622 "test_enable_wildcard_filter_4"
623 "test_enable_wildcard_filter_5"
624 "test_enable_wildcard_filter_6"
625 "test_enable_wildcard_filter_7"
626 "test_enable_wildcard_filter_8"
627 "test_enable_same_wildcard_filter"
628 "test_enable_same_wildcard_filter_2"
629 "test_enable_same_wildcard_filter_3"
630 "test_enable_same_wildcard_filter_4"
631 "test_enable_same_event_filter"
632 "test_enable_loglevel_only_overlap"
633 "test_enable_same_event_loglevels"
634 "test_enable_same_wildcard_loglevels"
635 "test_enable_bad_wildcard"
636 "test_enable_loglevel_overlap_2"
637 "test_enable_simple_wildcard"
638 "test_enable_simple_wildcard_2"
639 "test_enable_loglevel_overlap"
640 "test_disable_simple_wildcard"
641 "test_disable_wildcard_overlap"
644 TEST_COUNT
=${#TESTS[@]}
649 while [ "$i" -lt "$TEST_COUNT" ]; do
651 TRACE_PATH
=$
(mktemp
-d)
653 create_lttng_session
$SESSION_NAME $TRACE_PATH
658 destroy_lttng_session
$SESSION_NAME