Tests: add globbing pattern tests to test_java_jul
[lttng-tools.git] / tests / regression / ust / java-jul / test_java_jul
1 #!/bin/bash
2 #
3 # Copyright (C) - 2013 David Goulet <dgoulet@efficios.com>
4 #
5 # This program is free software; you can redistribute it and/or modify it under
6 # the terms of the GNU General Public License, version 2 only, as published by
7 # the Free Software Foundation.
8 #
9 # This program 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 General Public License for more
12 # details.
13 #
14 # You should have received a copy of the GNU General Public License along with
15 # this program; if not, write to the Free Software Foundation, Inc., 51
16 # Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
18 TEST_DESC="Java JUL support"
19
20 CURDIR=$(dirname $0)/
21 TESTDIR=$CURDIR/../../..
22 NR_ITER=6
23 NR_MSEC_WAIT=1000
24 TESTAPP_NAME="JTestLTTng"
25 TESTAPP_BIN="$TESTAPP_NAME.java"
26 TESTAPP_PATH="$CURDIR/$TESTAPP_NAME"
27 SESSION_NAME="jul"
28 EVENT_NAME="JTestLTTng"
29 EVENT_NAME2="JTestLTTng2"
30 JAVA_CP="$CURDIR:$CLASSPATH"
31
32 NUM_TESTS=195
33
34 source $TESTDIR/utils/utils.sh
35
36 function run_app
37 {
38 local finest_tp=$1
39 local fire_second_tp=$2
40
41 #FIXME: app should have synchro.
42 java -cp $JAVA_CP -Djava.library.path="$LD_LIBRARY_PATH:/usr/local/lib:/usr/lib" $TESTAPP_NAME $NR_ITER $NR_MSEC_WAIT $finest_tp $fire_second_tp >/dev/null 2>&1
43 }
44
45 function run_app_background
46 {
47 run_app $@ &
48 }
49
50 function enable_jul_loglevel_only()
51 {
52 sess_name=$1
53 event_name="$2"
54 loglevel=$3
55 channel_name=$4
56
57 if [ -z $channel_name ]; then
58 # default channel if none specified
59 chan=""
60 else
61 chan="-c $channel_name"
62 fi
63
64 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event --loglevel-only $loglevel "$event_name" $chan -s $sess_name -j >/dev/null 2>&1
65 ok $? "Enable JUL event $event_name for session $sess_name with loglevel-only $loglevel"
66 }
67
68 function enable_jul_filter()
69 {
70 local sess_name="$1"
71 local event_name="$2"
72 local filter="$3"
73
74 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" -s $sess_name -j --filter "$filter" >/dev/null 2>&1
75 ok $? "Enable event $event_name with filter $filter for session $sess_name"
76 }
77
78 function enable_jul_filter_loglevel_only()
79 {
80 local sess_name="$1"
81 local event_name="$2"
82 local filter="$3"
83 local loglevel="$4"
84
85 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event --loglevel-only $loglevel "$event_name" -s $sess_name -j --filter "$filter" >/dev/null 2>&1
86 ok $? "Enable event $event_name with filter \"$filter\" and loglevel-only $loglevel for session $sess_name"
87 }
88
89 # MUST set TESTDIR before calling those functions
90
91 function test_jul_before_start ()
92 {
93 local file_sync_after_first=$(mktemp -u)
94 local file_sync_before_last=$(mktemp -u)
95
96 diag "Test JUL application BEFORE tracing starts"
97 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
98 enable_jul_lttng_event $SESSION_NAME $EVENT_NAME
99
100 # Run 5 times with a 1 second delay
101 run_app_background
102
103 start_lttng_tracing_ok $SESSION_NAME
104
105 touch ${file_sync_before_last}
106
107 # Wait for the applications started in background
108 wait
109
110 stop_lttng_tracing_ok $SESSION_NAME
111 destroy_lttng_session_ok $SESSION_NAME
112
113 rm -f ${file_sync_after_first}
114 rm -f ${file_sync_before_last}
115
116 # Validate test. Expecting all events.
117 trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH
118 if [ $? -ne 0 ]; then
119 return $?
120 fi
121 }
122
123 function test_jul_after_start ()
124 {
125 diag "Test JUL application AFTER tracing starts"
126
127 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
128 enable_jul_lttng_event $SESSION_NAME $EVENT_NAME
129 start_lttng_tracing_ok $SESSION_NAME
130
131 # Run 5 times with a 1 second delay
132 run_app
133
134 stop_lttng_tracing_ok $SESSION_NAME
135 destroy_lttng_session_ok $SESSION_NAME
136
137 # Validate test. Expecting all events.
138 trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH
139 if [ $? -ne 0 ]; then
140 return $?
141 fi
142 }
143
144 function test_jul_loglevel ()
145 {
146 diag "Test JUL application with loglevel"
147
148 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
149 enable_jul_lttng_event_loglevel $SESSION_NAME $EVENT_NAME "JUL_INFO"
150 start_lttng_tracing_ok $SESSION_NAME
151
152 # Run 5 times with a 1 second delay
153 run_app
154
155 stop_lttng_tracing_ok $SESSION_NAME
156 destroy_lttng_session_ok $SESSION_NAME
157
158 # Validate test. Expecting all events.
159 trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH
160 if [ $? -ne 0 ]; then
161 return $?
162 fi
163
164 diag "Test JUL applications with lower loglevel"
165
166 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
167 enable_jul_lttng_event_loglevel $SESSION_NAME $EVENT_NAME "JUL_SEVERE"
168 start_lttng_tracing_ok $SESSION_NAME
169
170 # Run 5 times with a 1 second delay
171 run_app
172
173 stop_lttng_tracing_ok $SESSION_NAME
174 destroy_lttng_session_ok $SESSION_NAME
175
176 # Validate test. Expecting 0 events.
177 trace_match_only $EVENT_NAME 0 $TRACE_PATH
178 if [ $? -ne 0 ]; then
179 return $?
180 fi
181
182 diag "Test JUL applications with higher loglevel"
183
184 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
185 enable_jul_lttng_event_loglevel $SESSION_NAME $EVENT_NAME "JUL_FINER"
186 start_lttng_tracing_ok $SESSION_NAME
187
188 # Run 5 times with a 1 second delay
189 run_app
190
191 stop_lttng_tracing_ok $SESSION_NAME
192 destroy_lttng_session_ok $SESSION_NAME
193
194 # Validate test. Expecting all events.
195 trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH
196 return $?
197 }
198
199 function test_jul_loglevel_multiple ()
200 {
201 diag "Test JUL application with multiple loglevel"
202
203 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
204 enable_jul_lttng_event_loglevel $SESSION_NAME $EVENT_NAME "JUL_INFO"
205 enable_jul_lttng_event_loglevel $SESSION_NAME $EVENT_NAME "JUL_FINEST"
206 start_lttng_tracing_ok $SESSION_NAME
207
208 # Run 5 times with a 1 second delay and fire two TP.
209 run_app 1
210
211 stop_lttng_tracing_ok $SESSION_NAME
212 destroy_lttng_session_ok $SESSION_NAME
213
214 # Validate test. Expecting all events times two.
215 trace_match_only $EVENT_NAME $(($NR_ITER * 2)) $TRACE_PATH
216 if [ $? -ne 0 ]; then
217 return $?
218 fi
219
220 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
221 enable_jul_lttng_event_loglevel $SESSION_NAME '*' "JUL_INFO"
222 enable_jul_lttng_event_loglevel $SESSION_NAME '*' "JUL_FINEST"
223 start_lttng_tracing_ok $SESSION_NAME
224
225 # Run 5 times with a 1 second delay and fire two TP.
226 run_app 1
227
228 stop_lttng_tracing_ok $SESSION_NAME
229 destroy_lttng_session_ok $SESSION_NAME
230
231 # Validate test. Expecting all events times two.
232 trace_match_only $EVENT_NAME $(($NR_ITER * 2)) $TRACE_PATH
233 if [ $? -ne 0 ]; then
234 return $?
235 fi
236 }
237
238 function test_jul_multi_session_loglevel()
239 {
240 diag "Test JUL with multiple session"
241
242 create_lttng_session_ok $SESSION_NAME-1 $TRACE_PATH/$SESSION_NAME-1
243 enable_jul_loglevel_only $SESSION_NAME-1 '*' "JUL_INFO"
244 start_lttng_tracing_ok $SESSION_NAME-1
245
246 create_lttng_session_ok $SESSION_NAME-2 $TRACE_PATH/$SESSION_NAME-2
247 enable_jul_loglevel_only $SESSION_NAME-2 '*' "JUL_FINEST"
248 start_lttng_tracing_ok $SESSION_NAME-2
249
250 # Run 5 times with a 1 second delay and fire second TP.
251 run_app 1 1
252
253 stop_lttng_tracing_ok $SESSION_NAME-1
254 stop_lttng_tracing_ok $SESSION_NAME-2
255 destroy_lttng_session_ok $SESSION_NAME-1
256 destroy_lttng_session_ok $SESSION_NAME-2
257
258 # Expecting 6 events being the main event plus the second tp.
259 trace_match_only $EVENT_NAME $(($NR_ITER + 1)) $TRACE_PATH/$SESSION_NAME-1
260 if [ $? -ne 0 ]; then
261 return $?
262 fi
263
264 # Expectin 5 events being the finest TP.
265 trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH/$SESSION_NAME-2
266 if [ $? -ne 0 ]; then
267 return $?
268 fi
269 }
270
271 function test_jul_multi_session_disable()
272 {
273 diag "Test JUL with multiple session with disabled event"
274
275 create_lttng_session_ok $SESSION_NAME-1 $TRACE_PATH/$SESSION_NAME-1
276 enable_jul_lttng_event $SESSION_NAME-1 $EVENT_NAME
277 enable_jul_lttng_event $SESSION_NAME-1 $EVENT_NAME2
278 disable_jul_lttng_event $SESSION_NAME-1 $EVENT_NAME
279 start_lttng_tracing_ok $SESSION_NAME-1
280
281 create_lttng_session_ok $SESSION_NAME-2 $TRACE_PATH/$SESSION_NAME-2
282 enable_jul_lttng_event $SESSION_NAME-2 $EVENT_NAME2
283 start_lttng_tracing_ok $SESSION_NAME-2
284
285 # Run 5 times with a 1 second delay and fire second TP.
286 run_app 0 1
287
288 stop_lttng_tracing_ok $SESSION_NAME-1
289 stop_lttng_tracing_ok $SESSION_NAME-2
290 destroy_lttng_session_ok $SESSION_NAME-1
291 destroy_lttng_session_ok $SESSION_NAME-2
292
293 # Validate test. Expecting one event of the second TP.
294 trace_match_only $EVENT_NAME2 1 $TRACE_PATH/$SESSION_NAME-1
295 if [ $? -ne 0 ]; then
296 return $?
297 fi
298
299 # Validate test. Expecting one event of the second TP.
300 trace_match_only $EVENT_NAME2 1 $TRACE_PATH/$SESSION_NAME-2
301 if [ $? -ne 0 ]; then
302 return $?
303 fi
304 }
305
306 function test_jul_multi_session_disable_wildcard()
307 {
308 diag "Test JUL with multiple session with disabled wildcard event"
309
310 create_lttng_session_ok $SESSION_NAME-1 $TRACE_PATH/$SESSION_NAME-1
311 enable_jul_lttng_event $SESSION_NAME-1 '*'
312
313 create_lttng_session_ok $SESSION_NAME-2 $TRACE_PATH/$SESSION_NAME-2
314 enable_jul_lttng_event $SESSION_NAME-2 '*'
315
316 disable_jul_lttng_event $SESSION_NAME-1 '*'
317
318 start_lttng_tracing_ok $SESSION_NAME-1
319 start_lttng_tracing_ok $SESSION_NAME-2
320
321 run_app
322
323 stop_lttng_tracing_ok $SESSION_NAME-1
324 stop_lttng_tracing_ok $SESSION_NAME-2
325 destroy_lttng_session_ok $SESSION_NAME-1
326 destroy_lttng_session_ok $SESSION_NAME-2
327
328 # Validate test. Expecting NO event of the first TP.
329 trace_match_only $EVENT_NAME 0 $TRACE_PATH/$SESSION_NAME-1
330 if [ $? -ne 0 ]; then
331 return $?
332 fi
333
334 # Validate test. Expecting all events of the first TP.
335 trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH/$SESSION_NAME-2
336 if [ $? -ne 0 ]; then
337 return $?
338 fi
339 }
340
341 function test_jul_multi_session_disable_wildcard_begin()
342 {
343 ev_name='*LTTng'
344 diag "Test JUL with multiple session with disabled wildcard (at the beginning) event"
345
346 create_lttng_session_ok $SESSION_NAME-1 $TRACE_PATH/$SESSION_NAME-1
347 enable_jul_lttng_event $SESSION_NAME-1 "$ev_name"
348
349 create_lttng_session_ok $SESSION_NAME-2 $TRACE_PATH/$SESSION_NAME-2
350 enable_jul_lttng_event $SESSION_NAME-2 "$ev_name"
351
352 disable_jul_lttng_event $SESSION_NAME-1 "$ev_name"
353
354 start_lttng_tracing_ok $SESSION_NAME-1
355 start_lttng_tracing_ok $SESSION_NAME-2
356
357 run_app 0 1
358
359 stop_lttng_tracing_ok $SESSION_NAME-1
360 stop_lttng_tracing_ok $SESSION_NAME-2
361 destroy_lttng_session_ok $SESSION_NAME-1
362 destroy_lttng_session_ok $SESSION_NAME-2
363
364 # Validate test. Expecting NO event of the first TP.
365 trace_match_only $EVENT_NAME 0 $TRACE_PATH/$SESSION_NAME-1
366 if [ $? -ne 0 ]; then
367 return $?
368 fi
369
370 # Validate test. Expecting all events of the first TP.
371 trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH/$SESSION_NAME-2
372 if [ $? -ne 0 ]; then
373 return $?
374 fi
375 }
376
377 function test_jul_multi_session_disable_wildcard_middle()
378 {
379 ev_name='J*LTTng'
380 diag "Test JUL with multiple session with disabled wildcard (at the middle) event"
381
382 create_lttng_session_ok $SESSION_NAME-1 $TRACE_PATH/$SESSION_NAME-1
383 enable_jul_lttng_event $SESSION_NAME-1 "$ev_name"
384
385 create_lttng_session_ok $SESSION_NAME-2 $TRACE_PATH/$SESSION_NAME-2
386 enable_jul_lttng_event $SESSION_NAME-2 "$ev_name"
387
388 disable_jul_lttng_event $SESSION_NAME-1 "$ev_name"
389
390 start_lttng_tracing_ok $SESSION_NAME-1
391 start_lttng_tracing_ok $SESSION_NAME-2
392
393 run_app 0 1
394
395 stop_lttng_tracing_ok $SESSION_NAME-1
396 stop_lttng_tracing_ok $SESSION_NAME-2
397 destroy_lttng_session_ok $SESSION_NAME-1
398 destroy_lttng_session_ok $SESSION_NAME-2
399
400 # Validate test. Expecting NO event of the first TP.
401 trace_match_only $EVENT_NAME 0 $TRACE_PATH/$SESSION_NAME-1
402 if [ $? -ne 0 ]; then
403 return $?
404 fi
405
406 # Validate test. Expecting all events of the first TP.
407 trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH/$SESSION_NAME-2
408 if [ $? -ne 0 ]; then
409 return $?
410 fi
411 }
412
413 function test_jul_multi_session_disable_wildcard_end()
414 {
415 ev_name='JTestLTT*'
416 diag "Test JUL with multiple session with disabled wildcard (at the end) event"
417
418 create_lttng_session_ok $SESSION_NAME-1 $TRACE_PATH/$SESSION_NAME-1
419 enable_jul_lttng_event $SESSION_NAME-1 "$ev_name"
420
421 create_lttng_session_ok $SESSION_NAME-2 $TRACE_PATH/$SESSION_NAME-2
422 enable_jul_lttng_event $SESSION_NAME-2 "$ev_name"
423
424 disable_jul_lttng_event $SESSION_NAME-1 "$ev_name"
425
426 start_lttng_tracing_ok $SESSION_NAME-1
427 start_lttng_tracing_ok $SESSION_NAME-2
428
429 run_app 0 1
430
431 stop_lttng_tracing_ok $SESSION_NAME-1
432 stop_lttng_tracing_ok $SESSION_NAME-2
433 destroy_lttng_session_ok $SESSION_NAME-1
434 destroy_lttng_session_ok $SESSION_NAME-2
435
436 # Validate test. Expecting NO event of the first TP.
437 trace_match_only $EVENT_NAME 0 $TRACE_PATH/$SESSION_NAME-1
438 if [ $? -ne 0 ]; then
439 return $?
440 fi
441
442 # Validate test. Expecting all events of the first TP.
443 trace_matches $EVENT_NAME $(( $NR_ITER + 1 )) $TRACE_PATH/$SESSION_NAME-2
444 if [ $? -ne 0 ]; then
445 return $?
446 fi
447
448 trace_matches $EVENT_NAME2 1 $TRACE_PATH/$SESSION_NAME-2
449 if [ $? -ne 0 ]; then
450 return $?
451 fi
452 }
453
454 function test_jul_disable_all()
455 {
456 diag "Test JUL with multiple session with disabled all event"
457
458 create_lttng_session_ok $SESSION_NAME $TRACE_PATH/$SESSION_NAME
459 enable_jul_lttng_event $SESSION_NAME '*'
460 enable_jul_lttng_event $SESSION_NAME $EVENT_NAME
461 enable_jul_lttng_event $SESSION_NAME $EVENT_NAME2
462
463 disable_jul_lttng_event $SESSION_NAME -a
464
465 start_lttng_tracing_ok $SESSION_NAME
466
467 run_app 0 1
468
469 stop_lttng_tracing_ok $SESSION_NAME
470 destroy_lttng_session_ok $SESSION_NAME
471
472 # Validate test. Expecting NO event of the first TP and second TP.
473 trace_match_only $EVENT_NAME 0 $TRACE_PATH/$SESSION_NAME
474 trace_match_only $EVENT_NAME2 0 $TRACE_PATH/$SESSION_NAME
475 if [ $? -ne 0 ]; then
476 return $?
477 fi
478 }
479
480 function test_jul_multi_session()
481 {
482 diag "Test JUL with multiple session"
483
484 create_lttng_session_ok $SESSION_NAME-1 $TRACE_PATH/$SESSION_NAME-1
485 enable_jul_lttng_event $SESSION_NAME-1 $EVENT_NAME
486 start_lttng_tracing_ok $SESSION_NAME-1
487
488 create_lttng_session_ok $SESSION_NAME-2 $TRACE_PATH/$SESSION_NAME-2
489 enable_jul_lttng_event $SESSION_NAME-2 $EVENT_NAME2
490 start_lttng_tracing_ok $SESSION_NAME-2
491
492 # Run 5 times with a 1 second delay and fire second TP.
493 run_app 0 1
494
495 stop_lttng_tracing_ok $SESSION_NAME-1
496 stop_lttng_tracing_ok $SESSION_NAME-2
497 destroy_lttng_session_ok $SESSION_NAME-1
498 destroy_lttng_session_ok $SESSION_NAME-2
499
500 # Validate test. Expecting all events of first TP
501 trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH/$SESSION_NAME-1
502 if [ $? -ne 0 ]; then
503 return $?
504 fi
505
506 # Validate test. Expecting one event of the second TP.
507 trace_match_only $EVENT_NAME2 1 $TRACE_PATH/$SESSION_NAME-2
508 if [ $? -ne 0 ]; then
509 return $?
510 fi
511 }
512
513 function test_jul_destroy_session()
514 {
515 diag "Test JUL two session with destroy"
516
517 create_lttng_session_ok $SESSION_NAME $TRACE_PATH/first-sess
518 enable_jul_lttng_event $SESSION_NAME $EVENT_NAME
519 start_lttng_tracing_ok $SESSION_NAME
520
521 # Run 5 times with a 1 second delay
522 run_app_background 0 1
523
524 # Wait for the applications started in background
525 wait
526
527 stop_lttng_tracing_ok $SESSION_NAME
528 destroy_lttng_session_ok $SESSION_NAME
529
530 # Validate test. Expecting at least one event num 1
531 validate_trace $EVENT_NAME $TRACE_PATH/first-sess
532 if [ $? -ne 0 ]; then
533 return $?
534 fi
535
536 create_lttng_session_ok $SESSION_NAME $TRACE_PATH/second-sess
537 enable_jul_lttng_event $SESSION_NAME $EVENT_NAME2
538 start_lttng_tracing_ok $SESSION_NAME
539
540 # Run 5 times with a 1 second delay
541 run_app_background 0 1
542
543 # Wait for the applications started in background
544 wait
545
546 stop_lttng_tracing_ok $SESSION_NAME
547 destroy_lttng_session_ok $SESSION_NAME
548
549 # Validate test. Expecting only one event num 2
550 trace_match_only $EVENT_NAME2 1 $TRACE_PATH/second-sess
551 if [ $? -ne 0 ]; then
552 return $?
553 fi
554 }
555
556 function test_jul_filtering()
557 {
558 diag "Test JUL filtering"
559
560 create_lttng_session_ok $SESSION_NAME $TRACE_PATH/$SESSION_NAME
561 # Enable all event with a filter.
562 enable_jul_filter $SESSION_NAME '*' 'msg == "JUL second logger fired"'
563 start_lttng_tracing_ok $SESSION_NAME
564
565 # Run 5 times with a 1 second delay and fire second TP.
566 run_app 0 1
567
568 stop_lttng_tracing_ok $SESSION_NAME
569 destroy_lttng_session_ok $SESSION_NAME
570
571 # Validate test. Expecting one event of the second TP only.
572 trace_match_only $EVENT_NAME2 1 $TRACE_PATH/$SESSION_NAME
573 if [ $? -ne 0 ]; then
574 return $?
575 fi
576
577 create_lttng_session_ok $SESSION_NAME $TRACE_PATH/$SESSION_NAME
578 # Enable first Logger but filter msg payload for the INFO one while
579 # triggering the finest and second TP.
580 enable_jul_filter $SESSION_NAME $EVENT_NAME 'msg == "JUL tp fired!"'
581 start_lttng_tracing_ok $SESSION_NAME
582
583 # Run 5 times with a 1 second delay, fire finest and second TP.
584 run_app 1 1
585
586 stop_lttng_tracing_ok $SESSION_NAME
587 destroy_lttng_session_ok $SESSION_NAME
588
589 # Validate test. Expecting NR_ITER event of the main INFO tp.
590 trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH/$SESSION_NAME
591 if [ $? -ne 0 ]; then
592 return $?
593 fi
594 }
595
596 function test_jul_disable()
597 {
598 diag "Test JUL disable event"
599
600 create_lttng_session_ok $SESSION_NAME $TRACE_PATH/$SESSION_NAME
601 # Enable all event with a filter.
602 enable_jul_lttng_event $SESSION_NAME $EVENT_NAME
603 enable_jul_lttng_event $SESSION_NAME $EVENT_NAME2
604 disable_jul_lttng_event $SESSION_NAME $EVENT_NAME
605 start_lttng_tracing_ok $SESSION_NAME
606
607 # Run 5 times with a 1 second delay and fire second TP.
608 run_app 0 1
609
610 stop_lttng_tracing_ok $SESSION_NAME
611 destroy_lttng_session_ok $SESSION_NAME
612
613 # Validate test. Expecting one event of the second TP only.
614 trace_match_only $EVENT_NAME2 1 $TRACE_PATH/$SESSION_NAME
615 if [ $? -ne 0 ]; then
616 return $?
617 fi
618 }
619
620 function test_jul_disable_enable()
621 {
622 diag "Test JUL disable event followed by an enable"
623
624 create_lttng_session_ok $SESSION_NAME $TRACE_PATH/$SESSION_NAME
625 # Enable all event with a filter.
626 enable_jul_lttng_event $SESSION_NAME $EVENT_NAME
627 disable_jul_lttng_event $SESSION_NAME $EVENT_NAME
628 enable_jul_lttng_event $SESSION_NAME $EVENT_NAME
629 start_lttng_tracing_ok $SESSION_NAME
630
631 # Run 5 times with a 1 second delay and fire second TP.
632 run_app 0 1
633
634 stop_lttng_tracing_ok $SESSION_NAME
635 destroy_lttng_session_ok $SESSION_NAME
636
637 # Validate test. Expecting NR_ITER event of the main INFO tp.
638 trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH/$SESSION_NAME
639 if [ $? -ne 0 ]; then
640 return $?
641 fi
642 }
643
644 function test_jul_filter_loglevel()
645 {
646 local BOGUS_EVENT_NAME="not_a_real_event"
647 local FILTER="int_loglevel > 700 || int_loglevel < 700"
648 local ALL_EVENTS="."
649
650 diag "Test JUL a filter with a loglevel"
651
652 create_lttng_session_ok $SESSION_NAME $TRACE_PATH/$SESSION_NAME
653 # Enable an event with a filter and the loglevel-only option.
654 enable_jul_filter_loglevel_only $SESSION_NAME $BOGUS_EVENT_NAME "$FILTER" JUL_CONFIG
655 disable_jul_lttng_event $SESSION_NAME $BOGUS_EVENT_NAME
656 enable_jul_filter_loglevel_only $SESSION_NAME $BOGUS_EVENT_NAME "$FILTER" JUL_CONFIG
657 start_lttng_tracing_ok $SESSION_NAME
658
659 # Run 5 times with a 1 second delay and fire second TP.
660 run_app 0 1
661
662 stop_lttng_tracing_ok $SESSION_NAME
663 destroy_lttng_session_ok $SESSION_NAME
664
665 # Validate test. Expecting no events.
666 trace_match_only $ALL_EVENTS 0 $TRACE_PATH/$SESSION_NAME
667 if [ $? -ne 0 ]; then
668 return $?
669 fi
670 }
671
672 plan_tests $NUM_TESTS
673
674 print_test_banner "$TEST_DESC"
675
676 if [ ! -f "$TESTAPP_PATH.class" ]; then
677 withapp=0
678 else
679 withapp=1
680 fi
681
682 skip $withapp "JUL support is needed. Skipping all tests." $NUM_TESTS ||
683 {
684 start_lttng_sessiond
685
686 tests=(
687 test_jul_multi_session_disable_wildcard_begin
688 test_jul_multi_session_disable_wildcard_middle
689 test_jul_multi_session_disable_wildcard_end
690 test_jul_multi_session_disable_wildcard
691 test_jul_multi_session_disable
692 test_jul_disable
693 test_jul_disable_enable
694 test_jul_disable_all
695 test_jul_filtering
696 test_jul_multi_session_loglevel
697 test_jul_destroy_session
698 test_jul_loglevel
699 test_jul_loglevel_multiple
700 test_jul_before_start
701 test_jul_after_start
702 test_jul_multi_session
703 test_jul_filter_loglevel
704 )
705
706 for fct_test in ${tests[@]};
707 do
708 TRACE_PATH=$(mktemp -d)
709
710 ${fct_test}
711 if [ $? -ne 0 ]; then
712 break;
713 fi
714 rm -rf $TRACE_PATH
715 done
716
717 stop_lttng_sessiond
718 }
This page took 0.044065 seconds and 4 git commands to generate.