Commit | Line | Data |
---|---|---|
da8308fe AM |
1 | package org.lttng.ust.agent.integration.jul; |
2 | ||
da8308fe AM |
3 | import static org.junit.Assume.assumeTrue; |
4 | ||
5 | import java.io.IOException; | |
6 | import java.util.List; | |
c5524c71 | 7 | import java.util.logging.Handler; |
da8308fe AM |
8 | import java.util.logging.Level; |
9 | import java.util.logging.Logger; | |
10 | ||
11 | import org.junit.After; | |
9368bd5e | 12 | import org.junit.AfterClass; |
da8308fe AM |
13 | import org.junit.Before; |
14 | import org.junit.BeforeClass; | |
c5524c71 | 15 | import org.lttng.ust.agent.integration.common.EnabledEventsTest; |
da8308fe AM |
16 | import org.lttng.ust.agent.jul.LttngLogHandler; |
17 | import org.lttng.ust.agent.utils.LttngSessionControl; | |
18 | import org.lttng.ust.agent.utils.LttngSessionControl.Domain; | |
19 | ||
c5524c71 | 20 | public class JulEnabledEventsTest extends EnabledEventsTest { |
da8308fe AM |
21 | |
22 | private static final Domain DOMAIN = Domain.JUL; | |
23 | ||
da8308fe AM |
24 | private Logger loggerA; |
25 | private Logger loggerB; | |
26 | private Logger loggerC; | |
27 | private Logger loggerD; | |
28 | ||
da8308fe | 29 | @BeforeClass |
c5524c71 | 30 | public static void julClassSetup() { |
da8308fe AM |
31 | /* Skip tests if we can't find the JNI library or lttng-tools */ |
32 | try { | |
33 | LttngLogHandler testHandler = new LttngLogHandler(); | |
34 | testHandler.close(); | |
35 | } catch (SecurityException | IOException e) { | |
36 | assumeTrue(false); | |
37 | } | |
38 | ||
39 | boolean ret1 = LttngSessionControl.setupSession(null, DOMAIN); | |
9368bd5e AM |
40 | boolean ret2 = LttngSessionControl.stopSession(null); |
41 | /* "lttng view" also tests that Babeltrace is installed and working */ | |
42 | List<String> contents = LttngSessionControl.viewSession(null); | |
43 | boolean ret3 = LttngSessionControl.destroySession(null); | |
da8308fe | 44 | assumeTrue(ret1 && ret2 && ret3); |
9368bd5e AM |
45 | assumeTrue(contents.isEmpty()); |
46 | } | |
47 | ||
48 | @AfterClass | |
c5524c71 | 49 | public static void julClassCleanup() { |
9368bd5e | 50 | LttngSessionControl.deleteAllTracee(); |
da8308fe AM |
51 | } |
52 | ||
53 | @Before | |
c5524c71 | 54 | public void julSetup() throws SecurityException, IOException { |
9368bd5e AM |
55 | // TODO Wipe all existing LTTng sessions? |
56 | ||
da8308fe AM |
57 | loggerA = Logger.getLogger(EVENT_NAME_A); |
58 | loggerB = Logger.getLogger(EVENT_NAME_B); | |
59 | loggerC = Logger.getLogger(EVENT_NAME_C); | |
60 | loggerD = Logger.getLogger(EVENT_NAME_D); | |
61 | ||
62 | loggerA.setLevel(Level.ALL); | |
63 | loggerB.setLevel(Level.ALL); | |
64 | loggerC.setLevel(Level.ALL); | |
65 | loggerD.setLevel(Level.ALL); | |
66 | ||
67 | handlerA = new LttngLogHandler(); | |
68 | handlerB = new LttngLogHandler(); | |
69 | handlerC = new LttngLogHandler(); | |
70 | ||
c5524c71 AM |
71 | loggerA.addHandler((Handler) handlerA); |
72 | loggerB.addHandler((Handler) handlerB); | |
73 | loggerC.addHandler((Handler) handlerC); | |
da8308fe AM |
74 | } |
75 | ||
76 | @After | |
c5524c71 AM |
77 | public void julTeardown() { |
78 | loggerA.removeHandler((Handler) handlerA); | |
79 | loggerB.removeHandler((Handler) handlerB); | |
80 | loggerC.removeHandler((Handler) handlerC); | |
da8308fe AM |
81 | |
82 | loggerA = null; | |
83 | loggerB = null; | |
84 | loggerC = null; | |
85 | loggerD = null; | |
da8308fe AM |
86 | } |
87 | ||
c5524c71 AM |
88 | @Override |
89 | protected Domain getDomain() { | |
90 | return DOMAIN; | |
9368bd5e AM |
91 | } |
92 | ||
c5524c71 AM |
93 | @Override |
94 | protected void sendEventsToLoggers() { | |
9368bd5e AM |
95 | send10Events(loggerA); |
96 | send10Events(loggerB); | |
97 | send10Events(loggerC); | |
98 | send10Events(loggerD); | |
9368bd5e AM |
99 | } |
100 | ||
c5524c71 | 101 | static void send10Events(Logger logger) { |
da8308fe | 102 | String a = new String("a"); |
9368bd5e | 103 | Object[] params = { a, new String("b"), new Object() }; |
da8308fe | 104 | |
9368bd5e | 105 | // Levels are FINE, FINER, FINEST, INFO, SEVERE, WARNING |
da8308fe AM |
106 | logger.fine("A fine level message"); |
107 | logger.finer("A finer level message"); | |
108 | logger.finest("A finest level message"); | |
109 | logger.info("A info level message"); | |
110 | logger.severe("A severe level message"); | |
111 | logger.warning("A warning level message"); | |
112 | logger.warning("Another warning level message"); | |
113 | logger.log(Level.WARNING, "A warning message using Logger.log()"); | |
114 | logger.log(Level.INFO, "A message with one parameter", a); | |
115 | logger.log(Level.INFO, "A message with parameters", params); | |
116 | } | |
da8308fe | 117 | } |