X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=lttng-ust-java-tests-common%2Fsrc%2Ftest%2Fjava%2Forg%2Flttng%2Fust%2Fagent%2Fintegration%2Fclient%2FTcpClientIT.java;h=d89571d536b05f5aa52d3e895122a10fc4757800;hb=8c202b54fabc6b8ff3b15a3f46d87426deceb953;hp=a86a273cc3f969d07cba3f0e6830aa1e2b9b5f18;hpb=73fb67850f841baaa164b86a2e739917da4247e2;p=lttng-ust-java-tests.git diff --git a/lttng-ust-java-tests-common/src/test/java/org/lttng/ust/agent/integration/client/TcpClientIT.java b/lttng-ust-java-tests-common/src/test/java/org/lttng/ust/agent/integration/client/TcpClientIT.java index a86a273..d89571d 100644 --- a/lttng-ust-java-tests-common/src/test/java/org/lttng/ust/agent/integration/client/TcpClientIT.java +++ b/lttng-ust-java-tests-common/src/test/java/org/lttng/ust/agent/integration/client/TcpClientIT.java @@ -526,4 +526,49 @@ public class TcpClientIT { assertEquals(expectedDisabledCommands, actualDisabledCommands); } + + // ------------------------------------------------------------------------ + // Application context filtering + // ------------------------------------------------------------------------ + + /** + * Test that enabling an event with a filter string referring to a context + * should send an agent message about this context now being "enabled". + * + * This is because we will pass the context information to UST for the + * filtering step, even if the actual context won't be present in the trace. + */ + @SuppressWarnings("static-method") + @Test + public void testContextInFilterString() { + try (ILttngSession session2 = ILttngSession.createSession(null, SESSION_DOMAIN);) { + session2.enableEvent(EVENT_NAME_A, null, false, "$app." + CONTEXT_RETRIEVER_NAME_A + ':' + CONTEXT_NAME_A + "=\"bozo\""); + + List expectedEnabledCommands = Collections.singletonList(CONTEXT_RETRIEVER_NAME_A + ':' + CONTEXT_NAME_A); + assertEquals(expectedEnabledCommands, clientListener.getEnabledAppContextCommands()); + } // close(), aka destroy the session, sending "disable context" messages + + List expectedDisabledCommands = Collections.singletonList(CONTEXT_RETRIEVER_NAME_A + ':' + CONTEXT_NAME_A); + assertEquals(expectedDisabledCommands, clientListener.getDisabledAppContextCommands()); + } + + /** + * Test that if we the context is both referred to by a filter string *and* + * enabled directly, we receive *2* messages about this context being + * enabled (and disabled on session teardown). + */ + @SuppressWarnings("static-method") + @Test + public void testContextEnabledAndInFilterString() { + try (ILttngSession session2 = ILttngSession.createSession(null, SESSION_DOMAIN);) { + session2.enableEvent(EVENT_NAME_A, null, false, "$app." + CONTEXT_RETRIEVER_NAME_A + ':' + CONTEXT_NAME_A + "=\"bozo\""); + session2.enableAppContext(CONTEXT_RETRIEVER_NAME_A, CONTEXT_NAME_A); + + List expectedEnabledCommands = Collections.nCopies(2, CONTEXT_RETRIEVER_NAME_A + ':' + CONTEXT_NAME_A); + assertEquals(expectedEnabledCommands, clientListener.getEnabledAppContextCommands()); + } // close(), aka destroy the session, sending "disable context" messages + + List expectedDisabledCommands = Collections.nCopies(2, CONTEXT_RETRIEVER_NAME_A + ':' + CONTEXT_NAME_A); + assertEquals(expectedDisabledCommands, clientListener.getDisabledAppContextCommands()); + } }