X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=lttng-ust-java-tests%2Fsrc%2Ftest%2Fjava%2Forg%2Flttng%2Fust%2Fagent%2Fintegration%2Fclient%2FTcpClientIT.java;h=2794dfa58411f96afcc98496756b1c9d6f82230e;hb=1df8e5d7716e0f095b434e2190f4054edb837f42;hp=b9f0d0b7cde20c0a35d829dec16ca74e361d0f6e;hpb=f37120c3b2ab31a67fab2da79f5ad6ca0145f5aa;p=lttng-ust-java-tests.git diff --git a/lttng-ust-java-tests/src/test/java/org/lttng/ust/agent/integration/client/TcpClientIT.java b/lttng-ust-java-tests/src/test/java/org/lttng/ust/agent/integration/client/TcpClientIT.java index b9f0d0b..2794dfa 100644 --- a/lttng-ust-java-tests/src/test/java/org/lttng/ust/agent/integration/client/TcpClientIT.java +++ b/lttng-ust-java-tests/src/test/java/org/lttng/ust/agent/integration/client/TcpClientIT.java @@ -31,16 +31,18 @@ import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; -import org.junit.Ignore; import org.junit.Test; +import org.junit.runner.RunWith; import org.lttng.tools.ILttngSession; import org.lttng.tools.LttngToolsHelper; import org.lttng.ust.agent.ILttngAgent; import org.lttng.ust.agent.client.LttngTcpSessiondClient; import org.lttng.ust.agent.session.EventRule; -import org.lttng.ust.agent.session.LogLevelFilter; -import org.lttng.ust.agent.session.LogLevelFilter.LogLevelType; +import org.lttng.ust.agent.session.LogLevelSelector; +import org.lttng.ust.agent.session.LogLevelSelector.LogLevelType; +import org.lttng.ust.agent.utils.EventRuleFactory; import org.lttng.ust.agent.utils.ILogLevelStrings; +import org.lttng.ust.agent.utils.TestPrintRunner; /** * Tests for the TCP client only, without using an agent. @@ -51,18 +53,16 @@ import org.lttng.ust.agent.utils.ILogLevelStrings; * * @author Alexandre Montplaisir */ +@RunWith(TestPrintRunner.class) public class TcpClientIT { // ------------------------------------------------------------------------ // Attributes // ------------------------------------------------------------------------ - private static final LogLevelFilter LOG_LEVEL_UNSPECIFIED = new LogLevelFilter(Integer.MIN_VALUE, 0); - private static final String EVENT_NAME_A = "eventA"; private static final String EVENT_NAME_B = "eventB"; private static final String EVENT_NAME_C = "eventC"; - private static final String EVENT_NAME_ALL = "*"; /* Test configuration */ private static final int DOMAIN_VALUE = ILttngAgent.Domain.JUL.value(); @@ -158,7 +158,7 @@ public class TcpClientIT { session.enableEvent(EVENT_NAME_A, null, false, null); List expectedCommands = Collections.singletonList( - new EventRule(EVENT_NAME_A, LOG_LEVEL_UNSPECIFIED, null)); + EventRuleFactory.createRule(EVENT_NAME_A)); List actualCommands = clientListener.getEnabledEventCommands(); assertEquals(expectedCommands, actualCommands); @@ -172,7 +172,7 @@ public class TcpClientIT { session.enableAllEvents(); List expectedCommands = Collections.singletonList( - new EventRule(EVENT_NAME_ALL, LOG_LEVEL_UNSPECIFIED, null)); + EventRuleFactory.createRuleAllEvents()); List actualCommands = clientListener.getEnabledEventCommands(); assertEquals(expectedCommands, actualCommands); @@ -187,7 +187,7 @@ public class TcpClientIT { session.disableEvents(EVENT_NAME_A); List expectedEnableCommands = Collections.singletonList( - new EventRule(EVENT_NAME_A, LOG_LEVEL_UNSPECIFIED, null)); + EventRuleFactory.createRule(EVENT_NAME_A)); List expectedDisableCommands = Collections.singletonList(EVENT_NAME_A); assertEquals(expectedEnableCommands, clientListener.getEnabledEventCommands()); @@ -205,9 +205,9 @@ public class TcpClientIT { session.disableAllEvents(); List expectedEnableCommands = Arrays.asList( - new EventRule(EVENT_NAME_A, LOG_LEVEL_UNSPECIFIED, null), - new EventRule(EVENT_NAME_B, LOG_LEVEL_UNSPECIFIED, null), - new EventRule(EVENT_NAME_C, LOG_LEVEL_UNSPECIFIED, null)); + EventRuleFactory.createRule(EVENT_NAME_A), + EventRuleFactory.createRule(EVENT_NAME_B), + EventRuleFactory.createRule(EVENT_NAME_C)); /* * A "disable-event -a" will send one command for each enabled event. * The order may be different though. @@ -227,10 +227,8 @@ public class TcpClientIT { session.enableAllEvents(); session.disableAllEvents(); - List expectedEnableCommands = Arrays.asList( - new EventRule(EVENT_NAME_ALL, LOG_LEVEL_UNSPECIFIED, null)); - List expectedDisableCommands = Arrays.asList( - EVENT_NAME_ALL); + List expectedEnableCommands = Arrays.asList(EventRuleFactory.createRuleAllEvents()); + List expectedDisableCommands = Arrays.asList(EventRuleFactory.EVENT_NAME_ALL); assertEquals(expectedEnableCommands, clientListener.getEnabledEventCommands()); assertTrue(containSameElements(expectedDisableCommands, clientListener.getDisabledEventCommands())); @@ -241,12 +239,12 @@ public class TcpClientIT { */ @Test public void testEnableEventLogLevelRange() { - LogLevelFilter llf = new LogLevelFilter(getLogLevelStrings().warningInt(), LogLevelType.LTTNG_EVENT_LOGLEVEL_RANGE); + LogLevelSelector lls = new LogLevelSelector(getLogLevelStrings().warningInt(), LogLevelType.LTTNG_EVENT_LOGLEVEL_RANGE); session.enableEvent(EVENT_NAME_A, getLogLevelStrings().warningName(), false, null); List expectedCommands = Collections.singletonList( - new EventRule(EVENT_NAME_A, llf, null)); + EventRuleFactory.createRule(EVENT_NAME_A, lls)); List actualCommands = clientListener.getEnabledEventCommands(); assertEquals(expectedCommands, actualCommands); @@ -257,12 +255,12 @@ public class TcpClientIT { */ @Test public void testEnableEventLogLevelSingle() { - LogLevelFilter llf = new LogLevelFilter(getLogLevelStrings().warningInt(), LogLevelType.LTTNG_EVENT_LOGLEVEL_SINGLE); + LogLevelSelector lls = new LogLevelSelector(getLogLevelStrings().warningInt(), LogLevelType.LTTNG_EVENT_LOGLEVEL_SINGLE); session.enableEvent(EVENT_NAME_A, getLogLevelStrings().warningName(), true, null); List expectedCommands = Collections.singletonList( - new EventRule(EVENT_NAME_A, llf, null)); + EventRuleFactory.createRule(EVENT_NAME_A, lls)); List actualCommands = clientListener.getEnabledEventCommands(); assertEquals(expectedCommands, actualCommands); @@ -271,18 +269,17 @@ public class TcpClientIT { /** * Test enabling an event twice, for the same loglevel, with --loglevel followed by --loglevel-only. */ - @Ignore("See http://bugs.lttng.org/issues/913") @Test public void testEnableEventsLogLevelRangeAndSingle() { - LogLevelFilter llf1 = new LogLevelFilter(getLogLevelStrings().warningInt(), LogLevelType.LTTNG_EVENT_LOGLEVEL_RANGE); - LogLevelFilter llf2 = new LogLevelFilter(getLogLevelStrings().warningInt(), LogLevelType.LTTNG_EVENT_LOGLEVEL_SINGLE); + LogLevelSelector lls1 = new LogLevelSelector(getLogLevelStrings().warningInt(), LogLevelType.LTTNG_EVENT_LOGLEVEL_RANGE); + LogLevelSelector lls2 = new LogLevelSelector(getLogLevelStrings().warningInt(), LogLevelType.LTTNG_EVENT_LOGLEVEL_SINGLE); session.enableEvent(EVENT_NAME_A, getLogLevelStrings().warningName(), false, null); session.enableEvent(EVENT_NAME_A, getLogLevelStrings().warningName(), true, null); List expectedCommands = Arrays.asList( - new EventRule(EVENT_NAME_A, llf1, null), - new EventRule(EVENT_NAME_A, llf2, null) + EventRuleFactory.createRule(EVENT_NAME_A, lls1), + EventRuleFactory.createRule(EVENT_NAME_A, lls2) ); List actualCommands = clientListener.getEnabledEventCommands(); @@ -290,20 +287,19 @@ public class TcpClientIT { } /** - * Test enabling an event twice, for the same loglevel, with --loglevel--only followed by --loglevel. + * Test enabling an event twice, for the same loglevel, with --loglevel-only followed by --loglevel. */ - @Ignore("See http://bugs.lttng.org/issues/913") @Test public void testEnableEventsLogLevelSingleAndRange() { - LogLevelFilter llf1 = new LogLevelFilter(getLogLevelStrings().warningInt(), LogLevelType.LTTNG_EVENT_LOGLEVEL_SINGLE); - LogLevelFilter llf2 = new LogLevelFilter(getLogLevelStrings().warningInt(), LogLevelType.LTTNG_EVENT_LOGLEVEL_RANGE); + LogLevelSelector lls1 = new LogLevelSelector(getLogLevelStrings().warningInt(), LogLevelType.LTTNG_EVENT_LOGLEVEL_SINGLE); + LogLevelSelector lls2 = new LogLevelSelector(getLogLevelStrings().warningInt(), LogLevelType.LTTNG_EVENT_LOGLEVEL_RANGE); session.enableEvent(EVENT_NAME_A, getLogLevelStrings().warningName(), true, null); session.enableEvent(EVENT_NAME_A, getLogLevelStrings().warningName(), false, null); List expectedCommands = Arrays.asList( - new EventRule(EVENT_NAME_A, llf1, null), - new EventRule(EVENT_NAME_A, llf2, null) + EventRuleFactory.createRule(EVENT_NAME_A, lls1), + EventRuleFactory.createRule(EVENT_NAME_A, lls2) ); List actualCommands = clientListener.getEnabledEventCommands(); @@ -318,17 +314,63 @@ public class TcpClientIT { public void testEnableEventsLogLevelRangeAndSingleDiffSessions() { try (ILttngSession session2 = ILttngSession.createSession(null, SESSION_DOMAIN);) { - LogLevelFilter llf1 = new LogLevelFilter(getLogLevelStrings().warningInt(), LogLevelType.LTTNG_EVENT_LOGLEVEL_RANGE); - LogLevelFilter llf2 = new LogLevelFilter(getLogLevelStrings().warningInt(), LogLevelType.LTTNG_EVENT_LOGLEVEL_SINGLE); + LogLevelSelector lls1 = new LogLevelSelector(getLogLevelStrings().warningInt(), LogLevelType.LTTNG_EVENT_LOGLEVEL_RANGE); + LogLevelSelector lls2 = new LogLevelSelector(getLogLevelStrings().warningInt(), LogLevelType.LTTNG_EVENT_LOGLEVEL_SINGLE); session.enableEvent(EVENT_NAME_A, getLogLevelStrings().warningName(), false, null); session2.enableEvent(EVENT_NAME_A, getLogLevelStrings().warningName(), true, null); - List expectedCommands = Arrays.asList(new EventRule(EVENT_NAME_A, llf1, null), - new EventRule(EVENT_NAME_A, llf2, null)); + List expectedCommands = Arrays.asList( + EventRuleFactory.createRule(EVENT_NAME_A, lls1), + EventRuleFactory.createRule(EVENT_NAME_A, lls2)); List actualCommands = clientListener.getEnabledEventCommands(); assertEquals(expectedCommands, actualCommands); } } + + /** + * Enable the same event multiple times with different filter strings. + */ + @Test + public void testEnableEventsDiffFilters() { + final String filter1 = "filter1"; + final String filter2 = "filter2"; + + session.enableEvent(EVENT_NAME_A, null, false, null); + session.enableEvent(EVENT_NAME_A, null, false, filter1); + session.enableEvent(EVENT_NAME_A, null, false, filter2); + + List expectedCommands = Arrays.asList( + EventRuleFactory.createRule(EVENT_NAME_A), + EventRuleFactory.createRule(EVENT_NAME_A, EventRuleFactory.LOG_LEVEL_UNSPECIFIED, filter1), + EventRuleFactory.createRule(EVENT_NAME_A, EventRuleFactory.LOG_LEVEL_UNSPECIFIED, filter2)); + List actualCommands = clientListener.getEnabledEventCommands(); + + assertEquals(expectedCommands, actualCommands); + } + + /** + * Enable the same event multiple times with different log levels and + * filters. + */ + @Test + public void testEnableEventsLogLevelAndFilters() { + final LogLevelSelector lls = new LogLevelSelector(getLogLevelStrings().warningInt(), LogLevelType.LTTNG_EVENT_LOGLEVEL_RANGE); + final String filter = "filter1"; + + session.enableEvent(EVENT_NAME_A, null, false, null); + session.enableEvent(EVENT_NAME_A, getLogLevelStrings().warningName(), false, null); + session.enableEvent(EVENT_NAME_A, null, false, filter); + session.enableEvent(EVENT_NAME_A, getLogLevelStrings().warningName(), false, filter); + + List expectedCommands = Arrays.asList( + EventRuleFactory.createRule(EVENT_NAME_A), + EventRuleFactory.createRule(EVENT_NAME_A, lls), + EventRuleFactory.createRule(EVENT_NAME_A, EventRuleFactory.LOG_LEVEL_UNSPECIFIED, filter), + EventRuleFactory.createRule(EVENT_NAME_A, lls, filter)); + List actualCommands = clientListener.getEnabledEventCommands(); + + assertEquals(expectedCommands, actualCommands); + } }