blob: e925e3f06684d0edede987238f70823d73d886b5 [file] [log] [blame]
/**********************************************************************
* Copyright (c) 2012, 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License 2.0 which
* accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Bernd Hufmann - Initial API and implementation
* Alexandre Montplaisir - Port to JUnit4
* Markus Schorn - Bug 448058: Use org.eclipse.remote in favor of RSE
**********************************************************************/
package org.eclipse.tracecompass.lttng2.control.ui.tests.model.component;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.net.URL;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.remote.core.IRemoteConnection;
import org.eclipse.swt.graphics.Image;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceDomainType;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.LogLevelType;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TargetNodeState;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceChannelOutputType;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceEnablement;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceEventType;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceLogLevel;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceSessionState;
import org.eclipse.tracecompass.internal.lttng2.control.stubs.service.TestRemoteSystemProxy;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.ITraceControlComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.BaseEventComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.KernelProviderComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TargetNodeComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceChannelComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceDomainComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceEventComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceProbeEventComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceProviderGroup;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceSessionComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceSessionGroup;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.UstProviderComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.service.ILttngControlService;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.service.LTTngControlService;
import org.eclipse.tracecompass.tmf.remote.core.proxy.TmfRemoteConnectionFactory;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.osgi.framework.FrameworkUtil;
/**
* The class <code>TraceControlTreeModelTest</code> contains tests for the tree
* component classes.
*/
public class TraceControlTreeModelTest {
// ------------------------------------------------------------------------
// Constants
// ------------------------------------------------------------------------
private TraceControlTestFacility fFacility;
private static final String TEST_STREAM = "ListInfoTest.cfg";
private static final String SCEN_LIST_INFO_TEST = "ListInfoTest";
private static final String TARGET_NODE_NAME = "myNode";
// ------------------------------------------------------------------------
// Test data
// ------------------------------------------------------------------------
private IRemoteConnection fHost = TmfRemoteConnectionFactory.getLocalConnection();
private @NonNull TestRemoteSystemProxy fProxy = new TestRemoteSystemProxy(fHost);
private String fTestFile;
// ------------------------------------------------------------------------
// Housekeeping
// ------------------------------------------------------------------------
/**
* Perform pre-test initialization.
*
* @throws Exception
* if the initialization fails for some reason
*/
@Before
public void setUp() throws Exception {
fFacility = TraceControlTestFacility.getInstance();
fFacility.init();
URL location = FileLocator.find(FrameworkUtil.getBundle(this.getClass()), new Path(TraceControlTestFacility.DIRECTORY + File.separator + TEST_STREAM), null);
File testfile = new File(FileLocator.toFileURL(location).toURI());
fTestFile = testfile.getAbsolutePath();
}
/**
* Perform post-test clean-up.
*/
@After
public void tearDown() {
fFacility.dispose();
}
/**
* Run the TraceControlComponent.
*/
@Test
public void testTraceControlComponents() {
fProxy.setTestFile(fTestFile);
fProxy.setScenario(SCEN_LIST_INFO_TEST);
ITraceControlComponent root = fFacility.getControlView().getTraceControlRoot();
TargetNodeComponent node = new TargetNodeComponent(TARGET_NODE_NAME, root, fProxy);
root.addChild(node);
node.connect();
fFacility.waitForConnect(node);
fFacility.waitForJobs();
// ------------------------------------------------------------------------
// Verify Parameters of TargetNodeComponent
// ------------------------------------------------------------------------
assertEquals("Local", node.getToolTip()); // assigned in createLocalHost() above
Image connectedImage = node.getImage();
assertNotNull(connectedImage);
assertEquals(TargetNodeState.CONNECTED, node.getTargetNodeState());
assertNotNull(node.getControlService());
ILttngControlService service = node.getControlService();
assertTrue(service instanceof LTTngControlService);
node.setControlService(service);
assertTrue(node.getControlService() instanceof LTTngControlService);
// ------------------------------------------------------------------------
// Verify Children of TargetNodeComponent
// ------------------------------------------------------------------------
ITraceControlComponent[] groups = node.getChildren();
assertNotNull(groups);
assertEquals(2, groups.length);
assertTrue(groups[0] instanceof TraceProviderGroup);
assertTrue(groups[1] instanceof TraceSessionGroup);
assertEquals("Provider", groups[0].getName());
assertEquals("Sessions", groups[1].getName());
// ------------------------------------------------------------------------
// Verify TraceProviderGroup
// ------------------------------------------------------------------------
ITraceControlComponent[] providers = groups[0].getChildren();
assertNotNull(providers);
assertEquals(3, providers.length);
// ------------------------------------------------------------------------
// Verify KernelProviderComponent
// ------------------------------------------------------------------------
KernelProviderComponent kernelProvider = (KernelProviderComponent) providers[0];
// ------------------------------------------------------------------------
// Verify event info (kernel provider)
// ------------------------------------------------------------------------
ITraceControlComponent[] events = kernelProvider.getChildren();
assertNotNull(events);
assertEquals(3, events.length);
BaseEventComponent baseEventInfo = (BaseEventComponent) events[0];
assertNotNull(baseEventInfo);
assertEquals("sched_kthread_stop", baseEventInfo.getName());
assertEquals(TraceLogLevel.TRACE_EMERG, baseEventInfo.getLogLevel());
assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType());
baseEventInfo = (BaseEventComponent) events[1];
assertEquals("sched_kthread_stop_ret", baseEventInfo.getName());
assertEquals(TraceLogLevel.TRACE_EMERG, baseEventInfo.getLogLevel());
assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType());
baseEventInfo = (BaseEventComponent) events[2];
assertEquals("sched_wakeup_new", baseEventInfo.getName());
assertEquals(TraceLogLevel.TRACE_EMERG, baseEventInfo.getLogLevel());
assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType());
// ------------------------------------------------------------------------
// Verify UstProviderComponent
// ------------------------------------------------------------------------
UstProviderComponent ustProvider = (UstProviderComponent) providers[1];
assertEquals("/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello [PID=9379]", ustProvider.getName());
assertEquals(9379, ustProvider.getPid());
// ------------------------------------------------------------------------
// Verify event info (UST provider)
// ------------------------------------------------------------------------
events = ustProvider.getChildren();
assertNotNull(events);
assertEquals(2, events.length);
baseEventInfo = (BaseEventComponent) events[0];
assertNotNull(baseEventInfo);
assertEquals("ust_tests_hello:tptest_sighandler", baseEventInfo.getName());
assertEquals(TraceLogLevel.TRACE_DEBUG_MODULE, baseEventInfo.getLogLevel());
assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType());
baseEventInfo = (BaseEventComponent) events[1];
assertEquals("ust_tests_hello:tptest", baseEventInfo.getName());
assertEquals(TraceLogLevel.TRACE_INFO, baseEventInfo.getLogLevel());
assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType());
// ------------------------------------------------------------------------
// Verify UstProviderComponent
// ------------------------------------------------------------------------
ustProvider = (UstProviderComponent) providers[2];
assertEquals("/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello [PID=4852]", ustProvider.getName());
assertEquals(4852, ustProvider.getPid());
// verify getters and setter
verifyUstProviderGettersSetters(ustProvider);
// ------------------------------------------------------------------------
// Verify event info (UST provider)
// ------------------------------------------------------------------------
events = ustProvider.getChildren();
assertNotNull(events);
assertEquals(2, events.length);
baseEventInfo = (BaseEventComponent) events[0];
assertNotNull(baseEventInfo);
assertEquals("ust_tests_hello:tptest_sighandler", baseEventInfo.getName());
assertEquals(TraceLogLevel.TRACE_WARNING, baseEventInfo.getLogLevel());
assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType());
baseEventInfo = (BaseEventComponent) events[1];
assertEquals("ust_tests_hello:tptest", baseEventInfo.getName());
assertEquals(TraceLogLevel.TRACE_DEBUG_FUNCTION, baseEventInfo.getLogLevel());
assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType());
// verify getters and setters
verifyBaseEventGettersSetters(baseEventInfo);
// ------------------------------------------------------------------------
// Verify TraceSessionGroup
// ------------------------------------------------------------------------
ITraceControlComponent[] sessions = groups[1].getChildren();
assertNotNull(sessions);
assertEquals(2, sessions.length);
for (int i = 0; i < sessions.length; i++) {
assertTrue(sessions[i] instanceof TraceSessionComponent);
}
assertEquals("mysession1", sessions[0].getName());
assertEquals("mysession", sessions[1].getName());
// ------------------------------------------------------------------------
// Verify TraceSessionComponent
// ------------------------------------------------------------------------
TraceSessionComponent session = (TraceSessionComponent)sessions[1];
assertEquals("mysession", session.getName());
assertEquals("/home/user/lttng-traces/mysession-20120129-084256", session.getSessionPath());
assertEquals(TraceSessionState.ACTIVE, session.getSessionState());
// Verify setters and setters
verifySessionGetterSetters(session);
ITraceControlComponent[] domains = session.getChildren();
assertNotNull(domains);
assertEquals(2, domains.length);
// ------------------------------------------------------------------------
// Verify Kernel domain
// ------------------------------------------------------------------------
assertEquals("Kernel", domains[0].getName());
ITraceControlComponent[] channels = domains[0].getChildren();
assertNotNull(channels);
assertEquals(2, channels.length);
// Verify setters and setters
verifyDomainGettersSetters((TraceDomainComponent) domains[0]);
// ------------------------------------------------------------------------
// Verify Kernel's channel0
// ------------------------------------------------------------------------
assertTrue(channels[0] instanceof TraceChannelComponent);
TraceChannelComponent channel = (TraceChannelComponent) channels[0];
assertEquals("channel0", channel.getName());
assertEquals(4, channel.getNumberOfSubBuffers());
assertEquals("splice()", channel.getOutputType().getInName());
assertEquals(TraceChannelOutputType.SPLICE, channel.getOutputType());
assertEquals(false, channel.isOverwriteMode());
assertEquals(200, channel.getReadTimer());
assertEquals(TraceEnablement.ENABLED, channel.getState());
assertEquals(262144, channel.getSubBufferSize());
assertEquals(0, channel.getSwitchTimer());
// ------------------------------------------------------------------------
// Verify event info (kernel, channel0)
// ------------------------------------------------------------------------
ITraceControlComponent[] channel0Events = channel.getChildren();
assertNotNull(channel0Events);
assertEquals(5, channel0Events.length);
assertTrue(channel0Events[0] instanceof TraceEventComponent);
assertTrue(channel0Events[1] instanceof TraceEventComponent);
assertTrue(channel0Events[2] instanceof TraceProbeEventComponent);
assertTrue(channel0Events[3] instanceof TraceProbeEventComponent);
assertTrue(channel0Events[4] instanceof TraceEventComponent);
TraceEventComponent event = (TraceEventComponent) channel0Events[0];
assertEquals("block_rq_remap", event.getName());
assertEquals(TraceLogLevel.TRACE_EMERG, event.getLogLevel());
assertEquals(TraceEventType.TRACEPOINT, event.getEventType());
assertEquals(TraceEnablement.ENABLED, event.getState());
event = (TraceEventComponent) channel0Events[1];
assertEquals("block_bio_remap", event.getName());
assertEquals(TraceLogLevel.TRACE_EMERG, event.getLogLevel());
assertEquals(TraceEventType.TRACEPOINT, event.getEventType());
assertEquals(TraceEnablement.DISABLED, event.getState());
TraceProbeEventComponent probeEvent = (TraceProbeEventComponent) channel0Events[2];
assertEquals("myevent2", probeEvent.getName());
assertEquals(TraceLogLevel.LEVEL_UNKNOWN, probeEvent.getLogLevel());
assertEquals(TraceEventType.PROBE, probeEvent.getEventType());
assertEquals(TraceEnablement.ENABLED, probeEvent.getState());
assertEquals("0xc0101340", probeEvent.getAddress());
assertNull(probeEvent.getOffset());
assertNull(probeEvent.getSymbol());
// verify getters and setter
verifyProbeEventGettersSetters(probeEvent);
probeEvent = (TraceProbeEventComponent) channel0Events[3];
assertEquals("myevent0", probeEvent.getName());
assertEquals(TraceLogLevel.LEVEL_UNKNOWN, probeEvent.getLogLevel());
assertEquals(TraceEventType.PROBE, probeEvent.getEventType());
assertEquals(TraceEnablement.ENABLED, probeEvent.getState());
assertNull(probeEvent.getAddress());
assertEquals("0x0", probeEvent.getOffset());
assertEquals("init_post", probeEvent.getSymbol());
event = (TraceEventComponent) channel0Events[4];
assertEquals("syscalls", event.getName());
assertEquals(TraceLogLevel.LEVEL_UNKNOWN, event.getLogLevel());
assertEquals(TraceEventType.SYSCALL, event.getEventType());
assertEquals(TraceEnablement.ENABLED, event.getState());
// ------------------------------------------------------------------------
// Verify Kernel's channel1
// ------------------------------------------------------------------------
assertEquals("channel1", channels[1].getName());
channel = (TraceChannelComponent) channels[1];
assertEquals(4, channel.getNumberOfSubBuffers());
assertEquals("splice()", channel.getOutputType().getInName());
assertEquals(TraceChannelOutputType.SPLICE, channel.getOutputType());
assertEquals(true, channel.isOverwriteMode());
assertEquals(400, channel.getReadTimer());
assertEquals(TraceEnablement.DISABLED, channel.getState());
assertEquals(524288, channel.getSubBufferSize());
assertEquals(100, channel.getSwitchTimer());
// ------------------------------------------------------------------------
// Verify event info (kernel, channel1)
// ------------------------------------------------------------------------
ITraceControlComponent[] channel1Events = channels[1].getChildren();
assertEquals(0, channel1Events.length);
// ------------------------------------------------------------------------
// Verify domain UST global
// ------------------------------------------------------------------------
assertEquals("UST global", domains[1].getName());
ITraceControlComponent[] ustChannels = domains[1].getChildren();
for (int i = 0; i < ustChannels.length; i++) {
assertTrue(ustChannels[i] instanceof TraceChannelComponent);
}
// ------------------------------------------------------------------------
// Verify UST global's mychannel1
// ------------------------------------------------------------------------
channel = (TraceChannelComponent) ustChannels[0];
assertEquals("mychannel1", channel.getName());
assertEquals(8, channel.getNumberOfSubBuffers());
assertEquals("mmap()", channel.getOutputType().getInName());
assertEquals(TraceChannelOutputType.MMAP, channel.getOutputType());
assertEquals(true, channel.isOverwriteMode());
assertEquals(100, channel.getReadTimer());
assertEquals(TraceEnablement.DISABLED, channel.getState());
assertEquals(8192, channel.getSubBufferSize());
assertEquals(200, channel.getSwitchTimer());
// verify getters and setters
verifyChannelGettersSetters(channel);
// ------------------------------------------------------------------------
// Verify event info (UST global, mychannel1)
// ------------------------------------------------------------------------
ITraceControlComponent[] ustEvents = channel.getChildren();
assertEquals(0, ustEvents.length);
// ------------------------------------------------------------------------
// Verify UST global's channel0
// ------------------------------------------------------------------------
channel = (TraceChannelComponent) ustChannels[1];
assertEquals("channel0", channel.getName());
assertEquals(4, channel.getNumberOfSubBuffers());
assertEquals("mmap()", channel.getOutputType().getInName());
assertEquals(TraceChannelOutputType.MMAP, channel.getOutputType());
assertEquals(false, channel.isOverwriteMode());
assertEquals(200, channel.getReadTimer());
assertEquals(TraceEnablement.ENABLED, channel.getState());
assertEquals(4096, channel.getSubBufferSize());
assertEquals(0, channel.getSwitchTimer());
// ------------------------------------------------------------------------
// Verify event info (UST global, channel0)
// ------------------------------------------------------------------------
ustEvents = channel.getChildren();
assertEquals(4, ustEvents.length);
event = (TraceEventComponent) ustEvents[0];
assertEquals("ust_tests_hello:tptest_sighandler", event.getName());
assertEquals(TraceLogLevel.TRACE_DEBUG_LINE, event.getLogLevel());
assertEquals(LogLevelType.LOGLEVEL_ONLY, event.getLogLevelType());
assertEquals(LogLevelType.LOGLEVEL_ONLY.getShortName(), event.getLogLevelType().getShortName());
assertEquals(TraceEventType.TRACEPOINT, event.getEventType());
assertEquals(TraceEnablement.DISABLED, event.getState());
event = (TraceEventComponent) ustEvents[1];
assertEquals("ust_tests_hello:tptest_sighandler1", event.getName());
assertEquals(TraceLogLevel.TRACE_INFO, event.getLogLevel());
assertEquals(LogLevelType.LOGLEVEL, event.getLogLevelType());
assertEquals(LogLevelType.LOGLEVEL.getShortName(), event.getLogLevelType().getShortName());
assertEquals(TraceEventType.TRACEPOINT, event.getEventType());
assertEquals(TraceEnablement.DISABLED, event.getState());
event = (TraceEventComponent) ustEvents[2];
assertEquals("ust_tests_hello:tptest_sighandler2", event.getName());
assertEquals(TraceLogLevel.TRACE_DEBUG_SYSTEM, event.getLogLevel());
assertEquals(LogLevelType.LOGLEVEL_NONE, event.getLogLevelType());
assertEquals(LogLevelType.LOGLEVEL_NONE.getShortName(), event.getLogLevelType().getShortName());
assertEquals(TraceEventType.TRACEPOINT, event.getEventType());
assertEquals(TraceEnablement.DISABLED, event.getState());
event = (TraceEventComponent) ustEvents[3];
assertEquals("*", event.getName());
assertEquals(TraceLogLevel.LEVEL_UNKNOWN, event.getLogLevel());
assertEquals(TraceEventType.TRACEPOINT, event.getEventType());
assertEquals(TraceEnablement.ENABLED, event.getState());
// verify getters and setters
verifyEventGettersSetters(event);
// disconnect
node.disconnect();
assertEquals(TargetNodeState.DISCONNECTED, node.getTargetNodeState());
assertNotNull(node.getImage());
assertNotSame(connectedImage, node.getImage());
node.getParent().removeChild(node);
}
private static void verifySessionGetterSetters(TraceSessionComponent session) {
// save original values
String name = session.getName();
String origPath = session.getSessionPath();
TraceSessionState origState = session.getSessionState();
// test cases
session.setName("newName");
assertEquals("newName", session.getName());
session.setSessionPath("/home/user/tmp");
assertEquals("/home/user/tmp", session.getSessionPath());
session.setSessionState(TraceSessionState.INACTIVE);
assertEquals(TraceSessionState.INACTIVE, session.getSessionState());
Image inactiveImage = session.getImage();
assertNotNull(inactiveImage);
session.setSessionState("active");
assertEquals(TraceSessionState.ACTIVE, session.getSessionState());
Image activeImage = session.getImage();
assertNotNull(activeImage);
assertNotSame(activeImage, inactiveImage);
ITraceControlComponent[] children = session.getChildren();
TraceDomainComponent[] domains = session.getDomains();
assertEquals(children.length, domains.length);
for (int i = 0; i < domains.length; i++) {
assertEquals(domains[i].getName(), children[i].getName());
}
// restore original values
session.setName(name);
session.setSessionPath(origPath);
session.setSessionState(origState);
}
private static void verifyDomainGettersSetters(TraceDomainComponent domain) {
// save original values
TraceDomainType tmpDomain = domain.getDomain();
domain.setDomain(TraceDomainType.KERNEL);
assertEquals(domain.getDomain(), TraceDomainType.KERNEL);
domain.setDomain(TraceDomainType.UST);
assertEquals(domain.getDomain(), TraceDomainType.UST);
domain.setDomain(TraceDomainType.JUL);
assertEquals(domain.getDomain(), TraceDomainType.JUL);
domain.setDomain(TraceDomainType.LOG4J);
assertEquals(domain.getDomain(), TraceDomainType.LOG4J);
domain.setDomain(TraceDomainType.PYTHON);
assertEquals(domain.getDomain(), TraceDomainType.PYTHON);
domain.setDomain(TraceDomainType.UNKNOWN);
assertEquals(domain.getDomain(), TraceDomainType.UNKNOWN);
ITraceControlComponent[] children = domain.getChildren();
TraceChannelComponent[] channels = domain.getChannels();
assertEquals(children.length, channels.length);
for (int i = 0; i < channels.length; i++) {
assertEquals(channels[i].getName(), children[i].getName());
}
String nodeName = domain.getTargetNode().getName();
assertEquals(TARGET_NODE_NAME, nodeName);
// restore original values
domain.setDomain(tmpDomain);
}
private static void verifyBaseEventGettersSetters(BaseEventComponent event) {
// save original values
String name = event.getName();
TraceLogLevel level = event.getLogLevel();
TraceEventType type = event.getEventType();
// test cases
event.setName("newName");
assertEquals("newName", event.getName());
event.setLogLevel(TraceLogLevel.TRACE_INFO);
assertEquals(TraceLogLevel.TRACE_INFO, event.getLogLevel());
event.setLogLevel("TRACE_ALERT");
assertEquals(TraceLogLevel.TRACE_ALERT, event.getLogLevel());
event.setEventType(TraceEventType.UNKNOWN);
assertEquals(TraceEventType.UNKNOWN, event.getEventType());
event.setEventType("tracepoint");
assertEquals(TraceEventType.TRACEPOINT, event.getEventType());
// restore original values
event.setName(name);
event.setLogLevel(level);
event.setEventType(type);
}
private static void verifyEventGettersSetters(TraceEventComponent event) {
// save original values
String name = event.getName();
TraceLogLevel level = event.getLogLevel();
TraceEventType type = event.getEventType();
TraceEnablement state = event.getState();
// test cases
event.setName("newName");
assertEquals("newName", event.getName());
event.setLogLevel(TraceLogLevel.TRACE_INFO);
assertEquals(TraceLogLevel.TRACE_INFO, event.getLogLevel());
event.setLogLevel("TRACE_ALERT");
assertEquals(TraceLogLevel.TRACE_ALERT, event.getLogLevel());
event.setEventType(TraceEventType.UNKNOWN);
assertEquals(TraceEventType.UNKNOWN, event.getEventType());
event.setEventType("tracepoint");
assertEquals(TraceEventType.TRACEPOINT, event.getEventType());
event.setState("disabled");
assertEquals(TraceEnablement.DISABLED, event.getState());
Image disabledImage = event.getImage();
assertNotNull(disabledImage);
event.setState(TraceEnablement.ENABLED);
assertEquals(TraceEnablement.ENABLED, event.getState());
Image enabledImage = event.getImage();
assertNotNull(enabledImage);
assertNotSame(enabledImage, disabledImage);
// restore original values
event.setName(name);
event.setLogLevel(level);
event.setEventType(type);
event.setState(state);
}
private static void verifyProbeEventGettersSetters(TraceProbeEventComponent event) {
// save original values
String address = event.getAddress();
String offset = event.getOffset();
String symbol = event.getSymbol();
// test cases
event.setAddress("0xffff1234");
assertEquals("0xffff1234", event.getAddress());
event.setOffset("0x1234");
assertEquals("0x1234", event.getOffset());
event.setSymbol("init");
assertEquals("init", event.getSymbol());
// restore original values
event.setAddress(address);
event.setOffset(offset);
event.setSymbol(symbol);
}
private static void verifyChannelGettersSetters(TraceChannelComponent channel) {
// save original values
String name = channel.getName();
int nbSubBuffers = channel.getNumberOfSubBuffers();
TraceChannelOutputType type = channel.getOutputType();
boolean mode = channel.isOverwriteMode();
long readTimer = channel.getReadTimer();
TraceEnablement state = channel.getState();
long subBufferSize = channel.getSubBufferSize();
long switchTimer = channel.getSwitchTimer();
// test cases
channel.setName("newName");
assertEquals("newName", channel.getName());
channel.setNumberOfSubBuffers(2);
assertEquals(2, channel.getNumberOfSubBuffers());
channel.setOutputType("splice()");
assertEquals("splice()", channel.getOutputType().getInName());
assertEquals(TraceChannelOutputType.SPLICE, channel.getOutputType());
channel.setOverwriteMode(false);
assertEquals(false, channel.isOverwriteMode());
channel.setReadTimer(250);
assertEquals(250, channel.getReadTimer());
channel.setState("enabled");
assertEquals(TraceEnablement.ENABLED, channel.getState());
Image enabledImage = channel.getImage();
assertNotNull(enabledImage);
channel.setState(TraceEnablement.DISABLED);
assertEquals(TraceEnablement.DISABLED, channel.getState());
Image disabledImage = channel.getImage();
assertNotNull(disabledImage);
assertNotSame(enabledImage, disabledImage);
channel.setSubBufferSize(1024);
assertEquals(1024, channel.getSubBufferSize());
channel.setSwitchTimer(1000);
assertEquals(1000, channel.getSwitchTimer());
// restore original values
channel.setName(name);
channel.setNumberOfSubBuffers(nbSubBuffers);
channel.setOutputType(type);
channel.setOverwriteMode(mode);
channel.setReadTimer(readTimer);
channel.setState(state);
channel.setSubBufferSize(subBufferSize);
channel.setSwitchTimer(switchTimer);
}
private static void verifyUstProviderGettersSetters(UstProviderComponent ustProvider) {
// save original values
String name = ustProvider.getName();
int pid = ustProvider.getPid();
// test cases
ustProvider.setName("newName");
assertEquals("newName", ustProvider.getName());
ustProvider.setPid(9876);
assertEquals(9876, ustProvider.getPid());
// restore original values
ustProvider.setName(name);
ustProvider.setPid(pid);
}
}