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