1
1
/**********************************************************************
2
2
* Copyright (c) 2012 Ericsson
4
4
* All rights reserved. This program and the accompanying materials are
5
5
* made available under the terms of the Eclipse Public License v1.0 which
6
6
* accompanies this distribution, and is available at
7
7
* http://www.eclipse.org/legal/epl-v10.html
10
10
* Bernd Hufmann - Initial API and implementation
11
11
**********************************************************************/
12
12
package org.eclipse.linuxtools.lttng2.ui.tests.control.model.component;
62
62
private static final String TEST_STREAM = "ListInfoTest.cfg";
63
63
private static final String SCEN_LIST_INFO_TEST = "ListInfoTest";
64
64
private static final String TARGET_NODE_NAME = "myNode";
66
66
// ------------------------------------------------------------------------
68
68
// ------------------------------------------------------------------------
70
70
private TestRemoteSystemProxy fProxy;
71
private String fTestFile;
71
private String fTestFile;
73
73
// ------------------------------------------------------------------------
75
75
// ------------------------------------------------------------------------
78
78
* Returns test setup used when executing test case stand-alone.
79
* @return Test setup class
79
* @return Test setup class
81
81
public static Test suite() {
82
82
return new ModelImplTestSetup(new TestSuite(TraceControlTreeModelTest.class));
114
114
public void tearDown() throws Exception {
115
115
TraceControlTestFacility.getInstance().waitForJobs();
119
119
* Run the TraceControlComponent.
122
* This will fail the test
121
public void testTraceControlComponents()
124
public void testTraceControlComponents() throws Exception {
124
126
fProxy.setTestFile(fTestFile);
125
127
fProxy.setScenario(SCEN_LIST_INFO_TEST);
127
129
ITraceControlComponent root = TraceControlTestFacility.getInstance().getControlView().getTraceControlRoot();
129
131
ISystemRegistry registry = RSECorePlugin.getTheSystemRegistry();
159
161
ITraceControlComponent[] groups = node.getChildren();
160
162
assertNotNull(groups);
161
163
assertEquals(2, groups.length);
163
165
assertTrue(groups[0] instanceof TraceProviderGroup);
164
166
assertTrue(groups[1] instanceof TraceSessionGroup);
166
168
assertEquals("Provider", groups[0].getName());
167
169
assertEquals("Sessions", groups[1].getName());
175
177
assertEquals(3, providers.length);
177
179
// ------------------------------------------------------------------------
178
// Verify UstProviderComponent
180
// Verify KernelProviderComponent
179
181
// ------------------------------------------------------------------------
180
182
KernelProviderComponent kernelProvider = (KernelProviderComponent) providers[0];
233
235
ustProvider = (UstProviderComponent) providers[2];
234
236
assertEquals("/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello [PID=4852]", ustProvider.getName());
235
237
assertEquals(4852, ustProvider.getPid());
237
239
// verify getters and setter
238
240
verifyUstProviderGettersSetters(ustProvider);
254
256
assertEquals("ust_tests_hello:tptest", baseEventInfo.getName());
255
257
assertEquals(TraceLogLevel.TRACE_DEBUG_FUNCTION, baseEventInfo.getLogLevel());
256
258
assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType());
258
260
// verify getters and setters
259
261
verifyBaseEventGettersSetters(baseEventInfo);
261
263
// ------------------------------------------------------------------------
262
264
// Verify TraceSessionGroup
263
265
// ------------------------------------------------------------------------
281
283
// Verify setters and setters
282
284
verifySessionGetterSetters(session);
284
286
ITraceControlComponent[] domains = session.getChildren();
285
287
assertNotNull(domains);
286
288
assertEquals(2, domains.length);
288
290
// ------------------------------------------------------------------------
289
291
// Verify Kernel domain
290
292
// ------------------------------------------------------------------------
296
298
// Verify setters and setters
297
299
verifyDomainGettersSetters((TraceDomainComponent) domains[0]);
299
301
// ------------------------------------------------------------------------
300
302
// Verify Kernel's channel0
301
303
// ------------------------------------------------------------------------
302
304
assertTrue(channels[0] instanceof TraceChannelComponent);
303
TraceChannelComponent channel = (TraceChannelComponent) channels[0];
305
TraceChannelComponent channel = (TraceChannelComponent) channels[0];
304
306
assertEquals("channel0", channel.getName());
305
307
assertEquals(4, channel.getNumberOfSubBuffers());
306
308
assertEquals("splice()", channel.getOutputType());
321
323
assertTrue(channel0Events[2] instanceof TraceProbeEventComponent);
322
324
assertTrue(channel0Events[3] instanceof TraceProbeEventComponent);
323
325
assertTrue(channel0Events[4] instanceof TraceEventComponent);
325
327
TraceEventComponent event = (TraceEventComponent) channel0Events[0];
326
328
assertEquals("block_rq_remap", event.getName());
327
329
assertEquals(TraceLogLevel.TRACE_EMERG, event.getLogLevel());
328
330
assertEquals(TraceEventType.TRACEPOINT, event.getEventType());
329
331
assertEquals(TraceEnablement.ENABLED, event.getState());
331
333
event = (TraceEventComponent) channel0Events[1];
332
334
assertEquals("block_bio_remap", event.getName());
333
335
assertEquals(TraceLogLevel.TRACE_EMERG, event.getLogLevel());
354
356
assertNull(probeEvent.getAddress());
355
357
assertEquals("0x0", probeEvent.getOffset());
356
358
assertEquals("init_post", probeEvent.getSymbol());
358
360
event = (TraceEventComponent) channel0Events[4];
359
361
assertEquals("syscalls", event.getName());
360
362
assertEquals(TraceLogLevel.LEVEL_UNKNOWN, event.getLogLevel());
361
363
assertEquals(TraceEventType.SYSCALL, event.getEventType());
362
364
assertEquals(TraceEnablement.ENABLED, event.getState());
364
366
// ------------------------------------------------------------------------
365
367
// Verify Kernel's channel1
366
368
// ------------------------------------------------------------------------
367
369
assertEquals("channel1", channels[1].getName());
368
channel = (TraceChannelComponent) channels[1];
370
channel = (TraceChannelComponent) channels[1];
369
371
assertEquals(4, channel.getNumberOfSubBuffers());
370
372
assertEquals("splice()", channel.getOutputType());
371
373
assertEquals(true, channel.isOverwriteMode());
384
386
// Verify domain UST global
385
387
// ------------------------------------------------------------------------
386
388
assertEquals("UST global", domains[1].getName());
388
390
ITraceControlComponent[] ustChannels = domains[1].getChildren();
390
392
for (int i = 0; i < ustChannels.length; i++) {
391
393
assertTrue(ustChannels[i] instanceof TraceChannelComponent);
394
396
// ------------------------------------------------------------------------
395
397
// Verify UST global's mychannel1
396
398
// ------------------------------------------------------------------------
397
channel = (TraceChannelComponent) ustChannels[0];
399
channel = (TraceChannelComponent) ustChannels[0];
398
400
assertEquals("mychannel1", channel.getName());
399
401
assertEquals(8, channel.getNumberOfSubBuffers());
400
402
assertEquals("mmap()", channel.getOutputType());
403
405
assertEquals(TraceEnablement.DISABLED, channel.getState());
404
406
assertEquals(8192, channel.getSubBufferSize());
405
407
assertEquals(200, channel.getSwitchTimer());
407
// verify getters and setters
409
// verify getters and setters
408
410
verifyChannelGettersSetters(channel);
410
412
// ------------------------------------------------------------------------
431
433
// ------------------------------------------------------------------------
432
434
ustEvents = channel.getChildren();
433
435
assertEquals(2, ustEvents.length);
435
437
event = (TraceEventComponent) ustEvents[0];
436
438
assertEquals("ust_tests_hello:tptest_sighandler", event.getName());
437
439
assertEquals(TraceLogLevel.TRACE_DEBUG_LINE, event.getLogLevel());
438
440
assertEquals(TraceEventType.TRACEPOINT, event.getEventType());
439
441
assertEquals(TraceEnablement.DISABLED, event.getState());
441
443
event = (TraceEventComponent) ustEvents[1];
442
444
assertEquals("*", ustEvents[1].getName());
443
445
assertEquals(TraceLogLevel.LEVEL_UNKNOWN, event.getLogLevel());
444
446
assertEquals(TraceEventType.TRACEPOINT, event.getEventType());
445
447
assertEquals(TraceEnablement.ENABLED, event.getState());
447
449
// verify getters and setters
448
450
verifyEventGettersSetters(event);
451
453
node.disconnect();
452
454
assertEquals(TargetNodeState.DISCONNECTED, node.getTargetNodeState());
453
455
assertNotNull(node.getImage());
454
456
assertNotSame(connectedImage, node.getImage());
456
458
node.getParent().removeChild(node);
459
private void verifySessionGetterSetters(TraceSessionComponent session) {
461
private static void verifySessionGetterSetters(TraceSessionComponent session) {
460
462
// save original values
461
463
String name = session.getName();
462
464
String origPath = session.getSessionPath();
466
468
session.setName("newName");
467
469
assertEquals("newName", session.getName());
469
471
session.setSessionPath("/home/user/tmp");
470
472
assertEquals("/home/user/tmp", session.getSessionPath());
473
475
assertEquals(TraceSessionState.INACTIVE, session.getSessionState());
474
476
Image inactiveImage = session.getImage();
475
477
assertNotNull(inactiveImage);
477
479
session.setSessionState("active");
478
480
assertEquals(TraceSessionState.ACTIVE, session.getSessionState());
489
491
for (int i = 0; i < domains.length; i++) {
490
492
assertEquals(domains[i].getName(), children[i].getName());
493
// restore original values
495
// restore original values
494
496
session.setName(name);
495
497
session.setSessionPath(origPath);
496
498
session.setSessionState(origState);
499
private void verifyDomainGettersSetters(TraceDomainComponent domain) {
501
private static void verifyDomainGettersSetters(TraceDomainComponent domain) {
500
502
// save original values
501
503
boolean isKernel = domain.isKernel();
521
523
domain.setIsKernel(isKernel);
524
private void verifyBaseEventGettersSetters(BaseEventComponent event) {
526
private static void verifyBaseEventGettersSetters(BaseEventComponent event) {
525
527
// save original values
526
528
String name = event.getName();
527
529
TraceLogLevel level = event.getLogLevel();
528
530
TraceEventType type = event.getEventType();
531
533
event.setName("newName");
532
534
assertEquals("newName", event.getName());
534
536
event.setLogLevel(TraceLogLevel.TRACE_INFO);
535
537
assertEquals(TraceLogLevel.TRACE_INFO, event.getLogLevel());
536
538
event.setLogLevel("TRACE_ALERT");
540
542
assertEquals(TraceEventType.UNKNOWN, event.getEventType());
541
543
event.setEventType("tracepoint");
542
544
assertEquals(TraceEventType.TRACEPOINT, event.getEventType());
544
546
// restore original values
545
547
event.setName(name);
546
548
event.setLogLevel(level);
547
549
event.setEventType(type);
550
private void verifyEventGettersSetters(TraceEventComponent event) {
552
private static void verifyEventGettersSetters(TraceEventComponent event) {
551
553
// save original values
552
554
String name = event.getName();
553
555
TraceLogLevel level = event.getLogLevel();
554
556
TraceEventType type = event.getEventType();
555
557
TraceEnablement state = event.getState();
558
560
event.setName("newName");
559
561
assertEquals("newName", event.getName());
561
563
event.setLogLevel(TraceLogLevel.TRACE_INFO);
562
564
assertEquals(TraceLogLevel.TRACE_INFO, event.getLogLevel());
563
565
event.setLogLevel("TRACE_ALERT");
567
569
assertEquals(TraceEventType.UNKNOWN, event.getEventType());
568
570
event.setEventType("tracepoint");
569
571
assertEquals(TraceEventType.TRACEPOINT, event.getEventType());
571
573
event.setState("disabled");
572
574
assertEquals(TraceEnablement.DISABLED, event.getState());
574
576
Image disabledImage = event.getImage();
575
577
assertNotNull(disabledImage);
587
589
event.setEventType(type);
588
590
event.setState(state);
591
private void verifyProbeEventGettersSetters(TraceProbeEventComponent event) {
593
private static void verifyProbeEventGettersSetters(TraceProbeEventComponent event) {
592
594
// save original values
593
595
String address = event.getAddress();
594
596
String offset = event.getOffset();
595
597
String symbol = event.getSymbol();
598
600
event.setAddress("0xffff1234");
599
601
assertEquals("0xffff1234", event.getAddress());
601
603
event.setOffset("0x1234");
602
604
assertEquals("0x1234", event.getOffset());
604
606
event.setSymbol("init");
605
607
assertEquals("init", event.getSymbol());
607
609
// restore original values
608
610
event.setAddress(address);
609
611
event.setOffset(offset);
610
612
event.setSymbol(symbol);
613
private void verifyChannelGettersSetters(TraceChannelComponent channel) {
615
private static void verifyChannelGettersSetters(TraceChannelComponent channel) {
614
616
// save original values
615
617
String name = channel.getName();
616
618
int nbSubBuffers = channel.getNumberOfSubBuffers();
620
622
TraceEnablement state = channel.getState();
621
623
long subBufferSize = channel.getSubBufferSize();
622
624
long switchTimer = channel.getSwitchTimer();
625
627
channel.setName("newName");
626
628
assertEquals("newName", channel.getName());
628
630
channel.setNumberOfSubBuffers(2);
629
631
assertEquals(2, channel.getNumberOfSubBuffers());
631
633
channel.setOutputType("splice()");
632
634
assertEquals("splice()", channel.getOutputType());
634
636
channel.setOverwriteMode(false);
635
637
assertEquals(false, channel.isOverwriteMode());
637
639
channel.setReadTimer(250);
638
640
assertEquals(250, channel.getReadTimer());
640
642
channel.setState("enabled");
641
643
assertEquals(TraceEnablement.ENABLED, channel.getState());
643
645
Image enabledImage = channel.getImage();
644
646
assertNotNull(enabledImage);
645
647
channel.setState(TraceEnablement.DISABLED);
648
650
Image disabledImage = channel.getImage();
649
651
assertNotNull(disabledImage);
650
652
assertNotSame(enabledImage, disabledImage);
652
654
channel.setSubBufferSize(1024);
653
655
assertEquals(1024, channel.getSubBufferSize());
655
657
channel.setSwitchTimer(1000);
656
658
assertEquals(1000, channel.getSwitchTimer());
665
667
channel.setSubBufferSize(subBufferSize);
666
668
channel.setSwitchTimer(switchTimer);
669
private void verifyUstProviderGettersSetters(UstProviderComponent ustProvider) {
671
private static void verifyUstProviderGettersSetters(UstProviderComponent ustProvider) {
670
672
// save original values
671
673
String name = ustProvider.getName();
672
674
int pid = ustProvider.getPid();
675
677
ustProvider.setName("newName");
676
678
assertEquals("newName", ustProvider.getName());
678
680
ustProvider.setPid(9876);
679
681
assertEquals(9876, ustProvider.getPid());
681
683
// restore original values
682
684
ustProvider.setName(name);
683
685
ustProvider.setPid(pid);