Commit | Line | Data |
---|---|---|
0fd2fd15 MJ |
1 | #!/bin/bash |
2 | # | |
3 | # Copyright (C) 2014 David Goulet <dgoulet@efficios.com> | |
4 | # Copyright (C) 2022 EfficiOS Inc. | |
5 | # | |
6 | # SPDX-License-Identifier: GPL-2.0-only | |
7 | ||
8 | TEST_DESC="Java LOG4J 2.x Agent tests with 'log4j' domain" | |
9 | ||
10 | CURDIR=$(dirname "$0")/ | |
11 | TESTDIR=$CURDIR/../../.. | |
12 | ||
13 | NR_ITER=6 | |
14 | NR_MSEC_WAIT=100 | |
15 | ||
16 | TESTAPP_NAME="JTestLTTngLog4j2" | |
17 | TESTAPP_PATH="$CURDIR/$TESTAPP_NAME" | |
18 | ||
19 | EVENT_NAME_BASE="log4j2-event" | |
20 | EVENT_NAME1="$EVENT_NAME_BASE-1" | |
21 | EVENT_NAME2="$EVENT_NAME_BASE-2" | |
22 | ||
23 | JAVA_CP="$CURDIR:$CLASSPATH" | |
24 | ||
25 | NUM_TESTS=196 | |
26 | ||
27 | # shellcheck source=../../../utils/utils.sh | |
28 | source "$TESTDIR/utils/utils.sh" | |
29 | ||
30 | function run_app | |
31 | { | |
32 | local debug_tp=$1 | |
33 | local fire_second_tp=$2 | |
34 | ||
35 | if [ "$debug_tp" = "" ]; then | |
36 | debug_tp=0 | |
37 | fi | |
38 | ||
39 | if [ "$fire_second_tp" = "" ]; then | |
40 | fire_second_tp=0 | |
41 | fi | |
42 | ||
43 | # FIXME: test app should have synchro. | |
44 | diag "java -cp $JAVA_CP -Dlog4j2.configurationFile=\"domain-log4j.xml\" -Djava.library.path=\"$LD_LIBRARY_PATH:/usr/local/lib:/usr/lib\" $TESTAPP_NAME $NR_ITER $NR_MSEC_WAIT $debug_tp $fire_second_tp" | |
b445e3da | 45 | java -cp "$JAVA_CP" -Dlog4j2.configurationFile="domain-log4j.xml" -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 |
0fd2fd15 MJ |
46 | } |
47 | ||
48 | function run_app_background | |
49 | { | |
50 | run_app "${@}" & | |
51 | } | |
52 | ||
53 | ||
54 | # MUST set TESTDIR before calling those functions | |
55 | ||
56 | function test_log4j2_before_start () | |
57 | { | |
58 | local file_sync_after_first | |
59 | local file_sync_before_last | |
60 | ||
8d5a3312 MJ |
61 | file_sync_after_first=$(mktemp -u -t "tmp.${FUNCNAME[0]}_sync_after_first.XXXXXX") |
62 | file_sync_before_last=$(mktemp -u -t "tmp.${FUNCNAME[0]}_sync_before_last.XXXXXX") | |
0fd2fd15 MJ |
63 | |
64 | diag "Test LOG4J2 application BEFORE tracing starts" | |
65 | create_lttng_session_ok "log4j2_before_start" "$TRACE_PATH" | |
66 | enable_log4j_lttng_event "log4j2_before_start" $EVENT_NAME1 | |
67 | ||
68 | # Run 6 times with a 100ms delay | |
69 | run_app_background | |
70 | ||
71 | start_lttng_tracing_ok "log4j2_before_start" | |
72 | ||
73 | touch "${file_sync_before_last}" | |
74 | ||
75 | # Wait for the applications started in background | |
76 | wait | |
77 | ||
78 | stop_lttng_tracing_ok "log4j2_before_start" | |
79 | destroy_lttng_session_ok "log4j2_before_start" | |
80 | ||
81 | rm -f "${file_sync_after_first}" | |
82 | rm -f "${file_sync_before_last}" | |
83 | ||
84 | # Validate test. Expecting all events. | |
85 | trace_match_only $EVENT_NAME1 $NR_ITER "$TRACE_PATH" | |
86 | } | |
87 | ||
88 | function test_log4j2_after_start () | |
89 | { | |
90 | diag "Test LOG4J2 application AFTER tracing starts" | |
91 | ||
92 | create_lttng_session_ok "log4j2_after_start" "$TRACE_PATH" | |
93 | enable_log4j_lttng_event "log4j2_after_start" $EVENT_NAME1 | |
94 | start_lttng_tracing_ok "log4j2_after_start" | |
95 | ||
96 | # Run 6 times with a 100ms delay | |
97 | run_app | |
98 | ||
99 | stop_lttng_tracing_ok "log4j2_after_start" | |
100 | destroy_lttng_session_ok "log4j2_after_start" | |
101 | ||
102 | # Validate test. Expecting all events. | |
103 | trace_match_only $EVENT_NAME1 $NR_ITER "$TRACE_PATH" | |
104 | } | |
105 | ||
106 | function test_log4j2_loglevel () | |
107 | { | |
108 | diag "Test LOG4J2 application with loglevel" | |
109 | ||
110 | create_lttng_session_ok "log4j2_loglevel_info" "$TRACE_PATH" | |
111 | enable_log4j_lttng_event_loglevel "log4j2_loglevel_info" $EVENT_NAME1 "LOG4J_INFO" | |
112 | start_lttng_tracing_ok "log4j2_loglevel_info" | |
113 | ||
114 | # Run 6 times with a 1ms delay | |
115 | run_app | |
116 | ||
117 | stop_lttng_tracing_ok "log4j2_loglevel_info" | |
118 | destroy_lttng_session_ok "log4j2_loglevel_info" | |
119 | ||
120 | # Validate test. Expecting all events. | |
121 | trace_match_only $EVENT_NAME1 $NR_ITER "$TRACE_PATH" | |
122 | ||
123 | diag "Test LOG4J2 applications with lower loglevel" | |
124 | ||
125 | create_lttng_session_ok "log4j2_loglevel_fatal" "$TRACE_PATH" | |
126 | enable_log4j_lttng_event_loglevel "log4j2_loglevel_fatal" $EVENT_NAME1 "LOG4J_FATAL" | |
127 | start_lttng_tracing_ok "log4j2_loglevel_fatal" | |
128 | ||
129 | # Run 6 times with a 1ms delay | |
130 | run_app | |
131 | ||
132 | stop_lttng_tracing_ok "log4j2_loglevel_fatal" | |
133 | destroy_lttng_session_ok "log4j2_loglevel_fatal" | |
134 | ||
135 | # Validate test. Expecting 0 events. | |
136 | trace_match_only $EVENT_NAME1 0 "$TRACE_PATH" | |
137 | ||
138 | diag "Test LOG4J2 applications with higher loglevel" | |
139 | ||
140 | create_lttng_session_ok "log4j2_loglevel_trace" "$TRACE_PATH" | |
141 | enable_log4j_lttng_event_loglevel "log4j2_loglevel_trace" $EVENT_NAME1 "LOG4J_TRACE" | |
142 | start_lttng_tracing_ok "log4j2_loglevel_trace" | |
143 | ||
144 | # Run 6 times with a 1ms delay | |
145 | run_app | |
146 | ||
147 | stop_lttng_tracing_ok "log4j2_loglevel_trace" | |
148 | destroy_lttng_session_ok "log4j2_loglevel_trace" | |
149 | ||
150 | # Validate test. Expecting all events. | |
151 | trace_match_only $EVENT_NAME1 $NR_ITER "$TRACE_PATH" | |
152 | } | |
153 | ||
154 | function test_log4j2_loglevel_multiple () | |
155 | { | |
156 | diag "Test LOG4J2 application with multiple loglevel" | |
157 | ||
158 | create_lttng_session_ok "log4j2_loglevel_multiple" "$TRACE_PATH" | |
159 | enable_log4j_lttng_event_loglevel "log4j2_loglevel_multiple" $EVENT_NAME1 "LOG4J_INFO" | |
160 | enable_log4j_lttng_event_loglevel "log4j2_loglevel_multiple" $EVENT_NAME1 "LOG4J_DEBUG" | |
161 | start_lttng_tracing_ok "log4j2_loglevel_multiple" | |
162 | ||
163 | # Run 6 times with a 1ms delay and fire two TP. | |
164 | run_app 1 | |
165 | ||
166 | stop_lttng_tracing_ok "log4j2_loglevel_multiple" | |
167 | destroy_lttng_session_ok "log4j2_loglevel_multiple" | |
168 | ||
169 | # Validate test. Expecting all events times two. | |
170 | trace_match_only $EVENT_NAME1 $((NR_ITER * 2)) "$TRACE_PATH" | |
171 | ||
172 | create_lttng_session_ok "log4j2_loglevel_multiple" "$TRACE_PATH" | |
173 | enable_log4j_lttng_event_loglevel "log4j2_loglevel_multiple" '*' "LOG4J_INFO" | |
174 | enable_log4j_lttng_event_loglevel "log4j2_loglevel_multiple" '*' "LOG4J_DEBUG" | |
175 | start_lttng_tracing_ok "log4j2_loglevel_multiple" | |
176 | ||
177 | # Run 6 times with a 1ms delay and fire two TP. | |
178 | run_app 1 | |
179 | ||
180 | stop_lttng_tracing_ok "log4j2_loglevel_multiple" | |
181 | destroy_lttng_session_ok "log4j2_loglevel_multiple" | |
182 | ||
183 | # Validate test. Expecting all events times two. | |
184 | trace_match_only $EVENT_NAME1 $((NR_ITER * 2)) "$TRACE_PATH" | |
185 | } | |
186 | ||
187 | function test_log4j2_multi_session_loglevel() | |
188 | { | |
189 | diag "Test LOG4J2 with multiple session" | |
190 | ||
191 | create_lttng_session_ok "log4j2_all_info" "$TRACE_PATH/log4j2_all_info" | |
192 | enable_log4j_lttng_event_loglevel_only "log4j2_all_info" '*' "LOG4J_INFO" | |
193 | start_lttng_tracing_ok "log4j2_all_info" | |
194 | ||
195 | create_lttng_session_ok "log4j2_all_debug" "$TRACE_PATH/log4j2_all_debug" | |
196 | enable_log4j_lttng_event_loglevel_only "log4j2_all_debug" '*' "LOG4J_DEBUG" | |
197 | start_lttng_tracing_ok "log4j2_all_debug" | |
198 | ||
199 | # Run 6 times with a 1ms delay and fire second TP. | |
200 | run_app 1 1 | |
201 | ||
202 | stop_lttng_tracing_ok "log4j2_all_info" | |
203 | stop_lttng_tracing_ok "log4j2_all_debug" | |
204 | destroy_lttng_session_ok "log4j2_all_info" | |
205 | destroy_lttng_session_ok "log4j2_all_debug" | |
206 | ||
207 | # Expecting 7 events being the main event plus the second tp. | |
208 | trace_match_only $EVENT_NAME_BASE $((NR_ITER + 1)) "$TRACE_PATH/log4j2_all_info" | |
209 | ||
210 | # Expectin 6 events being the debug TP. | |
211 | trace_match_only $EVENT_NAME_BASE $NR_ITER "$TRACE_PATH/log4j2_all_debug" | |
212 | } | |
213 | ||
214 | function test_log4j2_multi_session_disable() | |
215 | { | |
216 | diag "Test LOG4J2 with multiple session with disabled event" | |
217 | ||
218 | create_lttng_session_ok "log4j2_disabled_event" "$TRACE_PATH/log4j2_disabled_event" | |
219 | enable_log4j_lttng_event "log4j2_disabled_event" $EVENT_NAME1 | |
220 | enable_log4j_lttng_event "log4j2_disabled_event" $EVENT_NAME2 | |
221 | disable_log4j_lttng_event "log4j2_disabled_event" $EVENT_NAME1 | |
222 | start_lttng_tracing_ok "log4j2_disabled_event" | |
223 | ||
224 | create_lttng_session_ok "log4j2_enabled_event" "$TRACE_PATH/log4j2_enabled_event" | |
225 | enable_log4j_lttng_event "log4j2_enabled_event" $EVENT_NAME2 | |
226 | start_lttng_tracing_ok "log4j2_enabled_event" | |
227 | ||
228 | # Run 5 times with a 1ms delay and fire second TP. | |
229 | run_app 0 1 | |
230 | ||
231 | stop_lttng_tracing_ok "log4j2_disabled_event" | |
232 | stop_lttng_tracing_ok "log4j2_enabled_event" | |
233 | destroy_lttng_session_ok "log4j2_disabled_event" | |
234 | destroy_lttng_session_ok "log4j2_enabled_event" | |
235 | ||
236 | # Validate test. Expecting one event of the second TP. | |
237 | trace_match_only $EVENT_NAME2 1 "$TRACE_PATH/log4j2_disabled_event" | |
238 | ||
239 | # Validate test. Expecting one event of the second TP. | |
240 | trace_match_only $EVENT_NAME2 1 "$TRACE_PATH/log4j2_enabled_event" | |
241 | } | |
242 | ||
243 | function test_log4j2_multi_session_disable_wildcard() | |
244 | { | |
245 | diag "Test LOG4J2 with multiple session with disabled wildcard event" | |
246 | ||
247 | create_lttng_session_ok "log4j2_disabled_wildcard" "$TRACE_PATH/log4j2_disabled_wildcard" | |
248 | enable_log4j_lttng_event "log4j2_disabled_wildcard" '*' | |
249 | ||
250 | create_lttng_session_ok "log4j2_enabled_wildcard" "$TRACE_PATH/log4j2_enabled_wildcard" | |
251 | enable_log4j_lttng_event "log4j2_enabled_wildcard" '*' | |
252 | ||
253 | disable_log4j_lttng_event "log4j2_disabled_wildcard" '*' | |
254 | ||
255 | start_lttng_tracing_ok "log4j2_disabled_wildcard" | |
256 | start_lttng_tracing_ok "log4j2_enabled_wildcard" | |
257 | ||
258 | run_app | |
259 | ||
260 | stop_lttng_tracing_ok "log4j2_disabled_wildcard" | |
261 | stop_lttng_tracing_ok "log4j2_enabled_wildcard" | |
262 | destroy_lttng_session_ok "log4j2_disabled_wildcard" | |
263 | destroy_lttng_session_ok "log4j2_enabled_wildcard" | |
264 | ||
265 | # Validate test. Expecting NO event of the first TP. | |
266 | trace_match_only $EVENT_NAME_BASE 0 "$TRACE_PATH/log4j2_disabled_wildcard" | |
267 | ||
268 | # Validate test. Expecting all events of the first TP. | |
269 | trace_match_only $EVENT_NAME_BASE $NR_ITER "$TRACE_PATH/log4j2_enabled_wildcard" | |
270 | } | |
271 | ||
272 | function test_log4j2_multi_session_disable_wildcard_begin() | |
273 | { | |
274 | ev_name='*-event-1' | |
275 | diag "Test LOG4J2 with multiple session with disabled wildcard (at the beginning) event" | |
276 | ||
277 | create_lttng_session_ok "log4j2_disabled_wildcard" "$TRACE_PATH/log4j2_disabled_wildcard" | |
278 | enable_log4j_lttng_event "log4j2_disabled_wildcard" "$ev_name" | |
279 | ||
280 | create_lttng_session_ok "log4j2_enabled_wildcard" "$TRACE_PATH/log4j2_enabled_wildcard" | |
281 | enable_log4j_lttng_event "log4j2_enabled_wildcard" "$ev_name" | |
282 | ||
283 | disable_log4j_lttng_event "log4j2_disabled_wildcard" "$ev_name" | |
284 | ||
285 | start_lttng_tracing_ok "log4j2_disabled_wildcard" | |
286 | start_lttng_tracing_ok "log4j2_enabled_wildcard" | |
287 | ||
288 | run_app 0 1 | |
289 | ||
290 | stop_lttng_tracing_ok "log4j2_disabled_wildcard" | |
291 | stop_lttng_tracing_ok "log4j2_enabled_wildcard" | |
292 | destroy_lttng_session_ok "log4j2_disabled_wildcard" | |
293 | destroy_lttng_session_ok "log4j2_enabled_wildcard" | |
294 | ||
295 | # Validate test. Expecting NO event of the first TP. | |
296 | trace_match_only $EVENT_NAME1 0 "$TRACE_PATH/log4j2_disabled_wildcard" | |
297 | ||
298 | # Validate test. Expecting all events of the first TP. | |
299 | trace_match_only $EVENT_NAME1 $NR_ITER "$TRACE_PATH/log4j2_enabled_wildcard" | |
300 | } | |
301 | ||
302 | function test_log4j2_multi_session_disable_wildcard_middle() | |
303 | { | |
304 | ev_name='log*nt-1' | |
305 | diag "Test LOG4J2 with multiple session with disabled wildcard (at the middle) event" | |
306 | ||
307 | create_lttng_session_ok "log4j2_disabled_wildcard" "$TRACE_PATH/log4j2_disabled_wildcard" | |
308 | enable_log4j_lttng_event "log4j2_disabled_wildcard" "$ev_name" | |
309 | ||
310 | create_lttng_session_ok "log4j2_enabled_wildcard" "$TRACE_PATH/log4j2_enabled_wildcard" | |
311 | enable_log4j_lttng_event "log4j2_enabled_wildcard" "$ev_name" | |
312 | ||
313 | disable_log4j_lttng_event "log4j2_disabled_wildcard" "$ev_name" | |
314 | ||
315 | start_lttng_tracing_ok "log4j2_disabled_wildcard" | |
316 | start_lttng_tracing_ok "log4j2_enabled_wildcard" | |
317 | ||
318 | run_app 0 1 | |
319 | ||
320 | stop_lttng_tracing_ok "log4j2_disabled_wildcard" | |
321 | stop_lttng_tracing_ok "log4j2_enabled_wildcard" | |
322 | destroy_lttng_session_ok "log4j2_disabled_wildcard" | |
323 | destroy_lttng_session_ok "log4j2_enabled_wildcard" | |
324 | ||
325 | # Validate test. Expecting NO event of the first TP. | |
326 | trace_match_only $EVENT_NAME1 0 "$TRACE_PATH/log4j2_disabled_wildcard" | |
327 | ||
328 | # Validate test. Expecting all events of the first TP. | |
329 | trace_match_only $EVENT_NAME1 $NR_ITER "$TRACE_PATH/log4j2_enabled_wildcard" | |
330 | } | |
331 | ||
332 | function test_log4j2_multi_session_disable_wildcard_end() | |
333 | { | |
334 | ev_name='log4j2-ev*' | |
335 | diag "Test LOG4J2 with multiple session with disabled wildcard (at the end) event" | |
336 | ||
337 | create_lttng_session_ok "log4j2_disabled_wildcard" "$TRACE_PATH/log4j2_disabled_wildcard" | |
338 | enable_log4j_lttng_event "log4j2_disabled_wildcard" "$ev_name" | |
339 | ||
340 | create_lttng_session_ok "log4j2_enabled_wildcard" "$TRACE_PATH/log4j2_enabled_wildcard" | |
341 | enable_log4j_lttng_event "log4j2_enabled_wildcard" "$ev_name" | |
342 | ||
343 | disable_log4j_lttng_event "log4j2_disabled_wildcard" "$ev_name" | |
344 | ||
345 | start_lttng_tracing_ok "log4j2_disabled_wildcard" | |
346 | start_lttng_tracing_ok "log4j2_enabled_wildcard" | |
347 | ||
348 | run_app 0 1 | |
349 | ||
350 | stop_lttng_tracing_ok "log4j2_disabled_wildcard" | |
351 | stop_lttng_tracing_ok "log4j2_enabled_wildcard" | |
352 | destroy_lttng_session_ok "log4j2_disabled_wildcard" | |
353 | destroy_lttng_session_ok "log4j2_enabled_wildcard" | |
354 | ||
355 | # Validate test. Expecting NO event of the first TP. | |
356 | trace_match_only $EVENT_NAME_BASE 0 "$TRACE_PATH/log4j2_disabled_wildcard" | |
357 | ||
358 | # Validate test. Expecting all events of the first TP. | |
359 | trace_matches $EVENT_NAME_BASE $(( NR_ITER + 1 )) "$TRACE_PATH/log4j2_enabled_wildcard" | |
360 | ||
361 | trace_matches $EVENT_NAME2 1 "$TRACE_PATH/log4j2_enabled_wildcard" | |
362 | } | |
363 | ||
364 | function test_log4j2_disable_all() | |
365 | { | |
366 | diag "Test LOG4J2 with multiple session with disabled all event" | |
367 | ||
368 | create_lttng_session_ok "log4j2_disable_all" "$TRACE_PATH/log4j2_disable_all" | |
369 | enable_log4j_lttng_event "log4j2_disable_all" '*' | |
370 | enable_log4j_lttng_event "log4j2_disable_all" $EVENT_NAME1 | |
371 | enable_log4j_lttng_event "log4j2_disable_all" $EVENT_NAME2 | |
372 | ||
373 | disable_log4j_lttng_event "log4j2_disable_all" -a | |
374 | ||
375 | start_lttng_tracing_ok "log4j2_disable_all" | |
376 | ||
377 | run_app 0 1 | |
378 | ||
379 | stop_lttng_tracing_ok "log4j2_disable_all" | |
380 | destroy_lttng_session_ok "log4j2_disable_all" | |
381 | ||
382 | # Validate test. Expecting NO event of the first TP and second TP. | |
383 | trace_match_only $EVENT_NAME1 0 "$TRACE_PATH/log4j2_disable_all" | |
384 | trace_match_only $EVENT_NAME2 0 "$TRACE_PATH/log4j2_disable_all" | |
385 | } | |
386 | ||
387 | function test_log4j2_multi_session() | |
388 | { | |
389 | diag "Test LOG4J2 with multiple session" | |
390 | ||
391 | create_lttng_session_ok "log4j2_multi_session_1" "$TRACE_PATH/log4j2_multi_session_1" | |
392 | enable_log4j_lttng_event "log4j2_multi_session_1" $EVENT_NAME1 | |
393 | start_lttng_tracing_ok "log4j2_multi_session_1" | |
394 | ||
395 | create_lttng_session_ok "log4j2_multi_session_2" "$TRACE_PATH/log4j2_multi_session_2" | |
396 | enable_log4j_lttng_event "log4j2_multi_session_2" $EVENT_NAME2 | |
397 | start_lttng_tracing_ok "log4j2_multi_session_2" | |
398 | ||
399 | # Run 5 times with a 1ms delay and fire second TP. | |
400 | run_app 0 1 | |
401 | ||
402 | stop_lttng_tracing_ok "log4j2_multi_session_1" | |
403 | stop_lttng_tracing_ok "log4j2_multi_session_2" | |
404 | destroy_lttng_session_ok "log4j2_multi_session_1" | |
405 | destroy_lttng_session_ok "log4j2_multi_session_2" | |
406 | ||
407 | # Validate test. Expecting all events of first TP | |
408 | trace_match_only $EVENT_NAME1 $NR_ITER "$TRACE_PATH/log4j2_multi_session_1" | |
409 | ||
410 | # Validate test. Expecting one event of the second TP. | |
411 | trace_match_only $EVENT_NAME2 1 "$TRACE_PATH/log4j2_multi_session_2" | |
412 | } | |
413 | ||
414 | function test_log4j2_destroy_session() | |
415 | { | |
416 | diag "Test LOG4J2 two session with destroy" | |
417 | ||
418 | create_lttng_session_ok "log4j2_destroy_session" "$TRACE_PATH/first-sess" | |
419 | enable_log4j_lttng_event "log4j2_destroy_session" $EVENT_NAME1 | |
420 | start_lttng_tracing_ok "log4j2_destroy_session" | |
421 | ||
422 | # Run 5 times with a 1ms delay | |
423 | run_app_background 0 1 | |
424 | # Wait for the applications started in background | |
425 | wait | |
426 | ||
427 | stop_lttng_tracing_ok "log4j2_destroy_session" | |
428 | destroy_lttng_session_ok "log4j2_destroy_session" | |
429 | ||
430 | # Validate test. Expecting at least one event num 1 | |
431 | validate_trace $EVENT_NAME1 "$TRACE_PATH/first-sess" | |
432 | ||
433 | create_lttng_session_ok "log4j2_destroy_session" "$TRACE_PATH/second-sess" | |
434 | enable_log4j_lttng_event "log4j2_destroy_session" $EVENT_NAME2 | |
435 | start_lttng_tracing_ok "log4j2_destroy_session" | |
436 | ||
437 | # Run 5 times with a 1ms delay | |
438 | run_app_background 0 1 | |
439 | # Wait for the applications started in background | |
440 | wait | |
441 | ||
442 | stop_lttng_tracing_ok "log4j2_destroy_session" | |
443 | destroy_lttng_session_ok "log4j2_destroy_session" | |
444 | ||
445 | # Validate test. Expecting only one event num 2 | |
446 | trace_match_only $EVENT_NAME2 1 "$TRACE_PATH/second-sess" | |
447 | } | |
448 | ||
449 | function test_log4j2_filtering() | |
450 | { | |
451 | diag "Test LOG4J2 filtering" | |
452 | ||
453 | create_lttng_session_ok "log4j2_filtering" "$TRACE_PATH/log4j2_filtering" | |
454 | # Enable all event with a filter. | |
455 | enable_log4j_lttng_event_filter "log4j2_filtering" '*' 'msg == "LOG4J2 INFO second logger fired"' | |
456 | start_lttng_tracing_ok "log4j2_filtering" | |
457 | ||
458 | # Run 5 times with a 1ms delay and fire second TP. | |
459 | run_app 0 1 | |
460 | ||
461 | stop_lttng_tracing_ok "log4j2_filtering" | |
462 | destroy_lttng_session_ok "log4j2_filtering" | |
463 | ||
464 | # Validate test. Expecting one event of the second TP only. | |
465 | trace_match_only $EVENT_NAME2 1 "$TRACE_PATH/log4j2_filtering" | |
466 | ||
467 | create_lttng_session_ok "log4j2_filtering" "$TRACE_PATH/log4j2_filtering" | |
468 | # Enable first Logger but filter msg payload for the INFO one while | |
469 | # triggering the debug and second TP. | |
470 | enable_log4j_lttng_event_filter "log4j2_filtering" $EVENT_NAME1 'msg == "LOG4J2 INFO tp fired!"' | |
471 | start_lttng_tracing_ok "log4j2_filtering" | |
472 | ||
473 | # Run 5 times with a 1ms delay, fire debug and second TP. | |
474 | run_app 1 1 | |
475 | ||
476 | stop_lttng_tracing_ok "log4j2_filtering" | |
477 | destroy_lttng_session_ok "log4j2_filtering" | |
478 | ||
479 | # Validate test. Expecting NR_ITER event of the main INFO tp. | |
480 | trace_match_only $EVENT_NAME1 $NR_ITER "$TRACE_PATH/log4j2_filtering" | |
481 | } | |
482 | ||
483 | function test_log4j2_disable() | |
484 | { | |
485 | diag "Test LOG4J2 disable event" | |
486 | ||
487 | create_lttng_session_ok "log4j2_disable" "$TRACE_PATH/log4j2_disable" | |
488 | # Enable all event with a filter. | |
489 | enable_log4j_lttng_event "log4j2_disable" $EVENT_NAME1 | |
490 | enable_log4j_lttng_event "log4j2_disable" $EVENT_NAME2 | |
491 | disable_log4j_lttng_event "log4j2_disable" $EVENT_NAME1 | |
492 | start_lttng_tracing_ok "log4j2_disable" | |
493 | ||
494 | # Run 5 times with a 1ms delay and fire second TP. | |
495 | run_app 0 1 | |
496 | ||
497 | stop_lttng_tracing_ok "log4j2_disable" | |
498 | destroy_lttng_session_ok "log4j2_disable" | |
499 | ||
500 | # Validate test. Expecting one event of the second TP only. | |
501 | trace_match_only $EVENT_NAME2 1 "$TRACE_PATH/log4j2_disable" | |
502 | } | |
503 | ||
504 | function test_log4j2_disable_enable() | |
505 | { | |
506 | diag "Test LOG4J2 disable event followed by an enable" | |
507 | ||
508 | create_lttng_session_ok "log4j2_disable_enable" "$TRACE_PATH/log4j2_disable_enable" | |
509 | # Enable all event with a filter. | |
510 | enable_log4j_lttng_event "log4j2_disable_enable" $EVENT_NAME1 | |
511 | disable_log4j_lttng_event "log4j2_disable_enable" $EVENT_NAME1 | |
512 | enable_log4j_lttng_event "log4j2_disable_enable" $EVENT_NAME1 | |
513 | start_lttng_tracing_ok "log4j2_disable_enable" | |
514 | ||
515 | # Run 5 times with a 1ms delay and fire second TP. | |
516 | run_app 0 1 | |
517 | ||
518 | stop_lttng_tracing_ok "log4j2_disable_enable" | |
519 | destroy_lttng_session_ok "log4j2_disable_enable" | |
520 | ||
521 | # Validate test. Expecting NR_ITER event of the main INFO tp. | |
522 | trace_match_only $EVENT_NAME1 $NR_ITER "$TRACE_PATH/log4j2_disable_enable" | |
523 | } | |
524 | ||
525 | function test_log4j2_filter_loglevel() | |
526 | { | |
527 | local bogus_event_name="not_a_real_event" | |
528 | local filter="int_loglevel > 700 || int_loglevel < 700" | |
529 | local all_events="." | |
530 | ||
531 | diag "Test LOG4J2 a filter with a loglevel" | |
532 | ||
533 | create_lttng_session_ok "log4j2_filter_info" "$TRACE_PATH/log4j2_filter_info" | |
534 | # Enable an event with a filter and the loglevel-only option. | |
535 | enable_log4j_lttng_event_filter_loglevel_only "log4j2_filter_info" $bogus_event_name "$filter" LOG4J_INFO | |
536 | disable_log4j_lttng_event "log4j2_filter_info" $bogus_event_name | |
537 | enable_log4j_lttng_event_filter_loglevel_only "log4j2_filter_info" $bogus_event_name "$filter" LOG4J_INFO | |
538 | start_lttng_tracing_ok "log4j2_filter_info" | |
539 | ||
540 | # Run 5 times with a 1ms delay and fire second TP. | |
541 | run_app 0 1 | |
542 | ||
543 | stop_lttng_tracing_ok "log4j2_filter_info" | |
544 | destroy_lttng_session_ok "log4j2_filter_info" | |
545 | ||
546 | # Validate test. Expecting no events. | |
547 | trace_match_only $all_events 0 "$TRACE_PATH/log4j2_filter_info" | |
548 | } | |
549 | ||
550 | plan_tests $NUM_TESTS | |
551 | ||
552 | print_test_banner "$TEST_DESC" | |
553 | ||
554 | bail_out_if_no_babeltrace | |
555 | ||
556 | test -f "$TESTAPP_PATH.class" | |
557 | ok $? "Testapp '$TESTAPP_NAME' present" | |
558 | ||
559 | start_lttng_sessiond | |
560 | ||
561 | tests=( | |
562 | test_log4j2_multi_session_disable_wildcard | |
563 | test_log4j2_multi_session_disable_wildcard_begin | |
564 | test_log4j2_multi_session_disable_wildcard_middle | |
565 | test_log4j2_multi_session_disable_wildcard_end | |
566 | test_log4j2_multi_session_disable | |
567 | test_log4j2_disable | |
568 | test_log4j2_disable_enable | |
569 | test_log4j2_disable_all | |
570 | test_log4j2_filtering | |
571 | test_log4j2_multi_session_loglevel | |
572 | test_log4j2_destroy_session | |
573 | test_log4j2_loglevel | |
574 | test_log4j2_loglevel_multiple | |
575 | test_log4j2_before_start | |
576 | test_log4j2_after_start | |
577 | test_log4j2_multi_session | |
578 | test_log4j2_filter_loglevel | |
579 | ) | |
580 | ||
581 | for fct_test in "${tests[@]}"; | |
582 | do | |
8d5a3312 | 583 | TRACE_PATH=$(mktemp -d -t tmp.test_java_log4j2_trace_path.XXXXXX) |
0fd2fd15 MJ |
584 | |
585 | ${fct_test} | |
586 | ||
587 | rm -rf "$TRACE_PATH" | |
588 | done | |
589 | ||
590 | stop_lttng_sessiond |