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