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
.jdt
.annotation
.NonNull
;
29 import org
.eclipse
.remote
.core
.IRemoteConnection
;
30 import org
.eclipse
.swt
.graphics
.Image
;
31 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.core
.model
.TargetNodeState
;
32 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.stubs
.service
.TestRemoteSystemProxy
;
33 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.model
.ITraceControlComponent
;
34 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.model
.impl
.TargetNodeComponent
;
35 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.model
.impl
.TraceProviderGroup
;
36 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.model
.impl
.TraceSessionGroup
;
37 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.model
.impl
.UstProviderComponent
;
38 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.service
.ILttngControlService
;
39 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.service
.LTTngControlService
;
40 import org
.eclipse
.tracecompass
.tmf
.remote
.core
.proxy
.TmfRemoteConnectionFactory
;
41 import org
.junit
.After
;
42 import org
.junit
.Before
;
43 import org
.junit
.Test
;
44 import org
.osgi
.framework
.FrameworkUtil
;
47 * The class <code>TraceControlTreeModelNoProvidersTest</code> verifies that the
48 * Tracer Control can handle the case where no kernel provider and only UST
49 * provider are available.
51 public class TraceControlTreeModelNoProvidersTest
{
53 // ------------------------------------------------------------------------
55 // ------------------------------------------------------------------------
57 private static final String TEST_STREAM
= "ListInfoTest.cfg";
58 private static final String SCEN_LIST_INFO_TEST
= "ListInfoTestNoKernel";
59 private static final String TARGET_NODE_NAME
= "myNode";
61 // ------------------------------------------------------------------------
63 // ------------------------------------------------------------------------
65 private IRemoteConnection fHost
= TmfRemoteConnectionFactory
.getLocalConnection();
66 private @NonNull TestRemoteSystemProxy fProxy
= new TestRemoteSystemProxy(fHost
);
67 private String fTestFile
;
69 // ------------------------------------------------------------------------
71 // ------------------------------------------------------------------------
74 * Perform pre-test initialization.
77 * if the initialization fails for some reason
80 public void setUp() throws Exception
{
81 URL location
= FileLocator
.find(FrameworkUtil
.getBundle(this.getClass()), new Path(TraceControlTestFacility
.DIRECTORY
+ File
.separator
+ TEST_STREAM
), null);
82 File testfile
= new File(FileLocator
.toFileURL(location
).toURI());
83 fTestFile
= testfile
.getAbsolutePath();
87 * Perform post-test clean-up.
90 public void tearDown() {
91 TraceControlTestFacility
.getInstance().waitForJobs();
95 * Run the TraceControlComponent.
98 public void testTraceControlComponents() {
100 fProxy
.setTestFile(fTestFile
);
101 fProxy
.setScenario(SCEN_LIST_INFO_TEST
);
103 ITraceControlComponent root
= TraceControlTestFacility
.getInstance().getControlView().getTraceControlRoot();
105 TargetNodeComponent node
= new TargetNodeComponent(TARGET_NODE_NAME
, root
, fProxy
);
110 TraceControlTestFacility
.getInstance().waitForConnect(node
);
111 TraceControlTestFacility
.getInstance().waitForJobs();
113 // ------------------------------------------------------------------------
114 // Verify Parameters of TargetNodeComponent
115 // ------------------------------------------------------------------------
116 assertEquals("Local", node
.getToolTip()); // assigned in createLocalHost() above
117 Image connectedImage
= node
.getImage();
118 assertNotNull(connectedImage
);
119 assertEquals(TargetNodeState
.CONNECTED
, node
.getTargetNodeState());
120 assertNotNull(node
.getControlService());
121 ILttngControlService service
= node
.getControlService();
122 assertTrue(service
instanceof LTTngControlService
);
123 node
.setControlService(service
);
124 assertTrue(node
.getControlService() instanceof LTTngControlService
);
126 // ------------------------------------------------------------------------
127 // Verify Children of TargetNodeComponent
128 // ------------------------------------------------------------------------
129 ITraceControlComponent
[] groups
= node
.getChildren();
130 assertNotNull(groups
);
131 assertEquals(2, groups
.length
);
133 assertTrue(groups
[0] instanceof TraceProviderGroup
);
134 assertTrue(groups
[1] instanceof TraceSessionGroup
);
136 // Check for kernel provider
137 TraceProviderGroup providerGroup
= (TraceProviderGroup
) groups
[0];
138 assertFalse(providerGroup
.hasKernelProvider());
140 assertEquals("Provider", providerGroup
.getName());
141 assertEquals("Sessions", groups
[1].getName());
143 // ------------------------------------------------------------------------
144 // Verify TraceProviderGroup
145 // ------------------------------------------------------------------------
146 ITraceControlComponent
[] providers
= groups
[0].getChildren();
148 assertNotNull(providers
);
149 assertEquals(1, providers
.length
);
150 assertTrue(providers
[0] instanceof UstProviderComponent
);
154 assertEquals(TargetNodeState
.DISCONNECTED
, node
.getTargetNodeState());
155 assertNotNull(node
.getImage());
156 assertNotSame(connectedImage
, node
.getImage());
158 node
.getParent().removeChild(node
);