diff options
Diffstat (limited to 'lttng/org.eclipse.linuxtools.lttng2.ui.tests')
8 files changed, 323 insertions, 6 deletions
diff --git a/lttng/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/model/component/AllTests.java b/lttng/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/model/component/AllTests.java index 3d44b0d10c..c255963ffa 100644 --- a/lttng/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/model/component/AllTests.java +++ b/lttng/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/model/component/AllTests.java @@ -23,6 +23,7 @@ public class AllTests { //$JUnit-BEGIN$ suite.addTestSuite(TraceControlComponentTest.class); suite.addTestSuite(TraceControlTreeModelTest.class); + suite.addTestSuite(TraceControlTreeModelNoProvidersTest.class); suite.addTestSuite(TraceControlKernelProviderTests.class); suite.addTestSuite(TraceControlUstProviderTests.class); suite.addTestSuite(TraceControlKernelSessionTests.class); diff --git a/lttng/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/model/component/TraceControlKernelProviderTests.java b/lttng/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/model/component/TraceControlKernelProviderTests.java index 278d1a2762..26db1586d5 100644 --- a/lttng/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/model/component/TraceControlKernelProviderTests.java +++ b/lttng/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/model/component/TraceControlKernelProviderTests.java @@ -36,6 +36,7 @@ import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.Kernel import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TargetNodeComponent; import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceChannelComponent; import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceEventComponent; +import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceProviderGroup; import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceSessionComponent; import org.eclipse.rse.core.RSECorePlugin; import org.eclipse.rse.core.model.IHost; @@ -142,13 +143,17 @@ public class TraceControlKernelProviderTests extends TestCase { // Verify that node is connected assertEquals(TargetNodeState.CONNECTED, node.getTargetNodeState()); - // Get provider groups + // Get provider and session group ITraceControlComponent[] groups = node.getChildren(); assertNotNull(groups); assertEquals(2, groups.length); + // Check for kernel provider + TraceProviderGroup providerGroup = (TraceProviderGroup) groups[0]; + assertTrue(providerGroup.hasKernelProvider()); + // Get kernel provider - ITraceControlComponent[] providers = groups[0].getChildren(); + ITraceControlComponent[] providers = providerGroup.getChildren(); KernelProviderComponent kernelProvider = (KernelProviderComponent) providers[0]; // Get kernel provider events and select 2 events diff --git a/lttng/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/model/component/TraceControlTreeModelNoProvidersTest.java b/lttng/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/model/component/TraceControlTreeModelNoProvidersTest.java new file mode 100644 index 0000000000..70095241e0 --- /dev/null +++ b/lttng/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/model/component/TraceControlTreeModelNoProvidersTest.java @@ -0,0 +1,183 @@ +/********************************************************************** + * Copyright (c) 2012 Ericsson + * + * All rights reserved. This program and the accompanying materials are + * made available under the terms of the Eclipse Public License v1.0 which + * accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Bernd Hufmann - Initial API and implementation + **********************************************************************/ +package org.eclipse.linuxtools.lttng2.ui.tests.control.model.component; + +import java.io.File; +import java.net.URL; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.eclipse.core.runtime.FileLocator; +import org.eclipse.core.runtime.Path; +import org.eclipse.linuxtools.internal.lttng2.core.control.model.TargetNodeState; +import org.eclipse.linuxtools.internal.lttng2.stubs.service.TestRemoteSystemProxy; +import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.ITraceControlComponent; +import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TargetNodeComponent; +import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceProviderGroup; +import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceSessionGroup; +import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.UstProviderComponent; +import org.eclipse.linuxtools.internal.lttng2.ui.views.control.service.ILttngControlService; +import org.eclipse.linuxtools.internal.lttng2.ui.views.control.service.LTTngControlService; +import org.eclipse.rse.core.RSECorePlugin; +import org.eclipse.rse.core.model.IHost; +import org.eclipse.rse.core.model.ISystemProfile; +import org.eclipse.rse.core.model.ISystemRegistry; +import org.eclipse.swt.graphics.Image; +import org.junit.After; +import org.junit.Before; +import org.osgi.framework.FrameworkUtil; + +/** + * The class <code>TraceControlTreeModelNoProvidersTest</code> verifies that the + * Tracer Control can handle the case where no kernel provider and only UST provider + * are available. + */ +@SuppressWarnings("nls") +public class TraceControlTreeModelNoProvidersTest extends TestCase { + + // ------------------------------------------------------------------------ + // Constants + // ------------------------------------------------------------------------ + + private static final String TEST_STREAM = "ListInfoTest.cfg"; + private static final String SCEN_LIST_INFO_TEST = "ListInfoTestNoKernel"; + private static final String TARGET_NODE_NAME = "myNode"; + + // ------------------------------------------------------------------------ + // Test data + // ------------------------------------------------------------------------ + + private TestRemoteSystemProxy fProxy; + private String fTestFile; + + // ------------------------------------------------------------------------ + // Static methods + // ------------------------------------------------------------------------ + + /** + * Returns test setup used when executing test case stand-alone. + * @return Test setup class + */ + public static Test suite() { + return new ModelImplTestSetup(new TestSuite(TraceControlTreeModelNoProvidersTest.class)); + } + + // ------------------------------------------------------------------------ + // Housekeeping + // ------------------------------------------------------------------------ + + /** + * Perform pre-test initialization. + * + * @throws Exception + * if the initialization fails for some reason + * + */ + @Override + @Before + public void setUp() throws Exception { + fProxy = new TestRemoteSystemProxy(); + URL location = FileLocator.find(FrameworkUtil.getBundle(this.getClass()), new Path(TraceControlTestFacility.DIRECTORY + File.separator + TEST_STREAM), null); + File testfile = new File(FileLocator.toFileURL(location).toURI()); + fTestFile = testfile.getAbsolutePath(); + } + + /** + * Perform post-test clean-up. + * + * @throws Exception + * if the clean-up fails for some reason + * + */ + @Override + @After + public void tearDown() throws Exception { + TraceControlTestFacility.getInstance().waitForJobs(); + } + + /** + * Run the TraceControlComponent. + * + * @throws Exception + * This will fail the test + */ + public void testTraceControlComponents() throws Exception { + + fProxy.setTestFile(fTestFile); + fProxy.setScenario(SCEN_LIST_INFO_TEST); + + ITraceControlComponent root = TraceControlTestFacility.getInstance().getControlView().getTraceControlRoot(); + + ISystemRegistry registry = RSECorePlugin.getTheSystemRegistry(); + ISystemProfile profile = registry.createSystemProfile("myProfile", true); + IHost host = registry.createLocalHost(profile, "myProfile", "user"); + + TargetNodeComponent node = new TargetNodeComponent(TARGET_NODE_NAME, root, host, fProxy); + + root.addChild(node); + node.connect(); + + TraceControlTestFacility.getInstance().waitForJobs(); + + // ------------------------------------------------------------------------ + // Verify Parameters of TargetNodeComponent + // ------------------------------------------------------------------------ + assertEquals("LOCALHOST", node.getHostName()); // assigned in createLocalHost() above + assertEquals("LOCALHOST", node.getToolTip()); // assigned in createLocalHost() above + Image connectedImage = node.getImage(); + assertNotNull(connectedImage); + assertEquals(TargetNodeState.CONNECTED, node.getTargetNodeState()); + assertNotNull(node.getControlService()); + ILttngControlService service = node.getControlService(); + assertTrue(service instanceof LTTngControlService); + node.setControlService(service); + assertTrue(node.getControlService() instanceof LTTngControlService); + + assertTrue(node.isPassiveCommunicationsListener()); + + // ------------------------------------------------------------------------ + // Verify Children of TargetNodeComponent + // ------------------------------------------------------------------------ + ITraceControlComponent[] groups = node.getChildren(); + assertNotNull(groups); + assertEquals(2, groups.length); + + assertTrue(groups[0] instanceof TraceProviderGroup); + assertTrue(groups[1] instanceof TraceSessionGroup); + + // Check for kernel provider + TraceProviderGroup providerGroup = (TraceProviderGroup) groups[0]; + assertFalse(providerGroup.hasKernelProvider()); + + assertEquals("Provider", providerGroup.getName()); + assertEquals("Sessions", groups[1].getName()); + + // ------------------------------------------------------------------------ + // Verify TraceProviderGroup + // ------------------------------------------------------------------------ + ITraceControlComponent[] providers = groups[0].getChildren(); + + assertNotNull(providers); + assertEquals(1, providers.length); + assertTrue(providers[0] instanceof UstProviderComponent); + + // disconnect + node.disconnect(); + assertEquals(TargetNodeState.DISCONNECTED, node.getTargetNodeState()); + assertNotNull(node.getImage()); + assertNotSame(connectedImage, node.getImage()); + + node.getParent().removeChild(node); + } +}
\ No newline at end of file diff --git a/lttng/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/model/component/TraceControlTreeModelTest.java b/lttng/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/model/component/TraceControlTreeModelTest.java index 3a02b1b263..73b3a80e19 100644 --- a/lttng/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/model/component/TraceControlTreeModelTest.java +++ b/lttng/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/model/component/TraceControlTreeModelTest.java @@ -177,7 +177,7 @@ public class TraceControlTreeModelTest extends TestCase { assertEquals(3, providers.length); // ------------------------------------------------------------------------ - // Verify UstProviderComponent + // Verify KernelProviderComponent // ------------------------------------------------------------------------ KernelProviderComponent kernelProvider = (KernelProviderComponent) providers[0]; diff --git a/lttng/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/service/LTTngControlServiceTest.java b/lttng/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/service/LTTngControlServiceTest.java index 6da6753e28..cf0abba697 100644 --- a/lttng/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/service/LTTngControlServiceTest.java +++ b/lttng/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/service/LTTngControlServiceTest.java @@ -62,6 +62,8 @@ public class LTTngControlServiceTest extends TestCase { private static final String SCEN_GET_SESSION_GARBAGE_OUT = "GetSessionGarbageOut"; private static final String SCEN_GET_SESSION1 = "GetSession1"; private static final String SCEN_GET_KERNEL_PROVIDER1 = "GetKernelProvider1"; + private static final String SCEN_LIST_WITH_NO_KERNEL1 = "ListWithNoKernel1"; + private static final String SCEN_LIST_WITH_NO_KERNEL2 = "ListWithNoKernel2"; private static final String SCEN_GET_UST_PROVIDER1 = "GetUstProvider1"; private static final String SCEN_GET_UST_PROVIDER2 = "GetUstProvider2"; private static final String SCEN_CREATE_SESSION1 = "CreateSession1"; @@ -145,7 +147,7 @@ public class LTTngControlServiceTest extends TestCase { fail("Exeption thrown " + e); } } - + public void testUnsupportedVersion() { try { fShell.setScenario(SCEN_LTTNG_UNSUPPORTED_VERSION); @@ -375,6 +377,35 @@ public class LTTngControlServiceTest extends TestCase { } } + public void testGetKernelProviderNoKernel1() { + try { + fShell.setScenario(SCEN_LIST_WITH_NO_KERNEL1); + List<IBaseEventInfo> events = fService.getKernelProvider(new NullProgressMonitor()); + + // Verify event info + assertNotNull(events); + assertEquals(0, events.size()); + + } catch (ExecutionException e) { + fail(e.toString()); + } + } + + public void testGetKernelProviderNoKernel2() { + try { + fShell.setScenario(SCEN_LIST_WITH_NO_KERNEL2); + List<IBaseEventInfo> events = fService.getKernelProvider(new NullProgressMonitor()); + + // Verify event info + assertNotNull(events); + assertEquals(0, events.size()); + + } catch (ExecutionException e) { + fail(e.toString()); + } + } + + public void testGetUstProvider() { try { fShell.setScenario(SCEN_GET_UST_PROVIDER1); @@ -459,7 +490,7 @@ public class LTTngControlServiceTest extends TestCase { public void testCreateSessionWithPrompt() { try { - // First line has the shell prompt before the command output + // First line has the shell prompt before the command output // This can happen in a real application if the command line is not echoed by the shell. fShell.setScenario(SCEN_CREATE_SESSION_WITH_PROMPT); @@ -475,7 +506,7 @@ public class LTTngControlServiceTest extends TestCase { } } - + public void testCreateSessionVariants() { fShell.setScenario(SCEN_CREATE_SESSION_VARIANTS); diff --git a/lttng/org.eclipse.linuxtools.lttng2.ui.tests/stubs/org/eclipse/linuxtools/internal/lttng2/stubs/dialogs/EnableChannelDialogStub.java b/lttng/org.eclipse.linuxtools.lttng2.ui.tests/stubs/org/eclipse/linuxtools/internal/lttng2/stubs/dialogs/EnableChannelDialogStub.java index 7092eac294..4ff146275a 100644 --- a/lttng/org.eclipse.linuxtools.lttng2.ui.tests/stubs/org/eclipse/linuxtools/internal/lttng2/stubs/dialogs/EnableChannelDialogStub.java +++ b/lttng/org.eclipse.linuxtools.lttng2.ui.tests/stubs/org/eclipse/linuxtools/internal/lttng2/stubs/dialogs/EnableChannelDialogStub.java @@ -71,6 +71,11 @@ public class EnableChannelDialogStub implements IEnableChannelDialog { return fIsKernel; } + @Override + public void setHasKernel(boolean hasKernel) { + // Do nothing + } + public void setChannelInfo(ChannelInfo info) { fChannelInfo = info; } diff --git a/lttng/org.eclipse.linuxtools.lttng2.ui.tests/testfiles/LTTngServiceTest.cfg b/lttng/org.eclipse.linuxtools.lttng2.ui.tests/testfiles/LTTngServiceTest.cfg index 52586c3e8b..42b400447b 100644 --- a/lttng/org.eclipse.linuxtools.lttng2.ui.tests/testfiles/LTTngServiceTest.cfg +++ b/lttng/org.eclipse.linuxtools.lttng2.ui.tests/testfiles/LTTngServiceTest.cfg @@ -287,6 +287,39 @@ Kernel events </SCENARIO> #################################################################### +# Scenario: Test "lttng list -k" with no kernel and no session daemon +#################################################################### +<SCENARIO> +ListWithNoKernel1 +<COMMAND_INPUT> +lttng list -k +</COMMAND_INPUT> +<COMMAND_RESULT> +1 +</COMMAND_RESULT> +<COMMAND_OUTPUT> +Spawning session daemon +Error: Unable to list kernel events +</COMMAND_OUTPUT> +</SCENARIO> + +#################################################################### +# Scenario: Test "lttng list -k" with no kernel and with session daemon +#################################################################### +<SCENARIO> +ListWithNoKernel2 +<COMMAND_INPUT> +lttng list -k +</COMMAND_INPUT> +<COMMAND_RESULT> +1 +</COMMAND_RESULT> +<COMMAND_OUTPUT> +Error: Unable to list kernel events +</COMMAND_OUTPUT> +</SCENARIO> + +#################################################################### # Scenario: Test "lttng list -u" with sample output #################################################################### <SCENARIO> diff --git a/lttng/org.eclipse.linuxtools.lttng2.ui.tests/testfiles/ListInfoTest.cfg b/lttng/org.eclipse.linuxtools.lttng2.ui.tests/testfiles/ListInfoTest.cfg index b85688769f..824f8808dd 100644 --- a/lttng/org.eclipse.linuxtools.lttng2.ui.tests/testfiles/ListInfoTest.cfg +++ b/lttng/org.eclipse.linuxtools.lttng2.ui.tests/testfiles/ListInfoTest.cfg @@ -169,3 +169,62 @@ PID: 4852 - Name: /home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello </COMMAND_OUTPUT> </SCENARIO> + + +#################################################################### +# Scenario: Test "lttng list -k" with no kernel and no session daemon +#################################################################### +<SCENARIO> +ListInfoTestNoKernel + +<COMMAND_INPUT> +lttng version +</COMMAND_INPUT> +<COMMAND_RESULT> +0 +</COMMAND_RESULT> +<COMMAND_OUTPUT> +lttng version 2.0.0 - Annedd'ale +Web site: http://lttng.org/ + +lttng is free software and under the GPL license and part LGPL +</COMMAND_OUTPUT> + +<COMMAND_INPUT> +lttng list +</COMMAND_INPUT> +<COMMAND_RESULT> +0 +</COMMAND_RESULT> +<COMMAND_OUTPUT> +Currently no available tracing session +</COMMAND_OUTPUT> + +<COMMAND_INPUT> +lttng list -k +</COMMAND_INPUT> +<COMMAND_RESULT> +1 +</COMMAND_RESULT> +<COMMAND_OUTPUT> +Error: Unable to list kernel events +</COMMAND_OUTPUT> + +<COMMAND_INPUT> +lttng list -u +</COMMAND_INPUT> +<COMMAND_RESULT> +0 +</COMMAND_RESULT> +<COMMAND_OUTPUT> +UST events: +------------- + +PID: 9379 - Name: /home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello + ust_tests_hello:tptest_sighandler (loglevel: TRACE_DEBUG_MODULE (10)) (type: tracepoint) + ust_tests_hello:tptest (loglevel: TRACE_INFO (6)) (type: tracepoint) + +</COMMAND_OUTPUT> + +</SCENARIO> + |