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