X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=src%2Forg%2Flttng%2Fust%2Fagent%2Fintegration%2Fjul%2FJulEnabledEventsTest.java;h=9493379340b483a2bbe277c32f88edeb08d0dbc8;hb=c5524c71f2a2f7b553f5a6ce0cd7abb2cafeab7a;hp=53fdafe78f8a9b878069a128a2ed20685334239e;hpb=9368bd5ec332435ed97717647e9cd3f2df051f4d;p=lttng-ust-java-tests.git diff --git a/src/org/lttng/ust/agent/integration/jul/JulEnabledEventsTest.java b/src/org/lttng/ust/agent/integration/jul/JulEnabledEventsTest.java index 53fdafe..9493379 100644 --- a/src/org/lttng/ust/agent/integration/jul/JulEnabledEventsTest.java +++ b/src/org/lttng/ust/agent/integration/jul/JulEnabledEventsTest.java @@ -1,12 +1,10 @@ package org.lttng.ust.agent.integration.jul; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; import static org.junit.Assume.assumeTrue; import java.io.IOException; import java.util.List; +import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.Logger; @@ -14,33 +12,22 @@ import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; -import org.junit.Test; +import org.lttng.ust.agent.integration.common.EnabledEventsTest; import org.lttng.ust.agent.jul.LttngLogHandler; import org.lttng.ust.agent.utils.LttngSessionControl; import org.lttng.ust.agent.utils.LttngSessionControl.Domain; -public class JulEnabledEventsTest { +public class JulEnabledEventsTest extends EnabledEventsTest { private static final Domain DOMAIN = Domain.JUL; - private static final String SESSION_NAME = JulEnabledEventsTest.class.getSimpleName(); - - private static final String EVENT_NAME_A = "EventA"; - private static final String EVENT_NAME_B = "EventAB"; - private static final String EVENT_NAME_C = "EventABC"; - private static final String EVENT_NAME_D = "EventABCD"; - private Logger loggerA; private Logger loggerB; private Logger loggerC; private Logger loggerD; - private LttngLogHandler handlerA; - private LttngLogHandler handlerB; - private LttngLogHandler handlerC; - @BeforeClass - public static void classSetup() { + public static void julClassSetup() { /* Skip tests if we can't find the JNI library or lttng-tools */ try { LttngLogHandler testHandler = new LttngLogHandler(); @@ -59,12 +46,12 @@ public class JulEnabledEventsTest { } @AfterClass - public static void classCleanup() { + public static void julClassCleanup() { LttngSessionControl.deleteAllTracee(); } @Before - public void setup() throws SecurityException, IOException { + public void julSetup() throws SecurityException, IOException { // TODO Wipe all existing LTTng sessions? loggerA = Logger.getLogger(EVENT_NAME_A); @@ -81,255 +68,37 @@ public class JulEnabledEventsTest { handlerB = new LttngLogHandler(); handlerC = new LttngLogHandler(); - loggerA.addHandler(handlerA); - loggerB.addHandler(handlerB); - loggerC.addHandler(handlerC); + loggerA.addHandler((Handler) handlerA); + loggerB.addHandler((Handler) handlerB); + loggerC.addHandler((Handler) handlerC); } @After - public void teardown() { - /* Just in case the test failed */ - LttngSessionControl.tryDestroySession(SESSION_NAME); - - loggerA.removeHandler(handlerA); - loggerB.removeHandler(handlerB); - loggerC.removeHandler(handlerC); - - handlerA.close(); - handlerB.close(); - handlerC.close(); + public void julTeardown() { + loggerA.removeHandler((Handler) handlerA); + loggerB.removeHandler((Handler) handlerB); + loggerC.removeHandler((Handler) handlerC); loggerA = null; loggerB = null; loggerC = null; loggerD = null; - handlerA = null; - handlerB = null; - handlerC = null; - } - - /** - * Test sending events on the Java side, but no events enabled in the - * tracing session. There should be nothing in the resulting trace, and - * handlers should not have logged anything. - */ - @Test - public void testNoEvents() { - assertTrue(LttngSessionControl.setupSession(SESSION_NAME, DOMAIN)); - - send10Events(loggerA); - send10Events(loggerB); - send10Events(loggerC); - send10Events(loggerD); - - assertTrue(LttngSessionControl.stopSession(SESSION_NAME)); - - List output = LttngSessionControl.viewSession(SESSION_NAME); - assertNotNull(output); - assertTrue(output.isEmpty()); - - assertTrue(LttngSessionControl.destroySession(SESSION_NAME)); - - assertEquals(0, handlerA.getEventCount()); - assertEquals(0, handlerB.getEventCount()); - assertEquals(0, handlerC.getEventCount()); - } - - /** - * Test sending events on the Java side, and all events enabled in the - * tracing session. All handlers should have sent their events. - */ - @Test - public void testAllEvents() { - assertTrue(LttngSessionControl.setupSessionAllEvents(SESSION_NAME, DOMAIN)); - - send10Events(loggerA); - send10Events(loggerB); - send10Events(loggerC); - send10Events(loggerD); - - assertTrue(LttngSessionControl.stopSession(SESSION_NAME)); - - List output = LttngSessionControl.viewSession(SESSION_NAME); - assertNotNull(output); - assertEquals(30, output.size()); // loggerD has no handler attached - - assertTrue(LttngSessionControl.destroySession(SESSION_NAME)); - - assertEquals(10, handlerA.getEventCount()); - assertEquals(10, handlerB.getEventCount()); - assertEquals(10, handlerC.getEventCount()); } - /** - * Test sending events on the Java side, with only some of them enabled in - * the tracing session. Only the subset that is enabled should be received. - */ - @Test - public void testSomeEvents() { - assertTrue(LttngSessionControl.setupSession(SESSION_NAME, DOMAIN, - EVENT_NAME_A, EVENT_NAME_C, EVENT_NAME_D)); - - send10Events(loggerA); - send10Events(loggerB); - send10Events(loggerC); - send10Events(loggerD); - - assertTrue(LttngSessionControl.stopSession(SESSION_NAME)); - - List output = LttngSessionControl.viewSession(SESSION_NAME); - assertNotNull(output); - assertEquals(20, output.size()); - - assertTrue(LttngSessionControl.destroySession(SESSION_NAME)); - - assertEquals(10, handlerA.getEventCount()); - assertEquals(0, handlerB.getEventCount()); - assertEquals(10, handlerC.getEventCount()); + @Override + protected Domain getDomain() { + return DOMAIN; } - /** - * Test with all events enabled (-a), plus some other events added manually. - * Events should still be retained, but there should be no duplicates. - */ - @Test - public void testAllEventsAndSome() { - assertTrue(LttngSessionControl.setupSessionAllEvents(SESSION_NAME, DOMAIN)); - assertTrue(LttngSessionControl.enableEvents(SESSION_NAME, DOMAIN, - EVENT_NAME_A, EVENT_NAME_B)); - + @Override + protected void sendEventsToLoggers() { send10Events(loggerA); send10Events(loggerB); send10Events(loggerC); send10Events(loggerD); - - assertTrue(LttngSessionControl.stopSession(SESSION_NAME)); - - List output = LttngSessionControl.viewSession(SESSION_NAME); - assertNotNull(output); - assertEquals(30, output.size()); - - assertTrue(LttngSessionControl.destroySession(SESSION_NAME)); - - assertEquals(10, handlerA.getEventCount()); - assertEquals(10, handlerB.getEventCount()); - assertEquals(10, handlerC.getEventCount()); } - /** - * Same as {@link #testSomeEvents()}, but some events were enabled first, - * then disabled. Makes sure the enabled-event refcounting works properly. - */ - @Test - public void testSomeEventsAfterDisabling() { - assertTrue(LttngSessionControl.setupSession(SESSION_NAME, DOMAIN, - EVENT_NAME_A, EVENT_NAME_C, EVENT_NAME_D)); - - assertTrue(LttngSessionControl.disableEvents(SESSION_NAME, DOMAIN, - EVENT_NAME_C)); - - send10Events(loggerA); - send10Events(loggerB); - send10Events(loggerC); - send10Events(loggerD); - - assertTrue(LttngSessionControl.stopSession(SESSION_NAME)); - - List output = LttngSessionControl.viewSession(SESSION_NAME); - assertNotNull(output); - assertEquals(10, output.size()); - - assertTrue(LttngSessionControl.destroySession(SESSION_NAME)); - - assertEquals(10, handlerA.getEventCount()); - assertEquals(0, handlerB.getEventCount()); - assertEquals(0, handlerC.getEventCount()); - } - - /** - * Test enabling an event prefix, which means an event name ending with a *, - * to match all events starting with this name. - */ - @Test - public void testEventPrefix() { - assertTrue(LttngSessionControl.setupSession(SESSION_NAME, DOMAIN, - "EventAB*")); // should match event/loggers B and C, but not A. - - send10Events(loggerA); - send10Events(loggerB); - send10Events(loggerC); - send10Events(loggerD); - - assertTrue(LttngSessionControl.stopSession(SESSION_NAME)); - - List output = LttngSessionControl.viewSession(SESSION_NAME); - assertNotNull(output); - assertEquals(20, output.size()); - - assertTrue(LttngSessionControl.destroySession(SESSION_NAME)); - - assertEquals(0, handlerA.getEventCount()); - assertEquals(10, handlerB.getEventCount()); - assertEquals(10, handlerC.getEventCount()); - } - - /** - * Same as {@link #testEventPrefix()}, but with multiple prefixes that - * overlap. There should not be any duplicate events in the trace or in the - * handlers. - */ - @Test - public void testEventPrefixOverlapping() { - assertTrue(LttngSessionControl.setupSession(SESSION_NAME, DOMAIN, - "EventAB*", "EventABC*")); // should still match B and C - - send10Events(loggerA); - send10Events(loggerB); - send10Events(loggerC); - send10Events(loggerD); - - assertTrue(LttngSessionControl.stopSession(SESSION_NAME)); - - List output = LttngSessionControl.viewSession(SESSION_NAME); - assertNotNull(output); - assertEquals(20, output.size()); - - assertTrue(LttngSessionControl.destroySession(SESSION_NAME)); - - assertEquals(0, handlerA.getEventCount()); - assertEquals(10, handlerB.getEventCount()); - assertEquals(10, handlerC.getEventCount()); - } - - /** - * Test with all events enabled (-a), plus an event prefix. Once again, - * there should be no duplicates. - */ - @Test - public void testAllEventsAndPrefix() { - assertTrue(LttngSessionControl.setupSessionAllEvents(SESSION_NAME, DOMAIN)); - assertTrue(LttngSessionControl.enableEvents(SESSION_NAME, DOMAIN, - "EventAB*")); // should match B and C - - send10Events(loggerA); - send10Events(loggerB); - send10Events(loggerC); - send10Events(loggerD); - - assertTrue(LttngSessionControl.stopSession(SESSION_NAME)); - - List output = LttngSessionControl.viewSession(SESSION_NAME); - assertNotNull(output); - assertEquals(30, output.size()); - - assertTrue(LttngSessionControl.destroySession(SESSION_NAME)); - - assertEquals(10, handlerA.getEventCount()); - assertEquals(10, handlerB.getEventCount()); - assertEquals(10, handlerC.getEventCount()); - } - - private static void send10Events(Logger logger) { + static void send10Events(Logger logger) { String a = new String("a"); Object[] params = { a, new String("b"), new Object() }; @@ -345,5 +114,4 @@ public class JulEnabledEventsTest { logger.log(Level.INFO, "A message with one parameter", a); logger.log(Level.INFO, "A message with parameters", params); } - }