[TMF] Don't enable OK button in delete supp files dialog unless something is selected
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng2.ui.tests / src / org / eclipse / linuxtools / lttng2 / ui / tests / control / model / component / TraceControlKernelSessionTests.java
CommitLineData
a26d90be 1/**********************************************************************
2ba3d0a1 2 * Copyright (c) 2012, 2013 Ericsson
cfdb727a 3 *
a26d90be
BH
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
cfdb727a
AM
8 *
9 * Contributors:
a26d90be 10 * Bernd Hufmann - Initial API and implementation
2ba3d0a1 11 * Alexandre Montplaisir - Port to JUnit4
a26d90be 12 **********************************************************************/
2ba3d0a1 13
a26d90be
BH
14package org.eclipse.linuxtools.lttng2.ui.tests.control.model.component;
15
2ba3d0a1
AM
16import static org.junit.Assert.assertEquals;
17import static org.junit.Assert.assertNotNull;
18import static org.junit.Assert.assertNull;
19import static org.junit.Assert.assertTrue;
20import static org.junit.Assert.fail;
21
a26d90be
BH
22import java.io.File;
23import java.net.URL;
24import java.util.ArrayList;
25import java.util.List;
26
a26d90be
BH
27import org.eclipse.core.runtime.FileLocator;
28import org.eclipse.core.runtime.Path;
9315aeee
BH
29import org.eclipse.linuxtools.internal.lttng2.core.control.model.TargetNodeState;
30import org.eclipse.linuxtools.internal.lttng2.core.control.model.TraceEnablement;
31import org.eclipse.linuxtools.internal.lttng2.core.control.model.TraceEventType;
32import org.eclipse.linuxtools.internal.lttng2.core.control.model.TraceLogLevel;
33import org.eclipse.linuxtools.internal.lttng2.core.control.model.TraceSessionState;
34import org.eclipse.linuxtools.internal.lttng2.core.control.model.impl.ChannelInfo;
4ea599a5 35import org.eclipse.linuxtools.internal.lttng2.stubs.dialogs.AddContextDialogStub;
a26d90be
BH
36import org.eclipse.linuxtools.internal.lttng2.stubs.dialogs.CreateSessionDialogStub;
37import org.eclipse.linuxtools.internal.lttng2.stubs.dialogs.DestroyConfirmDialogStub;
8577ed1e 38import org.eclipse.linuxtools.internal.lttng2.stubs.dialogs.EnableChannelDialogStub;
a26d90be
BH
39import org.eclipse.linuxtools.internal.lttng2.stubs.dialogs.EnableEventsDialogStub;
40import org.eclipse.linuxtools.internal.lttng2.stubs.dialogs.GetEventInfoDialogStub;
41import org.eclipse.linuxtools.internal.lttng2.stubs.service.TestRemoteSystemProxy;
42import org.eclipse.linuxtools.internal.lttng2.ui.views.control.dialogs.TraceControlDialogFactory;
43import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.ITraceControlComponent;
a26d90be
BH
44import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TargetNodeComponent;
45import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceChannelComponent;
46import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceEventComponent;
47import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceProbeEventComponent;
48import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceSessionComponent;
8577ed1e 49import org.eclipse.rse.core.RSECorePlugin;
a26d90be 50import org.eclipse.rse.core.model.IHost;
8577ed1e
BH
51import org.eclipse.rse.core.model.ISystemProfile;
52import org.eclipse.rse.core.model.ISystemRegistry;
a26d90be
BH
53import org.junit.After;
54import org.junit.Before;
2ba3d0a1 55import org.junit.Test;
9269df72 56import org.osgi.framework.FrameworkUtil;
a26d90be
BH
57
58/**
2ba3d0a1
AM
59 * The class <code>TraceControlKernelSessionTests</code> contains Kernel
60 * session/channel/event handling test cases.
a26d90be 61 */
2ba3d0a1 62public class TraceControlKernelSessionTests {
cfdb727a 63
a26d90be
BH
64 // ------------------------------------------------------------------------
65 // Constants
66 // ------------------------------------------------------------------------
2ba3d0a1 67
a26d90be
BH
68 private static final String TEST_STREAM = "CreateTreeTest.cfg";
69 private static final String SCEN_SCENARIO3_TEST = "Scenario3";
70
71 // ------------------------------------------------------------------------
72 // Test data
73 // ------------------------------------------------------------------------
2ba3d0a1 74
a26d90be
BH
75 private TraceControlTestFacility fFacility;
76 private TestRemoteSystemProxy fProxy;
cfdb727a
AM
77 private String fTestFile;
78
a26d90be
BH
79 // ------------------------------------------------------------------------
80 // Housekeeping
81 // ------------------------------------------------------------------------
82
83 /**
84 * Perform pre-test initialization.
85 *
86 * @throws Exception
87 * if the initialization fails for some reason
a26d90be 88 */
a26d90be
BH
89 @Before
90 public void setUp() throws Exception {
91 fFacility = TraceControlTestFacility.getInstance();
1c3c5807 92 fFacility.init();
a26d90be 93 fProxy = new TestRemoteSystemProxy();
9269df72 94 URL location = FileLocator.find(FrameworkUtil.getBundle(this.getClass()), new Path(TraceControlTestFacility.DIRECTORY + File.separator + TEST_STREAM), null);
a26d90be
BH
95 File testfile = new File(FileLocator.toFileURL(location).toURI());
96 fTestFile = testfile.getAbsolutePath();
97 }
98
99 /**
100 * Perform post-test clean-up.
a26d90be 101 */
a26d90be 102 @After
2ba3d0a1 103 public void tearDown() {
b957fb8c 104 fFacility.waitForJobs();
1c3c5807 105 fFacility.dispose();
a26d90be 106 }
cfdb727a 107
a26d90be
BH
108 /**
109 * Run the TraceControlComponent.
2ba3d0a1
AM
110 *
111 * @throws Exception
112 * Would fail the test
a26d90be 113 */
2ba3d0a1 114 @Test
a26d90be 115 public void testTraceSessionTree() throws Exception {
cfdb727a 116
a26d90be
BH
117 fProxy.setTestFile(fTestFile);
118 fProxy.setScenario(TraceControlTestFacility.SCEN_INIT_TEST);
cfdb727a 119
1c3c5807 120 ITraceControlComponent root = fFacility.getControlView().getTraceControlRoot();
a26d90be 121
8577ed1e
BH
122 ISystemRegistry registry = RSECorePlugin.getTheSystemRegistry();
123 ISystemProfile profile = registry.createSystemProfile("myProfile", true);
124 IHost host = registry.createLocalHost(profile, "myProfile", "user");
a26d90be
BH
125
126 TargetNodeComponent node = new TargetNodeComponent("myNode", root, host, fProxy);
127
128 root.addChild(node);
a26d90be
BH
129 fFacility.waitForJobs();
130
b957fb8c
BH
131 fFacility.executeCommand(node, "connect");
132 int i = 0;
133 while ((i < 10) && (node.getTargetNodeState() != TargetNodeState.CONNECTED)) {
134 i++;
135 fFacility.delay(TraceControlTestFacility.GUI_REFESH_DELAY);
136 }
137
a26d90be
BH
138 // Verify that node is connected
139 assertEquals(TargetNodeState.CONNECTED, node.getTargetNodeState());
140
141 // Get provider groups
142 ITraceControlComponent[] groups = node.getChildren();
143 assertNotNull(groups);
144 assertEquals(2, groups.length);
145
146 // Initialize dialog implementations for command execution
147 TraceControlDialogFactory.getInstance().setCreateSessionDialog(new CreateSessionDialogStub());
148 TraceControlDialogFactory.getInstance().setGetEventInfoDialog(new GetEventInfoDialogStub());
149 TraceControlDialogFactory.getInstance().setConfirmDialog(new DestroyConfirmDialogStub());
cfdb727a 150
a26d90be
BH
151 // Initialize session handling scenario
152 fProxy.setScenario(TraceControlTestFacility.SCEN_SCENARIO_SESSION_HANDLING);
cfdb727a 153
a26d90be
BH
154 // ------------------------------------------------------------------------
155 // Create session
156 // ------------------------------------------------------------------------
157 TraceSessionComponent session = fFacility.createSession(groups[1]);
cfdb727a 158
a26d90be
BH
159 // Verify that session was created
160 assertNotNull(session);
161 assertEquals("mysession", session.getName());
162 assertEquals("/home/user/lttng-traces/mysession-20120314-132824", session.getSessionPath());
163 assertEquals(TraceSessionState.INACTIVE, session.getSessionState());
164
165 // Initialize scenario
166 fProxy.setScenario(SCEN_SCENARIO3_TEST);
cfdb727a 167
a26d90be 168 // ------------------------------------------------------------------------
d62bfa55 169 // Enable channel on session
a26d90be 170 // ------------------------------------------------------------------------
d62bfa55 171 EnableChannelDialogStub channelStub = new EnableChannelDialogStub();
a26d90be 172 channelStub.setIsKernel(true);
d62bfa55 173 TraceControlDialogFactory.getInstance().setEnableChannelDialog(channelStub);
a26d90be 174
d62bfa55 175 fFacility.executeCommand(session, "enableChannelOnSession");
cfdb727a 176
a26d90be
BH
177 // Verify that Kernel domain was created
178 ITraceControlComponent[] domains = session.getChildren();
179 assertNotNull(domains);
180 assertEquals(1, domains.length);
181
182 assertEquals("Kernel", domains[0].getName());
cfdb727a 183
a26d90be
BH
184 // Verify that channel was created with correct data
185 ITraceControlComponent[] channels = domains[0].getChildren();
186 assertNotNull(channels);
187 assertEquals(1, channels.length);
188
189 assertTrue(channels[0] instanceof TraceChannelComponent);
cfdb727a 190 TraceChannelComponent channel = (TraceChannelComponent) channels[0];
a26d90be
BH
191 assertEquals("mychannel", channel.getName());
192 assertEquals(4, channel.getNumberOfSubBuffers());
193 assertEquals("splice()", channel.getOutputType());
194 assertEquals(true, channel.isOverwriteMode());
195 assertEquals(200, channel.getReadTimer());
196 assertEquals(TraceEnablement.ENABLED, channel.getState());
197 assertEquals(16384, channel.getSubBufferSize());
198 assertEquals(100, channel.getSwitchTimer());
199
200 // ------------------------------------------------------------------------
201 // Create channel on domain
202 // ------------------------------------------------------------------------
203 ChannelInfo info = (ChannelInfo)channelStub.getChannelInfo();
204 info.setName("mychannel2");
205 info.setOverwriteMode(false);
206 info.setSubBufferSize(32768);
207 info.setNumberOfSubBuffers(2);
208 info.setSwitchTimer(100);
209 info.setReadTimer(200);
210 channelStub.setChannelInfo(info);
cfdb727a 211
d62bfa55 212 fFacility.executeCommand(domains[0], "enableChannelOnDomain");
cfdb727a 213
a26d90be
BH
214 // Get Kernel domain component instance
215 domains = session.getChildren();
216 assertNotNull(domains);
217 assertEquals(1, domains.length);
218
219 // Verify that channel was created with correct data
220 channels = domains[0].getChildren();
221 assertNotNull(channels);
222 assertEquals(2, channels.length);
223
224 assertTrue(channels[1] instanceof TraceChannelComponent);
cfdb727a 225 channel = (TraceChannelComponent) channels[1];
a26d90be
BH
226 assertEquals("mychannel2", channel.getName());
227 assertEquals(2, channel.getNumberOfSubBuffers());
228 assertEquals("splice()", channel.getOutputType());
229 assertEquals(false, channel.isOverwriteMode());
230 assertEquals(200, channel.getReadTimer());
231 assertEquals(TraceEnablement.ENABLED, channel.getState());
232 assertEquals(32768, channel.getSubBufferSize());
233 assertEquals(100, channel.getSwitchTimer());
234
235 EnableEventsDialogStub eventsDialogStub = new EnableEventsDialogStub();
236 eventsDialogStub.setIsTracePoints(true);
237 List<String> events = new ArrayList<String>();
238 events.add("sched_kthread_stop");
239 events.add("sched_kthread_stop_ret");
240 eventsDialogStub.setNames(events);
241 eventsDialogStub.setIsKernel(true);
242 TraceControlDialogFactory.getInstance().setEnableEventsDialog(eventsDialogStub);
cfdb727a 243
a26d90be 244 // ------------------------------------------------------------------------
cfdb727a 245 // disable channels
a26d90be
BH
246 // ------------------------------------------------------------------------
247 // Get Kernel domain component instance
248 domains = session.getChildren();
249 assertNotNull(domains);
250 assertEquals(1, domains.length);
251
252 // Verify that channel was created with correct data
253 channels = domains[0].getChildren();
254 assertNotNull(channels);
255 assertEquals(2, channels.length);
256
257 fFacility.executeCommand(channels, "disableChannel");
cfdb727a 258
a26d90be
BH
259 assertEquals(TraceEnablement.DISABLED, ((TraceChannelComponent)channels[0]).getState());
260 assertEquals(TraceEnablement.DISABLED, ((TraceChannelComponent)channels[1]).getState());
261
262 // ------------------------------------------------------------------------
cfdb727a 263 // enable channels
a26d90be
BH
264 // ------------------------------------------------------------------------
265 // Get Kernel domain component instance
266 domains = session.getChildren();
267 assertNotNull(domains);
268 assertEquals(1, domains.length);
269
270 // Verify that channel was created with correct data
271 channels = domains[0].getChildren();
272 assertNotNull(channels);
273 assertEquals(2, channels.length);
cfdb727a 274
a26d90be 275 fFacility.executeCommand(channels, "enableChannel");
cfdb727a 276
a26d90be
BH
277 assertEquals(TraceEnablement.ENABLED, ((TraceChannelComponent)channels[0]).getState());
278 assertEquals(TraceEnablement.ENABLED, ((TraceChannelComponent)channels[1]).getState());
279
280 // ------------------------------------------------------------------------
cfdb727a 281 // enable event (tracepoints) on session
a26d90be
BH
282 // ------------------------------------------------------------------------
283 fFacility.executeCommand(session, "enableEventOnSession");
284
285 // Get Kernel domain component instance
286 domains = session.getChildren();
287 assertNotNull(domains);
288 assertEquals(1, domains.length);
289
290 // Verify that channel was created with correct data
291 channels = domains[0].getChildren();
292 assertNotNull(channels);
293 assertEquals(3, channels.length);
294
295 assertTrue(channels[2] instanceof TraceChannelComponent);
cfdb727a 296 channel = (TraceChannelComponent) channels[2];
a26d90be
BH
297 assertEquals("channel0", channel.getName());
298 // No need to check parameters of default channel because that has been done in other tests
299
300 ITraceControlComponent[] channel0Events = channel.getChildren();
301 assertEquals(2, channel0Events.length);
cfdb727a 302
a26d90be
BH
303 assertTrue(channel0Events[0] instanceof TraceEventComponent);
304 assertTrue(channel0Events[1] instanceof TraceEventComponent);
305
306 TraceEventComponent event = (TraceEventComponent) channel0Events[0];
307 assertEquals("sched_kthread_stop_ret", event.getName());
308 assertEquals(TraceLogLevel.TRACE_EMERG, event.getLogLevel());
309 assertEquals(TraceEventType.TRACEPOINT, event.getEventType());
310 assertEquals(TraceEnablement.ENABLED, event.getState());
311
312 event = (TraceEventComponent) channel0Events[1];
313 assertEquals("sched_kthread_stop", event.getName());
314 assertEquals(TraceLogLevel.TRACE_EMERG, event.getLogLevel());
315 assertEquals(TraceEventType.TRACEPOINT, event.getEventType());
316 assertEquals(TraceEnablement.ENABLED, event.getState());
317
318 // ------------------------------------------------------------------------
cfdb727a 319 // enable event (tracepoints) on domain
a26d90be
BH
320 // ------------------------------------------------------------------------
321 events.clear();
322 events.add("sched_wakeup_new");
323 eventsDialogStub.setNames(events);
324
325 fFacility.executeCommand(domains[0], "enableEventOnDomain");
326
327 // Get Kernel domain component instance
328 domains = session.getChildren();
329 assertNotNull(domains);
330 assertEquals(1, domains.length);
331
332 // Verify that channel was created with correct data
333 channels = domains[0].getChildren();
cfdb727a 334 channel = (TraceChannelComponent) channels[2];
a26d90be
BH
335 // No need to check parameters of default channel because that has been done in other tests
336
337 channel = (TraceChannelComponent) channels[2];
cfdb727a 338
a26d90be
BH
339 channel0Events = channel.getChildren();
340 assertEquals(3, channel0Events.length);
cfdb727a 341
a26d90be
BH
342 assertTrue(channel0Events[2] instanceof TraceEventComponent);
343
344 event = (TraceEventComponent) channel0Events[2];
345 assertEquals("sched_wakeup_new", event.getName());
346 assertEquals(TraceLogLevel.TRACE_EMERG, event.getLogLevel());
347 assertEquals(TraceEventType.TRACEPOINT, event.getEventType());
348 assertEquals(TraceEnablement.ENABLED, event.getState());
349
350 // ------------------------------------------------------------------------
cfdb727a 351 // enable event (tracepoints) on channel
a26d90be
BH
352 // ------------------------------------------------------------------------
353 events.clear();
354 eventsDialogStub.setNames(events);
355 eventsDialogStub.setIsAllTracePoints(true);
356
357 fFacility.executeCommand(channels[1], "enableEventOnChannel");
cfdb727a 358
a26d90be
BH
359 // Get Kernel domain component instance
360 domains = session.getChildren();
361 assertNotNull(domains);
362 assertEquals(1, domains.length);
363
364 // Verify that channel was created with correct data
365 channels = domains[0].getChildren();
366 // No need to check parameters of default channel because that has been done in other tests
367 channel = (TraceChannelComponent) channels[1];
cfdb727a 368
a26d90be
BH
369 channel0Events = channel.getChildren();
370 assertEquals(3, channel0Events.length);
cfdb727a 371
a26d90be
BH
372 assertTrue(channel0Events[0] instanceof TraceEventComponent);
373 assertTrue(channel0Events[1] instanceof TraceEventComponent);
374 assertTrue(channel0Events[2] instanceof TraceEventComponent);
375
376 event = (TraceEventComponent) channel0Events[0];
377 assertEquals("sched_kthread_stop_ret", event.getName());
378 assertEquals(TraceLogLevel.TRACE_EMERG, event.getLogLevel());
379 assertEquals(TraceEventType.TRACEPOINT, event.getEventType());
380 assertEquals(TraceEnablement.ENABLED, event.getState());
381
382 event = (TraceEventComponent) channel0Events[1];
383 assertEquals("sched_kthread_stop", event.getName());
384 assertEquals(TraceLogLevel.TRACE_EMERG, event.getLogLevel());
385 assertEquals(TraceEventType.TRACEPOINT, event.getEventType());
386 assertEquals(TraceEnablement.ENABLED, event.getState());
cfdb727a 387
a26d90be
BH
388 event = (TraceEventComponent) channel0Events[2];
389 assertEquals("sched_wakeup_new", event.getName());
390 assertEquals(TraceLogLevel.TRACE_EMERG, event.getLogLevel());
391 assertEquals(TraceEventType.TRACEPOINT, event.getEventType());
392 assertEquals(TraceEnablement.ENABLED, event.getState());
393
394 // ------------------------------------------------------------------------
cfdb727a 395 // enable event (syscall) on channel
a26d90be
BH
396 // ------------------------------------------------------------------------
397 events.clear();
cfdb727a 398 eventsDialogStub.setIsTracePoints(false);
a26d90be
BH
399 eventsDialogStub.setIsAllTracePoints(false);
400 eventsDialogStub.setIsSysCalls(true);
401
402 fFacility.executeCommand(channels[0], "enableEventOnChannel");
cfdb727a 403
a26d90be
BH
404 // Get Kernel domain component instance
405 domains = session.getChildren();
406 assertNotNull(domains);
407 assertEquals(1, domains.length);
408
409 // Verify that channel was created with correct data
410 channels = domains[0].getChildren();
cfdb727a 411 channel = (TraceChannelComponent) channels[0];
a26d90be
BH
412 // No need to check parameters of default channel because that has been done in other tests
413
414 channel = (TraceChannelComponent) channels[0];
cfdb727a 415
a26d90be
BH
416 channel0Events = channel.getChildren();
417 assertEquals(1, channel0Events.length);
cfdb727a 418
a26d90be 419 assertTrue(channel0Events[0] instanceof TraceEventComponent);
cfdb727a 420
a26d90be
BH
421 event = (TraceEventComponent) channel0Events[0];
422 assertEquals("syscalls", event.getName());
423 assertEquals(TraceLogLevel.LEVEL_UNKNOWN, event.getLogLevel());
424 assertEquals(TraceEventType.SYSCALL, event.getEventType());
425 assertEquals(TraceEnablement.ENABLED, event.getState());
426
427 // ------------------------------------------------------------------------
cfdb727a 428 // enable event (syscall) on domain
a26d90be
BH
429 // ------------------------------------------------------------------------
430 fFacility.executeCommand(domains[0], "enableEventOnDomain");
431
432 // Get Kernel domain component instance
433 domains = session.getChildren();
434 assertNotNull(domains);
435 assertEquals(1, domains.length);
436
437 // Verify that channel was created with correct data
438 channels = domains[0].getChildren();
cfdb727a 439 channel = (TraceChannelComponent) channels[0];
a26d90be
BH
440 // No need to check parameters of default channel because that has been done in other tests
441
442 channel = (TraceChannelComponent) channels[2];
cfdb727a 443
a26d90be
BH
444 channel0Events = channel.getChildren();
445 assertEquals(4, channel0Events.length);
cfdb727a 446
a26d90be 447 assertTrue(channel0Events[0] instanceof TraceEventComponent);
cfdb727a 448
a26d90be
BH
449 event = (TraceEventComponent) channel0Events[0];
450 assertEquals("syscalls", event.getName());
451 assertEquals(TraceLogLevel.LEVEL_UNKNOWN, event.getLogLevel());
452 assertEquals(TraceEventType.SYSCALL, event.getEventType());
453 assertEquals(TraceEnablement.ENABLED, event.getState());
454
455 // ------------------------------------------------------------------------
cfdb727a 456 // enable event (syscall) on session
a26d90be
BH
457 // ------------------------------------------------------------------------
458 fFacility.executeCommand(session, "enableEventOnSession");
459
460 // Get Kernel domain component instance
461 domains = session.getChildren();
462 assertNotNull(domains);
463 assertEquals(1, domains.length);
464
465 // Verify that channel was created with correct data
466 channels = domains[0].getChildren();
cfdb727a 467 channel = (TraceChannelComponent) channels[0];
a26d90be
BH
468 // No need to check parameters of default channel because that has been done in other tests
469
470 channel = (TraceChannelComponent) channels[2];
cfdb727a 471
a26d90be
BH
472 channel0Events = channel.getChildren();
473 assertEquals(4, channel0Events.length);
cfdb727a 474
a26d90be 475 assertTrue(channel0Events[0] instanceof TraceEventComponent);
cfdb727a 476
a26d90be
BH
477 event = (TraceEventComponent) channel0Events[0];
478 assertEquals("syscalls", event.getName());
479 assertEquals(TraceLogLevel.LEVEL_UNKNOWN, event.getLogLevel());
480 assertEquals(TraceEventType.SYSCALL, event.getEventType());
481 assertEquals(TraceEnablement.ENABLED, event.getState());
482
cfdb727a 483
a26d90be 484 // ------------------------------------------------------------------------
cfdb727a 485 // enable event (dynamic probe) on domain
a26d90be
BH
486 // ------------------------------------------------------------------------
487 events.clear();
488 eventsDialogStub.setIsSysCalls(false);
489 eventsDialogStub.setIsDynamicProbe(true);
490 eventsDialogStub.setDynamicProbe("0xc0101280");
491 eventsDialogStub.setProbeEventName("myevent1");
cfdb727a 492
a26d90be 493 fFacility.executeCommand(domains[0], "enableEventOnDomain");
cfdb727a 494
a26d90be
BH
495 // Get Kernel domain component instance
496 domains = session.getChildren();
497 assertNotNull(domains);
498 assertEquals(1, domains.length);
499
500 // Verify that channel was created with correct data
501 channels = domains[0].getChildren();
cfdb727a 502 channel = (TraceChannelComponent) channels[2];
a26d90be
BH
503 // No need to check parameters of default channel because that has been done in other tests
504
505 channel0Events = channel.getChildren();
506 assertEquals(5, channel0Events.length);
cfdb727a 507
a26d90be 508 assertTrue(channel0Events[0] instanceof TraceProbeEventComponent);
cfdb727a 509
a26d90be
BH
510 TraceProbeEventComponent probeEvent = (TraceProbeEventComponent) channel0Events[0];
511 assertEquals("myevent1", probeEvent.getName());
512 assertEquals(TraceLogLevel.LEVEL_UNKNOWN, probeEvent.getLogLevel());
513 assertEquals(TraceEventType.PROBE, probeEvent.getEventType());
514 assertEquals(TraceEnablement.ENABLED, probeEvent.getState());
515 assertNull(probeEvent.getOffset());
516 assertEquals("0xc0101280", probeEvent.getAddress());
517 assertNull(probeEvent.getSymbol());
518
519 // ------------------------------------------------------------------------
cfdb727a 520 // enable event (dynamic probe) on channel
a26d90be
BH
521 // ------------------------------------------------------------------------
522 eventsDialogStub.setIsDynamicProbe(true);
523 eventsDialogStub.setDynamicProbe("init_post");
524 eventsDialogStub.setProbeEventName("myevent2");
525
526 fFacility.executeCommand(channels[2], "enableEventOnChannel");
cfdb727a 527
a26d90be
BH
528 // Get Kernel domain component instance
529 domains = session.getChildren();
530 assertNotNull(domains);
531 assertEquals(1, domains.length);
532
533 // Verify that channel was created with correct data
534 channels = domains[0].getChildren();
cfdb727a 535 channel = (TraceChannelComponent) channels[2];
a26d90be
BH
536 // No need to check parameters of default channel because that has been done in other tests
537
538 channel0Events = channel.getChildren();
539 assertEquals(6, channel0Events.length);
cfdb727a 540
a26d90be 541 assertTrue(channel0Events[0] instanceof TraceProbeEventComponent);
cfdb727a 542
a26d90be
BH
543 probeEvent = (TraceProbeEventComponent) channel0Events[0];
544 assertEquals("myevent2", probeEvent.getName());
545 assertEquals(TraceLogLevel.LEVEL_UNKNOWN, probeEvent.getLogLevel());
546 assertEquals(TraceEventType.PROBE, probeEvent.getEventType());
547 assertEquals(TraceEnablement.ENABLED, probeEvent.getState());
548 assertEquals("0x0", probeEvent.getOffset());
549 assertNull(null, probeEvent.getAddress());
550 assertEquals("init_post", probeEvent.getSymbol());
551
552 // ------------------------------------------------------------------------
cfdb727a 553 // enable event (dynamic probe) on session
a26d90be
BH
554 // ------------------------------------------------------------------------
555 eventsDialogStub.setIsDynamicProbe(true);
556 eventsDialogStub.setDynamicProbe("init_post:0x1000");
557 eventsDialogStub.setProbeEventName("myevent3");
558
559 fFacility.executeCommand(session, "enableEventOnSession");
cfdb727a 560
a26d90be
BH
561 // Get Kernel domain component instance
562 domains = session.getChildren();
563 assertNotNull(domains);
564 assertEquals(1, domains.length);
565
566 // Verify that channel was created with correct data
567 channels = domains[0].getChildren();
cfdb727a 568 channel = (TraceChannelComponent) channels[2];
a26d90be
BH
569 // No need to check parameters of default channel because that has been done in other tests
570
571 channel0Events = channel.getChildren();
572 assertEquals(7, channel0Events.length);
573
574 assertTrue(channel0Events[0] instanceof TraceProbeEventComponent);
575
576 probeEvent = (TraceProbeEventComponent) channel0Events[0];
577 assertEquals("myevent3", probeEvent.getName());
578 assertEquals(TraceLogLevel.LEVEL_UNKNOWN, probeEvent.getLogLevel());
579 assertEquals(TraceEventType.PROBE, probeEvent.getEventType());
580 assertEquals(TraceEnablement.ENABLED, probeEvent.getState());
581 assertEquals("0x1000", probeEvent.getOffset());
582 assertNull(null, probeEvent.getAddress());
583 assertEquals("init_post", probeEvent.getSymbol());
cfdb727a 584
a26d90be
BH
585 // ------------------------------------------------------------------------
586 // enable event (dynamic function probe) on session
587 // ------------------------------------------------------------------------
588 eventsDialogStub.setIsDynamicProbe(false);
589 eventsDialogStub.setDynamicProbe(null);
590 eventsDialogStub.setProbeEventName(null);
591 eventsDialogStub.setIsFunctionProbe(true);
592 eventsDialogStub.setFunctionEventName("myevent4");
593 eventsDialogStub.setFunctionProbe("create_dev");
594
595 fFacility.executeCommand(session, "enableEventOnSession");
cfdb727a 596
a26d90be
BH
597 // Get Kernel domain component instance
598 domains = session.getChildren();
599 assertNotNull(domains);
600 assertEquals(1, domains.length);
601
602 // Verify that channel was created with correct data
603 channels = domains[0].getChildren();
cfdb727a 604 channel = (TraceChannelComponent) channels[2];
a26d90be
BH
605 // No need to check parameters of default channel because that has been done in other tests
606
607 channel0Events = channel.getChildren();
608 assertEquals(8, channel0Events.length);
609
610 assertTrue(channel0Events[0] instanceof TraceProbeEventComponent);
611
612 probeEvent = (TraceProbeEventComponent) channel0Events[0];
613 assertEquals("myevent4", probeEvent.getName());
614 assertEquals(TraceLogLevel.LEVEL_UNKNOWN, probeEvent.getLogLevel());
615 assertEquals(TraceEventType.PROBE, probeEvent.getEventType());
616 assertEquals(TraceEnablement.ENABLED, probeEvent.getState());
617 assertEquals("0x0", probeEvent.getOffset());
618 assertNull(null, probeEvent.getAddress());
619 assertEquals("create_dev", probeEvent.getSymbol());
cfdb727a 620
a26d90be
BH
621 // ------------------------------------------------------------------------
622 // enable event (dynamic function probe) on domain
623 // ------------------------------------------------------------------------
624 eventsDialogStub.setIsFunctionProbe(true);
625 eventsDialogStub.setFunctionEventName("myevent5");
626 eventsDialogStub.setFunctionProbe("create_dev:0x2000");
627
628 fFacility.executeCommand(domains[0], "enableEventOnDomain");
cfdb727a 629
a26d90be
BH
630 // Get Kernel domain component instance
631 domains = session.getChildren();
632 assertNotNull(domains);
633 assertEquals(1, domains.length);
634
635 // Verify that channel was created with correct data
636 channels = domains[0].getChildren();
cfdb727a 637 channel = (TraceChannelComponent) channels[2];
a26d90be
BH
638 // No need to check parameters of default channel because that has been done in other tests
639
640 channel0Events = channel.getChildren();
641 assertEquals(9, channel0Events.length);
642
643 assertTrue(channel0Events[0] instanceof TraceProbeEventComponent);
644
645 probeEvent = (TraceProbeEventComponent) channel0Events[0];
646 assertEquals("myevent5", probeEvent.getName());
647 assertEquals(TraceLogLevel.LEVEL_UNKNOWN, probeEvent.getLogLevel());
648 assertEquals(TraceEventType.PROBE, probeEvent.getEventType());
649 assertEquals(TraceEnablement.ENABLED, probeEvent.getState());
650 assertEquals("0x2000", probeEvent.getOffset());
651 assertNull(null, probeEvent.getAddress());
652 assertEquals("create_dev", probeEvent.getSymbol());
653
654 // ------------------------------------------------------------------------
655 // enable event (dynamic function probe) on channel
656 // ------------------------------------------------------------------------
657 eventsDialogStub.setIsFunctionProbe(true);
658 eventsDialogStub.setFunctionEventName("myevent");
659 eventsDialogStub.setFunctionProbe("create_dev:0x2000");
660
661 fFacility.executeCommand(channels[0], "enableEventOnChannel");
cfdb727a 662
a26d90be
BH
663 // Get Kernel domain component instance
664 domains = session.getChildren();
665 assertNotNull(domains);
666 assertEquals(1, domains.length);
667
668 // Verify that channel was created with correct data
669 channels = domains[0].getChildren();
cfdb727a 670 channel = (TraceChannelComponent) channels[0];
a26d90be
BH
671 // No need to check parameters of default channel because that has been done in other tests
672
673 channel0Events = channel.getChildren();
674 assertEquals(2, channel0Events.length);
675
676 assertTrue(channel0Events[0] instanceof TraceProbeEventComponent);
677
678 probeEvent = (TraceProbeEventComponent) channel0Events[0];
679 assertEquals("myevent", probeEvent.getName());
680 assertEquals(TraceLogLevel.LEVEL_UNKNOWN, probeEvent.getLogLevel());
681 assertEquals(TraceEventType.PROBE, probeEvent.getEventType());
682 assertEquals(TraceEnablement.ENABLED, probeEvent.getState());
683 assertEquals("0x2000", probeEvent.getOffset());
684 assertNull(null, probeEvent.getAddress());
685 assertEquals("create_dev", probeEvent.getSymbol());
4ea599a5
BH
686
687 // ------------------------------------------------------------------------
cfdb727a 688 // Add Context on domain
4ea599a5
BH
689 // ------------------------------------------------------------------------
690 // Get Kernel domain component instance
691 domains = session.getChildren();
692 assertNotNull(domains);
693 assertEquals(1, domains.length);
694
695 AddContextDialogStub addContextStub = new AddContextDialogStub();
696 List<String> contexts = new ArrayList<String>();
697 contexts.add("prio");
698 contexts.add("perf:branch-misses");
699 contexts.add("perf:cache-misses");
700 addContextStub.setContexts(contexts);
701 TraceControlDialogFactory.getInstance().setAddContextDialog(addContextStub);
cfdb727a 702
4ea599a5
BH
703 fFacility.executeCommand(domains[0], "addContextOnDomain");
704 // Currently there is nothing to verify because the list commands don't show any context information
705 // However, the execution of the command make sure that the correct service command line is build and executed.
706
707 // ------------------------------------------------------------------------
cfdb727a 708 // Add Context on channel
4ea599a5
BH
709 // ------------------------------------------------------------------------
710
711 // Get Kernel domain component instance
712 domains = session.getChildren();
713 assertNotNull(domains);
714 assertEquals(1, domains.length);
715
716 //Verify that channel was created with correct data
717 channels = domains[0].getChildren();
cfdb727a
AM
718 channel = (TraceChannelComponent) channels[0];
719
4ea599a5
BH
720 try {
721 // The setContext() verifies that the contexts set are part of the available contexts
722 // The available contexts are set by the command handler addContextOnDomain above.
723 // So we indirectly test here that the parsing and setting of available contexts were
724 // done correctly above.
725 addContextStub.setContexts(contexts);
726 } catch (IllegalArgumentException e) {
727 fail("Exception caught - unknown context");
728 }
729
730 fFacility.executeCommand(channel, "addContextOnChannel");
731 // Currently there is nothing to verify because the list commands don't show any context information
732 // However, the execution of the command make sure that the correct service command line is build and executed.
cfdb727a 733
4ea599a5 734 // ------------------------------------------------------------------------
cfdb727a 735 // Add Context on event
4ea599a5
BH
736 // ------------------------------------------------------------------------
737 // Get Kernel domain component instance
738 domains = session.getChildren();
739 assertNotNull(domains);
740 assertEquals(1, domains.length);
741
742 //Verify that channel was created with correct data
743 channels = domains[0].getChildren();
cfdb727a
AM
744 channel = (TraceChannelComponent) channels[2];
745
4ea599a5
BH
746 channel0Events = channel.getChildren();
747
748 event = (TraceEventComponent) channel0Events[6];
cfdb727a 749
4ea599a5
BH
750 fFacility.executeCommand(event, "addContextOnEvent");
751 // Currently there is nothing to verify because the list commands don't show any context information
cfdb727a 752 // However, the execution of the command make sure that the correct service command line is build and executed.
4ea599a5
BH
753
754 // ------------------------------------------------------------------------
cfdb727a 755 // Calibrate
4ea599a5
BH
756 // ------------------------------------------------------------------------
757 // Get Kernel domain component instance
758 domains = session.getChildren();
759 assertNotNull(domains);
760 assertEquals(1, domains.length);
cfdb727a 761
4ea599a5 762 fFacility.executeCommand(domains[0], "calibrate");
cfdb727a 763 // There is nothing to verify here.
4ea599a5 764 // However, the execution of the command make sure that the correct service command line is build and executed.
cfdb727a 765
a26d90be 766 // ------------------------------------------------------------------------
cfdb727a 767 // refresh
a26d90be
BH
768 // ------------------------------------------------------------------------
769 fFacility.executeCommand(node, "refresh");
770 groups = node.getChildren();
771 assertNotNull(groups);
772 assertEquals(2, groups.length);
773 assertEquals(3, groups[0].getChildren().length); // provider
774 assertEquals(1, groups[1].getChildren().length); // sessions
775 assertEquals(1, groups[1].getChildren()[0].getChildren().length); // domains
776 assertEquals(3, groups[1].getChildren()[0].getChildren()[0].getChildren().length); // channels
777 assertEquals(2, groups[1].getChildren()[0].getChildren()[0].getChildren()[0].getChildren().length); // events (of channel[0])
cfdb727a 778
a26d90be
BH
779 // Initialize session handling scenario
780 fProxy.setScenario(TraceControlTestFacility.SCEN_SCENARIO_SESSION_HANDLING);
cfdb727a 781
a26d90be 782 session = (TraceSessionComponent)groups[1].getChildren()[0];
4ea599a5 783
a26d90be 784 // ------------------------------------------------------------------------
cfdb727a 785 // start session
a26d90be
BH
786 // ------------------------------------------------------------------------
787 fFacility.startSession(session);
788 assertEquals(TraceSessionState.ACTIVE, session.getSessionState());
cfdb727a 789
a26d90be 790 // ------------------------------------------------------------------------
cfdb727a 791 // stop session
a26d90be
BH
792 // ------------------------------------------------------------------------
793 fFacility.stopSession(session);
794 assertEquals(TraceSessionState.INACTIVE, session.getSessionState());
cfdb727a 795
a26d90be 796 // ------------------------------------------------------------------------
cfdb727a 797 // Destroy session
a26d90be
BH
798 // ------------------------------------------------------------------------
799
800 fFacility.destroySession(session);
cfdb727a 801
a26d90be
BH
802 // Verify that no more session components exist
803 assertEquals(0, groups[1].getChildren().length);
804
805 //-------------------------------------------------------------------------
806 // Disconnect node
807 //-------------------------------------------------------------------------
808 fFacility.executeCommand(node, "disconnect");
809 assertEquals(TargetNodeState.DISCONNECTED, node.getTargetNodeState());
cfdb727a 810
a26d90be
BH
811 //-------------------------------------------------------------------------
812 // Delete node
813 //-------------------------------------------------------------------------
cfdb727a 814
a26d90be
BH
815 fFacility.executeCommand(node, "delete");
816 assertEquals(0,fFacility.getControlView().getTraceControlRoot().getChildren().length);
817 }
cfdb727a 818
a26d90be 819}
This page took 0.072105 seconds and 5 git commands to generate.