Split the tests package in 3 separate artifacts
[lttng-ust-java-tests.git] / lttng-ust-java-tests / src / test / java / org / lttng / ust / agent / integration / client / TcpClientIT.java
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
deleted file mode 100644 (file)
index 2794dfa..0000000
+++ /dev/null
@@ -1,376 +0,0 @@
-/*
- * Copyright (C) 2015, EfficiOS Inc., Alexandre Montplaisir <alexmonthy@efficios.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-package org.lttng.ust.agent.integration.client;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assume.assumeTrue;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-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.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.
- *
- * This test suite requires that a *root* session daemon is running on the
- * system. Since we have to explicitly tell the TCP client which sessiond to
- * connect to, we have to hard-code it in here.
- *
- * @author Alexandre Montplaisir
- */
-@RunWith(TestPrintRunner.class)
-public class TcpClientIT {
-
-    // ------------------------------------------------------------------------
-    // Attributes
-    // ------------------------------------------------------------------------
-
-    private static final String EVENT_NAME_A = "eventA";
-    private static final String EVENT_NAME_B = "eventB";
-    private static final String EVENT_NAME_C = "eventC";
-
-    /* Test configuration */
-    private static final int DOMAIN_VALUE = ILttngAgent.Domain.JUL.value();
-    private static final ILttngSession.Domain SESSION_DOMAIN = ILttngSession.Domain.JUL;
-    private static final boolean ROOT_SESSIOND = true;
-
-    private static TcpClientDebugListener clientListener;
-    private static LttngTcpSessiondClient client;
-    private static Thread clientThread;
-
-    private ILttngSession session;
-
-    // ------------------------------------------------------------------------
-    // Maintenance
-    // ------------------------------------------------------------------------
-
-    /**
-     * Class setup
-     */
-    @BeforeClass
-    public static void setupClass() {
-        LttngToolsHelper.destroyAllSessions();
-
-        clientListener = new TcpClientDebugListener();
-        client = new LttngTcpSessiondClient(clientListener, DOMAIN_VALUE, ROOT_SESSIOND);
-
-        clientThread = new Thread(client);
-        clientThread.start();
-
-        assumeTrue("Timed out waiting for root sessiond", client.waitForConnection(5));
-    }
-
-    /**
-     * Class teardown
-     */
-    @AfterClass
-    public static void teardownClass() {
-        if (client != null) {
-            client.close();
-        }
-        if (clientThread != null) {
-            try {
-                clientThread.join();
-            } catch (InterruptedException e) {
-            }
-        }
-    }
-
-    /**
-     * Test setup
-     */
-    @Before
-    public void setup() {
-        session = ILttngSession.createSession(null, SESSION_DOMAIN);
-        clientListener.clearAllCommands();
-    }
-
-    /**
-     * Test teardown
-     */
-    @After
-    public void teardown() {
-        session.close();
-    }
-
-
-    private static ILogLevelStrings getLogLevelStrings() {
-        return ILogLevelStrings.JUL_LOGLEVEL_STRINGS;
-    }
-
-    /**
-     * Check that two lists contain the exact same element (including
-     * duplicates), but their order does not matter.
-     */
-    private static <T extends Comparable<T>> boolean containSameElements(List<T> list1, List<T> list2) {
-        List<T> newlist1 = new ArrayList<>(list1);
-        List<T> newlist2 = new ArrayList<>(list2);
-        Collections.sort(newlist1);
-        Collections.sort(newlist2);
-        return (newlist1.equals(newlist2));
-
-    }
-
-    // ------------------------------------------------------------------------
-    // Test cases
-    // ------------------------------------------------------------------------
-
-    /**
-     * Test enabling one event.
-     */
-    @Test
-    public void testEnableEvent() {
-        session.enableEvent(EVENT_NAME_A, null, false, null);
-
-        List<EventRule> expectedCommands = Collections.singletonList(
-                EventRuleFactory.createRule(EVENT_NAME_A));
-
-        List<EventRule> actualCommands = clientListener.getEnabledEventCommands();
-        assertEquals(expectedCommands, actualCommands);
-    }
-
-    /**
-     * Test an "enable-event -a" command.
-     */
-    @Test
-    public void testEnableAllEvents() {
-        session.enableAllEvents();
-
-        List<EventRule> expectedCommands = Collections.singletonList(
-                EventRuleFactory.createRuleAllEvents());
-        List<EventRule> actualCommands = clientListener.getEnabledEventCommands();
-
-        assertEquals(expectedCommands, actualCommands);
-    }
-
-    /**
-     * Test enabling then disabling one event.
-     */
-    @Test
-    public void testEnableThenDisableOneEvent() {
-        session.enableEvent(EVENT_NAME_A, null, false, null);
-        session.disableEvents(EVENT_NAME_A);
-
-        List<EventRule> expectedEnableCommands = Collections.singletonList(
-                EventRuleFactory.createRule(EVENT_NAME_A));
-        List<String> expectedDisableCommands = Collections.singletonList(EVENT_NAME_A);
-
-        assertEquals(expectedEnableCommands, clientListener.getEnabledEventCommands());
-        assertTrue(containSameElements(expectedDisableCommands, clientListener.getDisabledEventCommands()));
-    }
-
-    /**
-     * Test enabling some events manually, then disabling all events (-a).
-     */
-    @Test
-    public void testEnableSomeThenDisableAll() {
-        session.enableEvent(EVENT_NAME_A, null, false, null);
-        session.enableEvent(EVENT_NAME_B, null, false, null);
-        session.enableEvent(EVENT_NAME_C, null, false, null);
-        session.disableAllEvents();
-
-        List<EventRule> expectedEnableCommands = Arrays.asList(
-                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.
-         */
-        List<String> expectedDisableCommands = Arrays.asList(
-                EVENT_NAME_A, EVENT_NAME_B, EVENT_NAME_C);
-
-        assertEquals(expectedEnableCommands, clientListener.getEnabledEventCommands());
-        assertTrue(containSameElements(expectedDisableCommands, clientListener.getDisabledEventCommands()));
-    }
-
-    /**
-     * Test enabling then (enable-event -a) then disabling all (disable-event -a) events.
-     */
-    @Test
-    public void testEnableAllThenDisableAll() {
-        session.enableAllEvents();
-        session.disableAllEvents();
-
-        List<EventRule> expectedEnableCommands = Arrays.asList(EventRuleFactory.createRuleAllEvents());
-        List<String> expectedDisableCommands = Arrays.asList(EventRuleFactory.EVENT_NAME_ALL);
-
-        assertEquals(expectedEnableCommands, clientListener.getEnabledEventCommands());
-        assertTrue(containSameElements(expectedDisableCommands, clientListener.getDisabledEventCommands()));
-    }
-
-    /**
-     * Test specifying an event with a --loglevel option.
-     */
-    @Test
-    public void testEnableEventLogLevelRange() {
-        LogLevelSelector lls = new LogLevelSelector(getLogLevelStrings().warningInt(), LogLevelType.LTTNG_EVENT_LOGLEVEL_RANGE);
-
-        session.enableEvent(EVENT_NAME_A, getLogLevelStrings().warningName(), false, null);
-
-        List<EventRule> expectedCommands = Collections.singletonList(
-                EventRuleFactory.createRule(EVENT_NAME_A, lls));
-        List<EventRule> actualCommands = clientListener.getEnabledEventCommands();
-
-        assertEquals(expectedCommands, actualCommands);
-    }
-
-    /**
-     * Test enabling an event with a --loglevel-only option.
-     */
-    @Test
-    public void testEnableEventLogLevelSingle() {
-        LogLevelSelector lls = new LogLevelSelector(getLogLevelStrings().warningInt(), LogLevelType.LTTNG_EVENT_LOGLEVEL_SINGLE);
-
-        session.enableEvent(EVENT_NAME_A, getLogLevelStrings().warningName(), true, null);
-
-        List<EventRule> expectedCommands = Collections.singletonList(
-                EventRuleFactory.createRule(EVENT_NAME_A, lls));
-        List<EventRule> actualCommands = clientListener.getEnabledEventCommands();
-
-        assertEquals(expectedCommands, actualCommands);
-    }
-
-    /**
-     * Test enabling an event twice, for the same loglevel, with --loglevel followed by --loglevel-only.
-     */
-    @Test
-    public void testEnableEventsLogLevelRangeAndSingle() {
-        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<EventRule> expectedCommands = Arrays.asList(
-                EventRuleFactory.createRule(EVENT_NAME_A, lls1),
-                EventRuleFactory.createRule(EVENT_NAME_A, lls2)
-                );
-        List<EventRule> actualCommands = clientListener.getEnabledEventCommands();
-
-        assertEquals(expectedCommands, actualCommands);
-    }
-
-    /**
-     * Test enabling an event twice, for the same loglevel, with --loglevel-only followed by --loglevel.
-     */
-    @Test
-    public void testEnableEventsLogLevelSingleAndRange() {
-        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<EventRule> expectedCommands = Arrays.asList(
-                EventRuleFactory.createRule(EVENT_NAME_A, lls1),
-                EventRuleFactory.createRule(EVENT_NAME_A, lls2)
-                );
-        List<EventRule> actualCommands = clientListener.getEnabledEventCommands();
-
-        assertEquals(expectedCommands, actualCommands);
-    }
-
-    /**
-     * Test enabling the same event, same loglevel, but different loglevel types
-     * (--loglevel vs --loglevel-only) in two separate sessions.
-     */
-    @Test
-    public void testEnableEventsLogLevelRangeAndSingleDiffSessions() {
-        try (ILttngSession session2 = ILttngSession.createSession(null, SESSION_DOMAIN);) {
-
-            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<EventRule> expectedCommands = Arrays.asList(
-                    EventRuleFactory.createRule(EVENT_NAME_A, lls1),
-                    EventRuleFactory.createRule(EVENT_NAME_A, lls2));
-            List<EventRule> 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<EventRule> 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<EventRule> 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<EventRule> 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<EventRule> actualCommands = clientListener.getEnabledEventCommands();
-
-        assertEquals(expectedCommands, actualCommands);
-    }
-}
This page took 0.027992 seconds and 4 git commands to generate.