Add log4j and legacy-API tests
[lttng-ust-java-tests.git] / src / org / lttng / ust / agent / integration / jul / JulEnabledEventsTest.java
1 package org.lttng.ust.agent.integration.jul;
2
3 import static org.junit.Assume.assumeTrue;
4
5 import java.io.IOException;
6 import java.util.List;
7 import java.util.logging.Handler;
8 import java.util.logging.Level;
9 import java.util.logging.Logger;
10
11 import org.junit.After;
12 import org.junit.AfterClass;
13 import org.junit.Before;
14 import org.junit.BeforeClass;
15 import org.lttng.ust.agent.integration.common.EnabledEventsTest;
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
20 public class JulEnabledEventsTest extends EnabledEventsTest {
21
22 private static final Domain DOMAIN = Domain.JUL;
23
24 private Logger loggerA;
25 private Logger loggerB;
26 private Logger loggerC;
27 private Logger loggerD;
28
29 @BeforeClass
30 public static void julClassSetup() {
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);
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);
44 assumeTrue(ret1 && ret2 && ret3);
45 assumeTrue(contents.isEmpty());
46 }
47
48 @AfterClass
49 public static void julClassCleanup() {
50 LttngSessionControl.deleteAllTracee();
51 }
52
53 @Before
54 public void julSetup() throws SecurityException, IOException {
55 // TODO Wipe all existing LTTng sessions?
56
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
71 loggerA.addHandler((Handler) handlerA);
72 loggerB.addHandler((Handler) handlerB);
73 loggerC.addHandler((Handler) handlerC);
74 }
75
76 @After
77 public void julTeardown() {
78 loggerA.removeHandler((Handler) handlerA);
79 loggerB.removeHandler((Handler) handlerB);
80 loggerC.removeHandler((Handler) handlerC);
81
82 loggerA = null;
83 loggerB = null;
84 loggerC = null;
85 loggerD = null;
86 }
87
88 @Override
89 protected Domain getDomain() {
90 return DOMAIN;
91 }
92
93 @Override
94 protected void sendEventsToLoggers() {
95 send10Events(loggerA);
96 send10Events(loggerB);
97 send10Events(loggerC);
98 send10Events(loggerD);
99 }
100
101 static void send10Events(Logger logger) {
102 String a = new String("a");
103 Object[] params = { a, new String("b"), new Object() };
104
105 // Levels are FINE, FINER, FINEST, INFO, SEVERE, WARNING
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 }
117 }
This page took 0.03177 seconds and 4 git commands to generate.