3 # Copyright (C) - 2013 David Goulet <dgoulet@efficios.com>
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.
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
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.
18 TEST_DESC
="Java JUL support"
21 TESTDIR
=$CURDIR/..
/..
/..
24 TESTAPP_NAME
="JTestLTTng"
25 TESTAPP_BIN
="$TESTAPP_NAME.java"
26 TESTAPP_PATH
="$CURDIR/$TESTAPP_NAME"
28 EVENT_NAME
="JTestLTTng"
29 JAVA_CP
="$CURDIR:/usr/local/lib/lttng/java/liblttng-ust-jul.jar:/usr/lib/lttng/java/liblttng-ust-jul.jar"
31 TRACE_PATH
=$
(mktemp
-d)
35 source $TESTDIR/utils
/utils.sh
39 java
-cp $JAVA_CP -Djava.library.path
="/usr/local/lib:/usr/lib" $TESTAPP_NAME $NR_ITER $NR_MSEC_WAIT >/dev
/null
2>&1 &
44 while [ -n "$(pidof java)" ]; do
47 pass
"Wait for applications to end"
50 # MUST set TESTDIR before calling those functions
52 function test_jul_before_start
()
54 diag
"Test JUL application BEFORE tracing starts"
55 create_lttng_session
$SESSION_NAME $TRACE_PATH
56 enable_jul_lttng_event
$SESSION_NAME $EVENT_NAME
58 # Run 5 times with a 1 second delay
61 start_lttng_tracing
$SESSION_NAME
65 stop_lttng_tracing
$SESSION_NAME
66 destroy_lttng_session
$SESSION_NAME
68 # Validate test. Expecting all events.
69 trace_matches
$EVENT_NAME $NR_ITER $TRACE_PATH
75 function test_jul_after_start
()
77 diag
"Test JUL application AFTER tracing starts"
79 create_lttng_session
$SESSION_NAME $TRACE_PATH
80 enable_jul_lttng_event
$SESSION_NAME $EVENT_NAME
81 start_lttng_tracing
$SESSION_NAME
83 # Run 5 times with a 1 second delay
88 stop_lttng_tracing
$SESSION_NAME
89 destroy_lttng_session
$SESSION_NAME
91 # Validate test. Expecting all events.
92 trace_matches
$EVENT_NAME $NR_ITER $TRACE_PATH
98 function test_jul_loglevel
()
100 diag
"Test JUL application with loglevel"
102 create_lttng_session
$SESSION_NAME $TRACE_PATH
103 enable_jul_lttng_event_loglevel
$SESSION_NAME $EVENT_NAME "JUL_INFO"
104 start_lttng_tracing
$SESSION_NAME
106 # Run 5 times with a 1 second delay
111 stop_lttng_tracing
$SESSION_NAME
112 destroy_lttng_session
$SESSION_NAME
114 # Validate test. Expecting all events.
115 trace_matches
$EVENT_NAME $NR_ITER $TRACE_PATH
116 if [ $?
-ne 0 ]; then
120 diag
"Test JUL applications with lower loglevel"
122 create_lttng_session
$SESSION_NAME $TRACE_PATH
123 enable_jul_lttng_event_loglevel
$SESSION_NAME $EVENT_NAME "JUL_SEVERE"
124 start_lttng_tracing
$SESSION_NAME
126 # Run 5 times with a 1 second delay
131 stop_lttng_tracing
$SESSION_NAME
132 destroy_lttng_session
$SESSION_NAME
134 # Validate test. Expecting 0 events.
135 trace_matches
$EVENT_NAME 0 $TRACE_PATH
136 if [ $?
-ne 0 ]; then
140 diag
"Test JUL applications with higher loglevel"
142 create_lttng_session
$SESSION_NAME $TRACE_PATH
143 enable_jul_lttng_event_loglevel
$SESSION_NAME $EVENT_NAME "JUL_FINER"
144 start_lttng_tracing
$SESSION_NAME
146 # Run 5 times with a 1 second delay
151 stop_lttng_tracing
$SESSION_NAME
152 destroy_lttng_session
$SESSION_NAME
154 # Validate test. Expecting all events.
155 trace_matches
$EVENT_NAME $NR_ITER $TRACE_PATH
159 plan_tests
$NUM_TESTS
161 print_test_banner
"$TEST_DESC"
163 if [ ! -f "$TESTAPP_PATH.class" ]; then
169 skip
$withapp "JUL support is needed. Skipping all tests." $NUM_TESTS ||
175 test_jul_before_start
179 for fct_test
in ${tests[@]};
182 if [ $?
-ne 0 ]; then