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