1 /**********************************************************************
2 * Copyright (c) 2012, 2015 Ericsson
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
10 * Bernd Hufmann - Initial API and implementation
11 * Alexandre Montplaisir - Port to JUnit4
12 * Markus Schorn - Bug 448058: Use org.eclipse.remote in favor of RSE
13 **********************************************************************/
15 package org
.eclipse
.tracecompass
.lttng2
.control
.ui
.tests
.model
.component
;
17 import static org
.junit
.Assert
.assertEquals
;
18 import static org
.junit
.Assert
.assertFalse
;
19 import static org
.junit
.Assert
.assertNotNull
;
20 import static org
.junit
.Assert
.assertNotSame
;
21 import static org
.junit
.Assert
.assertTrue
;
26 import org
.eclipse
.core
.runtime
.FileLocator
;
27 import org
.eclipse
.core
.runtime
.Path
;
28 import org
.eclipse
.remote
.core
.IRemoteConnection
;
29 import org
.eclipse
.swt
.graphics
.Image
;
30 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.core
.model
.TargetNodeState
;
31 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.stubs
.service
.TestRemoteSystemProxy
;
32 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.model
.ITraceControlComponent
;
33 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.model
.impl
.TargetNodeComponent
;
34 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.model
.impl
.TraceProviderGroup
;
35 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.model
.impl
.TraceSessionGroup
;
36 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.model
.impl
.UstProviderComponent
;
37 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.service
.ILttngControlService
;
38 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.service
.LTTngControlService
;
39 import org
.eclipse
.tracecompass
.tmf
.remote
.core
.proxy
.RemoteSystemProxy
;
40 import org
.junit
.After
;
41 import org
.junit
.Before
;
42 import org
.junit
.Test
;
43 import org
.osgi
.framework
.FrameworkUtil
;
46 * The class <code>TraceControlTreeModelNoProvidersTest</code> verifies that the
47 * Tracer Control can handle the case where no kernel provider and only UST
48 * provider are available.
50 public class TraceControlTreeModelNoProvidersTest
{
52 // ------------------------------------------------------------------------
54 // ------------------------------------------------------------------------
56 private static final String TEST_STREAM
= "ListInfoTest.cfg";
57 private static final String SCEN_LIST_INFO_TEST
= "ListInfoTestNoKernel";
58 private static final String TARGET_NODE_NAME
= "myNode";
60 // ------------------------------------------------------------------------
62 // ------------------------------------------------------------------------
64 private TestRemoteSystemProxy fProxy
;
65 private String fTestFile
;
67 // ------------------------------------------------------------------------
69 // ------------------------------------------------------------------------
72 * Perform pre-test initialization.
75 * if the initialization fails for some reason
78 public void setUp() throws Exception
{
79 fProxy
= new TestRemoteSystemProxy();
80 URL location
= FileLocator
.find(FrameworkUtil
.getBundle(this.getClass()), new Path(TraceControlTestFacility
.DIRECTORY
+ File
.separator
+ TEST_STREAM
), null);
81 File testfile
= new File(FileLocator
.toFileURL(location
).toURI());
82 fTestFile
= testfile
.getAbsolutePath();
86 * Perform post-test clean-up.
89 public void tearDown() {
90 TraceControlTestFacility
.getInstance().waitForJobs();
94 * Run the TraceControlComponent.
97 public void testTraceControlComponents() {
99 fProxy
.setTestFile(fTestFile
);
100 fProxy
.setScenario(SCEN_LIST_INFO_TEST
);
102 ITraceControlComponent root
= TraceControlTestFacility
.getInstance().getControlView().getTraceControlRoot();
104 IRemoteConnection host
= RemoteSystemProxy
.getLocalConnection();
106 TargetNodeComponent node
= new TargetNodeComponent(TARGET_NODE_NAME
, root
, host
, fProxy
);
111 TraceControlTestFacility
.getInstance().waitForConnect(node
);
112 TraceControlTestFacility
.getInstance().waitForJobs();
114 // ------------------------------------------------------------------------
115 // Verify Parameters of TargetNodeComponent
116 // ------------------------------------------------------------------------
117 assertEquals("Local", node
.getToolTip()); // assigned in createLocalHost() above
118 Image connectedImage
= node
.getImage();
119 assertNotNull(connectedImage
);
120 assertEquals(TargetNodeState
.CONNECTED
, node
.getTargetNodeState());
121 assertNotNull(node
.getControlService());
122 ILttngControlService service
= node
.getControlService();
123 assertTrue(service
instanceof LTTngControlService
);
124 node
.setControlService(service
);
125 assertTrue(node
.getControlService() instanceof LTTngControlService
);
127 // ------------------------------------------------------------------------
128 // Verify Children of TargetNodeComponent
129 // ------------------------------------------------------------------------
130 ITraceControlComponent
[] groups
= node
.getChildren();
131 assertNotNull(groups
);
132 assertEquals(2, groups
.length
);
134 assertTrue(groups
[0] instanceof TraceProviderGroup
);
135 assertTrue(groups
[1] instanceof TraceSessionGroup
);
137 // Check for kernel provider
138 TraceProviderGroup providerGroup
= (TraceProviderGroup
) groups
[0];
139 assertFalse(providerGroup
.hasKernelProvider());
141 assertEquals("Provider", providerGroup
.getName());
142 assertEquals("Sessions", groups
[1].getName());
144 // ------------------------------------------------------------------------
145 // Verify TraceProviderGroup
146 // ------------------------------------------------------------------------
147 ITraceControlComponent
[] providers
= groups
[0].getChildren();
149 assertNotNull(providers
);
150 assertEquals(1, providers
.length
);
151 assertTrue(providers
[0] instanceof UstProviderComponent
);
155 assertEquals(TargetNodeState
.DISCONNECTED
, node
.getTargetNodeState());
156 assertNotNull(node
.getImage());
157 assertNotSame(connectedImage
, node
.getImage());
159 node
.getParent().removeChild(node
);