Update JUnit tests
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng2.ui.tests / src / org / eclipse / linuxtools / lttng2 / ui / tests / control / model / component / TraceControlPropertiesTest.java
1 /**********************************************************************
2 * Copyright (c) 2012 Ericsson
3 *
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
8 *
9 * Contributors:
10 * Bernd Hufmann - Initial API and implementation
11 **********************************************************************/
12 package org.eclipse.linuxtools.lttng2.ui.tests.control.model.component;
13
14 import java.io.File;
15 import java.net.URL;
16
17 import junit.framework.Test;
18 import junit.framework.TestCase;
19 import junit.framework.TestSuite;
20
21 import org.eclipse.core.runtime.FileLocator;
22 import org.eclipse.core.runtime.Path;
23 import org.eclipse.linuxtools.internal.lttng2.stubs.service.TestRemoteSystemProxy;
24 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.IChannelInfo;
25 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.ITraceControlComponent;
26 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.TargetNodeState;
27 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.TraceEnablement;
28 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.TraceEventType;
29 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.TraceLogLevel;
30 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.TraceSessionState;
31 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.BaseEventComponent;
32 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.KernelProviderComponent;
33 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TargetNodeComponent;
34 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceChannelComponent;
35 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceDomainComponent;
36 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceEventComponent;
37 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceProbeEventComponent;
38 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceSessionComponent;
39 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.UstProviderComponent;
40 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.property.BaseEventPropertySource;
41 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.property.KernelProviderPropertySource;
42 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.property.TargetNodePropertySource;
43 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.property.TraceChannelPropertySource;
44 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.property.TraceDomainPropertySource;
45 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.property.TraceEventPropertySource;
46 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.property.TraceProbeEventPropertySource;
47 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.property.TraceSessionPropertySource;
48 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.property.UstProviderPropertySource;
49 import org.eclipse.rse.core.RSECorePlugin;
50 import org.eclipse.rse.core.model.IHost;
51 import org.eclipse.rse.core.model.ISystemProfile;
52 import org.eclipse.rse.core.model.ISystemRegistry;
53 import org.eclipse.ui.views.properties.IPropertySource;
54 import org.junit.After;
55 import org.junit.Before;
56 import org.osgi.framework.FrameworkUtil;
57
58
59 /**
60 * The class <code>TraceControlPropertiesTest</code> contains tests for the all property class</code>.
61 *
62 */
63 @SuppressWarnings("nls")
64 public class TraceControlPropertiesTest extends TestCase {
65
66 // ------------------------------------------------------------------------
67 // Constants
68 // ------------------------------------------------------------------------
69 private static final String DIRECTORY = "testfiles";
70 private static final String TEST_STREAM = "ListInfoTest.cfg";
71 private static final String SCEN_LIST_INFO_TEST = "ListInfoTest";
72
73
74 // ------------------------------------------------------------------------
75 // Test data
76 // ------------------------------------------------------------------------
77
78 // ------------------------------------------------------------------------
79 // Static methods
80 // ------------------------------------------------------------------------
81
82 /**
83 * Returns test setup used when executing test case stand-alone.
84 * @return Test setup class
85 */
86 public static Test suite() {
87 return new ModelImplTestSetup(new TestSuite(TraceControlPropertiesTest.class));
88 }
89
90 // ------------------------------------------------------------------------
91 // Housekeeping
92 // ------------------------------------------------------------------------
93
94 /**
95 * Perform pre-test initialization.
96 *
97 * @throws Exception
98 * if the initialization fails for some reason
99 *
100 */
101 @Override
102 @Before
103 public void setUp() throws Exception {
104 }
105
106 /**
107 * Perform post-test clean-up.
108 *
109 * @throws Exception
110 * if the clean-up fails for some reason
111 *
112 */
113 @Override
114 @After
115 public void tearDown() throws Exception {
116 TraceControlTestFacility.getInstance().waitForJobs();
117 }
118
119 /**
120 * Run the TraceControlComponent.
121 */
122 public void testComponentProperties() throws Exception {
123
124 TestRemoteSystemProxy proxy = new TestRemoteSystemProxy();
125
126 URL location = FileLocator.find(FrameworkUtil.getBundle(this.getClass()), new Path(DIRECTORY + File.separator + TEST_STREAM), null);
127 File testfile = new File(FileLocator.toFileURL(location).toURI());
128 proxy.setTestFile(testfile.getAbsolutePath());
129 proxy.setScenario(SCEN_LIST_INFO_TEST);
130
131 ITraceControlComponent root = TraceControlTestFacility.getInstance().getControlView().getTraceControlRoot();
132
133 ISystemRegistry registry = RSECorePlugin.getTheSystemRegistry();
134 ISystemProfile profile = registry.createSystemProfile("myProfile", true);
135 IHost host = registry.createLocalHost(profile, "myProfile", "user");
136
137 TargetNodeComponent node = new TargetNodeComponent("myNode", root, host, proxy);
138
139 root.addChild(node);
140 node.connect();
141
142 TraceControlTestFacility.getInstance().waitForJobs();
143
144 // ------------------------------------------------------------------------
145 // Verify Node Properties (adapter)
146 // ------------------------------------------------------------------------
147 Object adapter = node.getAdapter(IPropertySource.class);
148 assertNotNull(adapter);
149 assertTrue(adapter instanceof TargetNodePropertySource);
150
151 TargetNodePropertySource source = (TargetNodePropertySource)adapter;
152
153 assertNull(source.getEditableValue());
154 assertFalse(source.isPropertySet(TargetNodePropertySource.TARGET_NODE_NAME_PROPERTY_ID));
155 assertNotNull(source.getPropertyDescriptors());
156
157 assertEquals("myNode", source.getPropertyValue(TargetNodePropertySource.TARGET_NODE_NAME_PROPERTY_ID));
158 assertEquals("LOCALHOST", source.getPropertyValue(TargetNodePropertySource.TARGET_NODE_ADDRESS_PROPERTY_ID));
159 assertEquals(TargetNodeState.CONNECTED.name(), source.getPropertyValue(TargetNodePropertySource.TARGET_NODE_STATE_PROPERTY_ID));
160 assertNull(source.getPropertyValue("test"));
161
162 adapter = node.getAdapter(IChannelInfo.class);
163 assertNull(adapter);
164
165 ITraceControlComponent[] groups = node.getChildren();
166 assertNotNull(groups);
167 assertEquals(2, groups.length);
168
169 ITraceControlComponent[] providers = groups[0].getChildren();
170
171 assertNotNull(providers);
172 assertEquals(3, providers.length);
173
174 // ------------------------------------------------------------------------
175 // Verify Kernel Provider Properties (adapter)
176 // ------------------------------------------------------------------------
177 KernelProviderComponent kernelProvider = (KernelProviderComponent) providers[0];
178
179 adapter = kernelProvider.getAdapter(IPropertySource.class);
180 assertNotNull(adapter);
181 assertTrue(adapter instanceof KernelProviderPropertySource);
182
183 KernelProviderPropertySource kernelSource = (KernelProviderPropertySource)adapter;
184 assertNotNull(kernelSource.getPropertyDescriptors());
185
186 assertEquals("Kernel", kernelSource.getPropertyValue(KernelProviderPropertySource.KERNEL_PROVIDER_NAME_PROPERTY_ID));
187
188 // ------------------------------------------------------------------------
189 // Verify UST Provider Properties (adapter)
190 // ------------------------------------------------------------------------
191 UstProviderComponent ustProvider = (UstProviderComponent) providers[1];
192
193 adapter = ustProvider.getAdapter(IPropertySource.class);
194 assertNotNull(adapter);
195 assertTrue(adapter instanceof UstProviderPropertySource);
196
197 UstProviderPropertySource ustSource = (UstProviderPropertySource)adapter;
198 assertNotNull(ustSource.getPropertyDescriptors());
199
200 assertEquals("/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello [PID=9379]", ustSource.getPropertyValue(UstProviderPropertySource.UST_PROVIDER_NAME_PROPERTY_ID));
201 assertEquals(String.valueOf(9379), ustSource.getPropertyValue(UstProviderPropertySource.UST_PROVIDER_PID_PROPERTY_ID));
202
203 // ------------------------------------------------------------------------
204 // Verify Base Event Properties (adapter)
205 // ------------------------------------------------------------------------
206 ITraceControlComponent[] events = ustProvider.getChildren();
207 assertNotNull(events);
208 assertEquals(2, events.length);
209
210 BaseEventComponent baseEventInfo = (BaseEventComponent) events[0];
211 assertNotNull(baseEventInfo);
212
213 adapter = baseEventInfo.getAdapter(IPropertySource.class);
214 assertNotNull(adapter);
215 assertTrue(adapter instanceof BaseEventPropertySource);
216
217 BaseEventPropertySource baseSource = (BaseEventPropertySource)adapter;
218 assertNotNull(baseSource.getPropertyDescriptors());
219
220 assertEquals("ust_tests_hello:tptest_sighandler", baseSource.getPropertyValue(BaseEventPropertySource.BASE_EVENT_NAME_PROPERTY_ID));
221 assertEquals(TraceEventType.TRACEPOINT.name(), baseSource.getPropertyValue(BaseEventPropertySource.BASE_EVENT_TYPE_PROPERTY_ID));
222 assertEquals(TraceLogLevel.TRACE_DEBUG_MODULE.name(), baseSource.getPropertyValue(BaseEventPropertySource.BASE_EVENT_LOGLEVEL_PROPERTY_ID));
223
224 // ------------------------------------------------------------------------
225 // Verify Session Properties (adapter)
226 // ------------------------------------------------------------------------
227 ITraceControlComponent[] sessions = groups[1].getChildren();
228 assertNotNull(sessions);
229 assertEquals(2, sessions.length);
230
231 TraceSessionComponent session = (TraceSessionComponent)sessions[1];
232
233 adapter = session.getAdapter(IPropertySource.class);
234 assertNotNull(adapter);
235 assertTrue(adapter instanceof TraceSessionPropertySource);
236
237 TraceSessionPropertySource sessionSource = (TraceSessionPropertySource)adapter;
238 assertNotNull(sessionSource.getPropertyDescriptors());
239
240 assertEquals("mysession", sessionSource.getPropertyValue(TraceSessionPropertySource.TRACE_SESSION_NAME_PROPERTY_ID));
241 assertEquals("/home/user/lttng-traces/mysession-20120129-084256", sessionSource.getPropertyValue(TraceSessionPropertySource.TRACE_SESSION_PATH_PROPERTY_ID));
242 assertEquals(TraceSessionState.ACTIVE.name(), sessionSource.getPropertyValue(TraceSessionPropertySource.TRACE_SESSION_STATE_PROPERTY_ID));
243
244 // ------------------------------------------------------------------------
245 // Verify Domain Provider Properties (adapter)
246 // ------------------------------------------------------------------------
247 ITraceControlComponent[] domains = session.getChildren();
248 assertNotNull(domains);
249 assertEquals(2, domains.length);
250
251 TraceDomainComponent domain = (TraceDomainComponent) domains[0];
252 adapter = domain.getAdapter(IPropertySource.class);
253 assertNotNull(adapter);
254 assertTrue(adapter instanceof TraceDomainPropertySource);
255
256 TraceDomainPropertySource domainSource = (TraceDomainPropertySource)adapter;
257 assertNotNull(domainSource.getPropertyDescriptors());
258
259 assertEquals("Kernel", domainSource.getPropertyValue(TraceDomainPropertySource.TRACE_DOMAIN_NAME_PROPERTY_ID));
260
261 ITraceControlComponent[] channels = domains[0].getChildren();
262 assertNotNull(channels);
263 assertEquals(2, channels.length);
264
265 // ------------------------------------------------------------------------
266 // Verify Channel Properties (adapter)
267 // ------------------------------------------------------------------------
268 assertTrue(channels[0] instanceof TraceChannelComponent);
269 TraceChannelComponent channel = (TraceChannelComponent) channels[0];
270
271 adapter = channel.getAdapter(IPropertySource.class);
272 assertNotNull(adapter);
273 assertTrue(adapter instanceof TraceChannelPropertySource);
274
275 TraceChannelPropertySource channelSource = (TraceChannelPropertySource)adapter;
276 assertNotNull(channelSource.getPropertyDescriptors());
277
278 assertEquals("channel0", channelSource.getPropertyValue(TraceChannelPropertySource.TRACE_CHANNEL_NAME_PROPERTY_ID));
279 assertEquals(String.valueOf(4), channelSource.getPropertyValue(TraceChannelPropertySource.TRACE_CHANNEL_NO_SUBBUFFERS_PROPERTY_ID));
280 assertEquals(TraceEnablement.ENABLED.name(), channelSource.getPropertyValue(TraceChannelPropertySource.TRACE_CHANNEL_STATE_PROPERTY_ID));
281 assertEquals(String.valueOf(false), channelSource.getPropertyValue(TraceChannelPropertySource.TRACE_CHANNEL_OVERWRITE_MODE_PROPERTY_ID));
282 assertEquals("splice()", channelSource.getPropertyValue(TraceChannelPropertySource.TRACE_CHANNEL_OUTPUT_TYPE_PROPERTY_ID));
283 assertEquals(String.valueOf(200), channelSource.getPropertyValue(TraceChannelPropertySource.TRACE_CHANNEL_READ_TIMER_PROPERTY_ID));
284 assertEquals(String.valueOf(262144), channelSource.getPropertyValue(TraceChannelPropertySource.TRACE_CHANNEL_SUBBUFFER_SIZE_PROPERTY_ID));
285 assertEquals(String.valueOf(0), channelSource.getPropertyValue(TraceChannelPropertySource.TRACE_CHANNEL_SWITCH_TIMER_PROPERTY_ID));
286
287 // ------------------------------------------------------------------------
288 // Verify Event Properties (adapter)
289 // ------------------------------------------------------------------------
290 ITraceControlComponent[] channel0Events = channel.getChildren();
291 assertNotNull(channel0Events);
292 assertEquals(5, channel0Events.length);
293 assertTrue(channel0Events[0] instanceof TraceEventComponent);
294
295 TraceEventComponent event = (TraceEventComponent) channel0Events[0];
296
297 adapter = event.getAdapter(IPropertySource.class);
298 assertNotNull(adapter);
299 assertTrue(adapter instanceof TraceEventPropertySource);
300
301 TraceEventPropertySource eventSource = (TraceEventPropertySource)adapter;
302 assertNotNull(eventSource.getPropertyDescriptors());
303
304 assertEquals("block_rq_remap", eventSource.getPropertyValue(TraceEventPropertySource.TRACE_EVENT_NAME_PROPERTY_ID));
305 assertEquals(TraceLogLevel.TRACE_EMERG.name(), eventSource.getPropertyValue(TraceEventPropertySource.TRACE_EVENT_LOGLEVEL_PROPERTY_ID));
306 assertEquals(TraceEventType.TRACEPOINT.name(), eventSource.getPropertyValue(TraceEventPropertySource.TRACE_EVENT_TYPE_PROPERTY_ID));
307 assertEquals(TraceEnablement.ENABLED.name(), eventSource.getPropertyValue(TraceEventPropertySource.TRACE_EVENT_STATE_PROPERTY_ID));
308
309 // ------------------------------------------------------------------------
310 // Verify Probe Event Properties (adapter)
311 // ------------------------------------------------------------------------
312 assertTrue(channel0Events[2] instanceof TraceProbeEventComponent);
313
314 TraceProbeEventComponent probeEvent = (TraceProbeEventComponent) channel0Events[2];
315
316 adapter = probeEvent.getAdapter(IPropertySource.class);
317 assertNotNull(adapter);
318 assertTrue(adapter instanceof TraceProbeEventPropertySource);
319
320 TraceProbeEventPropertySource probeEventSource = (TraceProbeEventPropertySource)adapter;
321 assertNotNull(probeEventSource.getPropertyDescriptors());
322 assertEquals(4, probeEventSource.getPropertyDescriptors().length);
323
324 assertEquals("myevent2", probeEventSource.getPropertyValue(TraceEventPropertySource.TRACE_EVENT_NAME_PROPERTY_ID));
325 assertEquals(TraceEventType.PROBE.name(), probeEventSource.getPropertyValue(TraceEventPropertySource.TRACE_EVENT_TYPE_PROPERTY_ID));
326 assertEquals(TraceEnablement.ENABLED.name(), probeEventSource.getPropertyValue(TraceEventPropertySource.TRACE_EVENT_STATE_PROPERTY_ID));
327 assertEquals("0xc0101340", probeEventSource.getPropertyValue(TraceProbeEventPropertySource.TRACE_EVENT_PROBE_ADDRESS_PROPERTY_ID));
328
329 assertTrue(channel0Events[3] instanceof TraceProbeEventComponent);
330
331 probeEvent = (TraceProbeEventComponent) channel0Events[3];
332
333 adapter = probeEvent.getAdapter(IPropertySource.class);
334 assertNotNull(adapter);
335 assertTrue(adapter instanceof TraceProbeEventPropertySource);
336
337 probeEventSource = (TraceProbeEventPropertySource)adapter;
338 assertNotNull(probeEventSource.getPropertyDescriptors());
339 assertEquals(5, probeEventSource.getPropertyDescriptors().length);
340
341 assertEquals("myevent0", probeEventSource.getPropertyValue(TraceEventPropertySource.TRACE_EVENT_NAME_PROPERTY_ID));
342 assertEquals(TraceEventType.PROBE.name(), probeEventSource.getPropertyValue(TraceEventPropertySource.TRACE_EVENT_TYPE_PROPERTY_ID));
343 assertEquals(TraceEnablement.ENABLED.name(), probeEventSource.getPropertyValue(TraceEventPropertySource.TRACE_EVENT_STATE_PROPERTY_ID));
344 assertEquals("0x0", probeEventSource.getPropertyValue(TraceProbeEventPropertySource.TRACE_EVENT_PROBE_OFFSET_PROPERTY_ID));
345 assertEquals("init_post", probeEventSource.getPropertyValue(TraceProbeEventPropertySource.TRACE_EVENT_PROBE_SYMBOL_PROPERTY_ID));
346
347 //-------------------------------------------------------------------------
348 // Delete node
349 //-------------------------------------------------------------------------
350 node.disconnect();
351 node.getParent().removeChild(node);
352 }
353 }
This page took 0.042596 seconds and 6 git commands to generate.