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