| /********************************************************************** |
| * 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 |
| * Marc-Andre Laperle - Support for creating a live session |
| **********************************************************************/ |
| |
| package org.eclipse.tracecompass.lttng2.control.ui.tests.service; |
| |
| import static org.junit.Assert.assertEquals; |
| import static org.junit.Assert.assertFalse; |
| import static org.junit.Assert.assertNotNull; |
| import static org.junit.Assert.assertTrue; |
| import static org.junit.Assert.fail; |
| |
| import java.io.File; |
| import java.net.URL; |
| import java.util.ArrayList; |
| import java.util.Arrays; |
| import java.util.HashSet; |
| import java.util.List; |
| import java.util.Set; |
| |
| import org.eclipse.core.commands.ExecutionException; |
| import org.eclipse.core.runtime.FileLocator; |
| import org.eclipse.core.runtime.NullProgressMonitor; |
| import org.eclipse.core.runtime.Path; |
| import org.eclipse.jdt.annotation.NonNull; |
| import org.eclipse.jdt.annotation.Nullable; |
| import org.eclipse.tracecompass.internal.lttng2.control.core.model.IBaseEventInfo; |
| import org.eclipse.tracecompass.internal.lttng2.control.core.model.IChannelInfo; |
| import org.eclipse.tracecompass.internal.lttng2.control.core.model.IDomainInfo; |
| import org.eclipse.tracecompass.internal.lttng2.control.core.model.IEventInfo; |
| import org.eclipse.tracecompass.internal.lttng2.control.core.model.IFieldInfo; |
| import org.eclipse.tracecompass.internal.lttng2.control.core.model.ISessionInfo; |
| import org.eclipse.tracecompass.internal.lttng2.control.core.model.ISnapshotInfo; |
| import org.eclipse.tracecompass.internal.lttng2.control.core.model.IUstProviderInfo; |
| import org.eclipse.tracecompass.internal.lttng2.control.core.model.LogLevelType; |
| import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceChannelOutputType; |
| import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceDomainType; |
| 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.core.model.impl.BufferType; |
| import org.eclipse.tracecompass.internal.lttng2.control.core.model.impl.ChannelInfo; |
| import org.eclipse.tracecompass.internal.lttng2.control.core.model.impl.SessionInfo; |
| import org.eclipse.tracecompass.internal.lttng2.control.stubs.shells.LTTngToolsFileShell; |
| import org.eclipse.tracecompass.internal.lttng2.control.ui.Activator; |
| import org.eclipse.tracecompass.internal.lttng2.control.ui.views.logging.ControlCommandLogger; |
| import org.eclipse.tracecompass.internal.lttng2.control.ui.views.preferences.ControlPreferences; |
| 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.internal.lttng2.control.ui.views.service.LTTngControlServiceFactory; |
| import org.eclipse.tracecompass.internal.lttng2.control.ui.views.service.LttngVersion; |
| import org.junit.After; |
| import org.junit.Before; |
| import org.junit.Ignore; |
| import org.junit.Test; |
| import org.osgi.framework.FrameworkUtil; |
| |
| /** |
| * The class <code>LTTngControlServiceTest</code> contains test for the class |
| * <code>{@link LTTngControlService}</code>. |
| */ |
| @SuppressWarnings("javadoc") |
| public class LTTngControlServiceTest { |
| |
| private static final String DIRECTORY = "testfiles"; |
| private static final String TEST_STREAM = "LTTngServiceTest.cfg"; |
| |
| private static final String SCEN_LTTNG_NOT_INSTALLED = "LttngNotInstalled"; |
| protected static final String SCEN_LTTNG_VERSION = "LttngVersion"; |
| protected static final String SCEN_LTTNG_VERSION_WITH_PROMPT = "LttngVersionWithPrompt"; |
| private static final String SCEN_LTTNG_UNSUPPORTED_VERSION = "LttngUnsupportedVersion"; |
| private static final String SCEN_LTTNG_NO_VERSION = "LttngNoVersion"; |
| protected static final String SCEN_LTTNG_COMPILED_VERSION = "LttngVersionCompiled"; |
| private static final String SCEN_NO_SESSION_AVAILABLE = "NoSessionAvailable"; |
| private static final String SCEN_GET_SESSION_NAMES1 = "GetSessionNames1"; |
| private static final String SCEN_GET_SESSION_WITH_GROUP = "GetSessionWithTracingGroup"; |
| private static final String SCEN_GET_SESSION_NAME_NOT_EXIST = "GetSessionNameNotExist"; |
| private static final String SCEN_GET_SESSION_NAME_NOT_EXIST_VERBOSE = "GetSessionNameNotExistVerbose"; |
| protected static final String SCEN_GET_SESSION_GARBAGE_OUT = "GetSessionGarbageOut"; |
| private static final String SCEN_GET_SESSION1 = "GetSession1"; |
| private static final String SCEN_GET_SESSION_WITH_LIVE = "GetSessionWithLiveInterval"; |
| private static final String SCEN_GET_KERNEL_PROVIDER1 = "GetKernelProvider1"; |
| private static final String SCEN_LIST_WITH_NO_KERNEL1 = "ListWithNoKernel1"; |
| private static final String SCEN_LIST_WITH_NO_KERNEL2 = "ListWithNoKernel2"; |
| private static final String SCEN_LIST_WITH_NO_KERNEL_VERBOSE = "ListWithNoKernelVerbose"; |
| private static final String SCEN_GET_UST_PROVIDER1 = "GetUstProvider1"; |
| private static final String SCEN_GET_UST_PROVIDER2 = "GetUstProvider2"; |
| private static final String SCEN_GET_UST_PROVIDER3 = "GetUstProvider3"; |
| private static final String SCEN_LIST_WITH_NO_UST1 = "ListWithNoUst1"; |
| private static final String SCEN_LIST_WITH_NO_UST2 = "ListWithNoUst2"; |
| private static final String SCEN_LIST_WITH_NO_UST3 = "ListWithNoUst3"; |
| private static final String SCEN_LIST_WITH_NO_UST_VERBOSE = "ListWithNoUstVerbose"; |
| private static final String SCEN_CREATE_SESSION1 = "CreateSession1"; |
| private static final String SCEN_CREATE_SESSION_WITH_PROMPT = "CreateSessionWithPrompt"; |
| private static final String SCEN_CREATE_SESSION_VARIANTS = "CreateSessionVariants"; |
| private static final String SCEN_DESTROY_SESSION1 = "DestroySession1"; |
| private static final String SCEN_DESTROY_SESSION_VERBOSE = "DestroySessionVerbose"; |
| private static final String SCEN_CHANNEL_HANDLING = "ChannelHandling"; |
| private static final String SCEN_EVENT_HANDLING = "EventHandling"; |
| private static final String SCEN_EVENT_EXCLUDED = "EventExcluded"; |
| private static final String SCEN_CONTEXT_HANDLING = "ContextHandling"; |
| private static final String SCEN_CONTEXT_ERROR_HANDLING = "ContextErrorHandling"; |
| private static final String SCEN_CREATE_SESSION_2_1 = "CreateSessionLttng2.1"; |
| private static final String SCEN_CREATE_SESSION_VERBOSE_2_1 = "CreateSessionLttngVerbose2.1"; |
| private static final String SCEN_CREATE_SNAPSHOT_SESSION = "CreateSessionSnapshot"; |
| private static final String SCEN_CREATE_SNAPSHOT_SESSION_2_5 = "CreateSessionSnapshot2.5"; |
| private static final String SCEN_CREATE_STREAMED_SNAPSHOT_SESSION = "CreateSessionStreamedSnapshot"; |
| private static final String SCEN_CREATE_SNAPSHOT_SESSION_ERRORS = "CreateSessionSnapshotErrors"; |
| protected static final String SCEN_CREATE_LIVE_SESSION = "CreateSessionLive"; |
| private static final String SCEN_CREATE_LIVE_SESSION_ERRORS = "CreateSessionLiveErrors"; |
| private static final String SCEN_SESSION_PROFILES = "SessionProfile"; |
| |
| |
| |
| // ------------------------------------------------------------------------ |
| // Test data |
| // ------------------------------------------------------------------------ |
| private String fTestfile; |
| protected final @NonNull LTTngToolsFileShell fShell = new LTTngToolsFileShell(); |
| protected ILttngControlService fService; |
| |
| // ------------------------------------------------------------------------ |
| // Housekeeping |
| // ------------------------------------------------------------------------ |
| |
| /** |
| * Perform pre-test initialization. |
| * |
| * @throws Exception |
| * if the initialization fails for some reason |
| */ |
| @Before |
| public void setUp() throws Exception { |
| URL location = FileLocator.find(FrameworkUtil.getBundle(this.getClass()), new Path(getTestDirectory() + File.separator + getTestStream()), null); |
| File testfile = new File(FileLocator.toFileURL(location).toURI()); |
| fTestfile = testfile.getAbsolutePath(); |
| fShell.loadScenarioFile(fTestfile); |
| fService = getControlService(); |
| if (fService == null) { |
| throw new Exception("Unable to obtain a valid ControlService"); |
| } |
| |
| ControlPreferences.getInstance().init(Activator.getDefault().getPreferenceStore()); |
| } |
| |
| /** |
| * @return the string of the test directory to use |
| */ |
| protected String getTestDirectory() { |
| return DIRECTORY; |
| } |
| |
| /** |
| * @return the LttngCon |
| */ |
| protected ILttngControlService getControlService() { |
| return new LTTngControlService(fShell); |
| } |
| |
| /** |
| * @return the shell implementation |
| */ |
| public @NonNull LTTngToolsFileShell getShell() { |
| return fShell; |
| } |
| |
| /** |
| * @return |
| */ |
| protected String getTestStream() { |
| return TEST_STREAM; |
| } |
| |
| @After |
| public void tearDown() { |
| disableVerbose(); |
| ControlPreferences.getInstance().dispose(); |
| } |
| |
| // ------------------------------------------------------------------------ |
| // Test Cases |
| // ------------------------------------------------------------------------ |
| |
| @Test |
| public void testVersion() { |
| try { |
| fShell.setScenario(SCEN_LTTNG_VERSION); |
| ILttngControlService service = LTTngControlServiceFactory.getLttngControlService(fShell); |
| assertNotNull(service); |
| assertEquals("2.1.0", service.getVersionString()); |
| } catch (ExecutionException e) { |
| fail("Exeption thrown " + e); |
| } |
| } |
| |
| @Test |
| public void testVersionWithPrompt() { |
| try { |
| fShell.setScenario(SCEN_LTTNG_VERSION_WITH_PROMPT); |
| ILttngControlService service = LTTngControlServiceFactory.getLttngControlService(fShell); |
| assertNotNull(service); |
| assertEquals("2.0.0", service.getVersionString()); |
| } catch (ExecutionException e) { |
| fail("Exeption thrown " + e); |
| } |
| } |
| |
| @Test(expected=ExecutionException.class) |
| public void testUnsupportedVersion() throws ExecutionException { |
| fShell.setScenario(SCEN_LTTNG_UNSUPPORTED_VERSION); |
| LTTngControlServiceFactory.getLttngControlService(fShell); |
| } |
| |
| @Test |
| public void testNoVersion() { |
| try { |
| fShell.setScenario(SCEN_LTTNG_NO_VERSION); |
| LTTngControlServiceFactory.getLttngControlService(fShell); |
| fail("No exeption thrown"); |
| } catch (ExecutionException e) { |
| // success |
| } |
| } |
| |
| @Test |
| public void testVersionCompiled() { |
| try { |
| fShell.setScenario(SCEN_LTTNG_COMPILED_VERSION); |
| ILttngControlService service = LTTngControlServiceFactory.getLttngControlService(fShell); |
| assertNotNull(service); |
| assertEquals("2.5.0", service.getVersionString()); |
| } catch (ExecutionException e) { |
| fail("Exeption thrown " + e); |
| } |
| } |
| |
| |
| @Test |
| public void testLttngNotInstalled() { |
| try { |
| fShell.setScenario(SCEN_LTTNG_NOT_INSTALLED); |
| fService.getSessionNames(new NullProgressMonitor()); |
| fail("No exeption thrown"); |
| } catch (ExecutionException e) { |
| // success |
| } |
| } |
| |
| @Test |
| public void testGetSessionNames1() { |
| try { |
| fShell.setScenario(SCEN_NO_SESSION_AVAILABLE); |
| List<String> result = fService.getSessionNames(new NullProgressMonitor()); |
| |
| assertNotNull(result); |
| assertEquals(0, result.size()); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testGetSessionNames2() { |
| try { |
| fShell.setScenario(SCEN_GET_SESSION_NAMES1); |
| List<String> result = fService.getSessionNames(new NullProgressMonitor()); |
| |
| assertNotNull(result); |
| assertEquals(2, result.size()); |
| assertEquals("mysession1", result.get(0)); |
| assertEquals("mysession", result.get(1)); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testGetSessionNamesWithTracingGroup() { |
| try { |
| fShell.setScenario(SCEN_GET_SESSION_WITH_GROUP); |
| ControlPreferences.getInstance().getPreferenceStore().setValue( |
| ControlPreferences.TRACE_CONTROL_TRACING_GROUP_PREF, "group"); |
| |
| List<String> result = fService.getSessionNames(new NullProgressMonitor()); |
| |
| assertNotNull(result); |
| assertEquals(2, result.size()); |
| assertEquals("mysession1", result.get(0)); |
| assertEquals("mysession", result.get(1)); |
| |
| ControlCommandLogger.init(ControlPreferences.getInstance().getLogfilePath(), false); |
| ControlPreferences.getInstance().getPreferenceStore().setValue( |
| ControlPreferences.TRACE_CONTROL_TRACING_GROUP_PREF, ControlPreferences.TRACE_CONTROL_DEFAULT_TRACING_GROUP); |
| |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| |
| @Test |
| public void testGetSessionNotExist() { |
| try { |
| fShell.setScenario(SCEN_GET_SESSION_NAME_NOT_EXIST); |
| fService.getSessionNames(new NullProgressMonitor()); |
| fail("No exeption thrown"); |
| |
| } catch (ExecutionException e) { |
| // success |
| } |
| } |
| |
| @Test |
| public void testGetSessionNotExistVerbose() { |
| try { |
| enableVerbose(); |
| fShell.setScenario(SCEN_GET_SESSION_NAME_NOT_EXIST_VERBOSE); |
| fService.getSessionNames(new NullProgressMonitor()); |
| fail("No exeption thrown"); |
| |
| } catch (ExecutionException e) { |
| // success |
| } finally { |
| disableVerbose(); |
| } |
| } |
| |
| @Test |
| public void testGetSessionNameGarbage() { |
| try { |
| fShell.setScenario(SCEN_GET_SESSION_GARBAGE_OUT); |
| List<String> result = fService.getSessionNames(new NullProgressMonitor()); |
| |
| assertNotNull(result); |
| assertEquals(0, result.size()); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testGetSession1() { |
| try { |
| fShell.setScenario(SCEN_GET_SESSION1); |
| ISessionInfo session = fService.getSession("mysession", new NullProgressMonitor()); |
| |
| // Verify Session |
| assertNotNull(session); |
| assertEquals("mysession", session.getName()); |
| assertEquals("/home/user/lttng-traces/mysession-20120129-084256", session.getSessionPath()); |
| assertEquals(TraceSessionState.ACTIVE, session.getSessionState()); |
| |
| IDomainInfo[] domains = session.getDomains(); |
| assertNotNull(domains); |
| assertEquals(2, domains.length); |
| |
| // Verify Kernel domain |
| assertEquals("Kernel", domains[0].getName()); |
| IChannelInfo[] channels = domains[0].getChannels(); |
| assertNotNull(channels); |
| assertEquals(2, channels.length); |
| |
| // Verify Kernel's channel0 |
| assertEquals("channel0", channels[0].getName()); |
| assertEquals(4, channels[0].getNumberOfSubBuffers()); |
| assertEquals("splice()", channels[0].getOutputType().getInName()); |
| assertEquals(TraceChannelOutputType.SPLICE, channels[0].getOutputType()); |
| assertEquals(false, channels[0].isOverwriteMode()); |
| assertEquals(200, channels[0].getReadTimer()); |
| assertEquals(TraceEnablement.ENABLED, channels[0].getState()); |
| assertEquals(262144, channels[0].getSubBufferSize()); |
| assertEquals(0, channels[0].getSwitchTimer()); |
| |
| // Verify event info |
| IEventInfo[] channel0Events = channels[0].getEvents(); |
| assertNotNull(channel0Events); |
| assertEquals(2, channel0Events.length); |
| assertEquals("block_rq_remap", channel0Events[0].getName()); |
| assertEquals(TraceLogLevel.TRACE_EMERG, channel0Events[0].getLogLevel()); |
| assertEquals(TraceEventType.TRACEPOINT, channel0Events[0].getEventType()); |
| assertEquals(TraceEnablement.ENABLED, channel0Events[0].getState()); |
| |
| assertEquals("block_bio_remap", channel0Events[1].getName()); |
| assertEquals(TraceLogLevel.TRACE_EMERG, channel0Events[1].getLogLevel()); |
| assertEquals(TraceEventType.TRACEPOINT, channel0Events[1].getEventType()); |
| assertEquals(TraceEnablement.DISABLED, channel0Events[1].getState()); |
| |
| // Verify Kernel's channel1 |
| assertEquals("channel1", channels[1].getName()); |
| assertEquals(4, channels[1].getNumberOfSubBuffers()); |
| assertEquals("splice()", channels[1].getOutputType().getInName()); |
| assertEquals(TraceChannelOutputType.SPLICE, channels[1].getOutputType()); |
| assertEquals(true, channels[1].isOverwriteMode()); |
| assertEquals(400, channels[1].getReadTimer()); |
| assertEquals(TraceEnablement.DISABLED, channels[1].getState()); |
| assertEquals(524288, channels[1].getSubBufferSize()); |
| assertEquals(100, channels[1].getSwitchTimer()); |
| |
| // Verify event info |
| IEventInfo[] channel1Events = channels[1].getEvents(); |
| assertEquals(0, channel1Events.length); |
| |
| // Verify domain UST global |
| assertEquals("UST global", domains[1].getName()); |
| |
| IChannelInfo[] ustChannels = domains[1].getChannels(); |
| |
| // Verify UST global's mychannel1 |
| assertEquals("mychannel1", ustChannels[0].getName()); |
| assertEquals(8, ustChannels[0].getNumberOfSubBuffers()); |
| assertEquals("mmap()", ustChannels[0].getOutputType().getInName()); |
| assertEquals(TraceChannelOutputType.MMAP, ustChannels[0].getOutputType()); |
| assertEquals(true, ustChannels[0].isOverwriteMode()); |
| assertEquals(100, ustChannels[0].getReadTimer()); |
| assertEquals(TraceEnablement.DISABLED, ustChannels[0].getState()); |
| assertEquals(8192, ustChannels[0].getSubBufferSize()); |
| assertEquals(200, ustChannels[0].getSwitchTimer()); |
| |
| // Verify event info |
| IEventInfo[] ustEvents = ustChannels[0].getEvents(); |
| assertEquals(0, ustEvents.length); |
| |
| // Verify UST global's channel0 |
| assertEquals("channel0", ustChannels[1].getName()); |
| assertEquals(4, ustChannels[1].getNumberOfSubBuffers()); |
| assertEquals("mmap()", ustChannels[1].getOutputType().getInName()); |
| assertEquals(TraceChannelOutputType.MMAP, ustChannels[1].getOutputType()); |
| assertEquals(false, ustChannels[1].isOverwriteMode()); |
| assertEquals(200, ustChannels[1].getReadTimer()); |
| assertEquals(TraceEnablement.ENABLED, ustChannels[1].getState()); |
| assertEquals(4096, ustChannels[1].getSubBufferSize()); |
| assertEquals(0, ustChannels[1].getSwitchTimer()); |
| |
| // Verify event info |
| ustEvents = ustChannels[1].getEvents(); |
| assertEquals(2, ustEvents.length); |
| |
| assertEquals("ust_tests_hello:tptest_sighandler", ustEvents[0].getName()); |
| assertEquals(TraceLogLevel.TRACE_DEBUG_LINE, ustEvents[0].getLogLevel()); |
| assertEquals(TraceEventType.TRACEPOINT, ustEvents[0].getEventType()); |
| assertEquals(TraceEnablement.DISABLED, ustEvents[0].getState()); |
| |
| assertEquals("*", ustEvents[1].getName()); |
| assertEquals(getAllEventTraceLogLevel(), ustEvents[1].getLogLevel()); |
| assertEquals(TraceEventType.TRACEPOINT, ustEvents[1].getEventType()); |
| assertEquals(TraceEnablement.ENABLED, ustEvents[1].getState()); |
| |
| // next session (no detailed information available) |
| session = fService.getSession("mysession1", new NullProgressMonitor()); |
| assertNotNull(session); |
| assertEquals("mysession1", session.getName()); |
| assertEquals("/home/user/lttng-traces/mysession1-20120203-133225", session.getSessionPath()); |
| assertEquals(TraceSessionState.INACTIVE, session.getSessionState()); |
| |
| domains = session.getDomains(); |
| assertNotNull(domains); |
| assertEquals(0, domains.length); |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| @Ignore |
| public void testGetSessionWithLive() { |
| try { |
| fShell.setScenario(SCEN_GET_SESSION_WITH_LIVE); |
| |
| // Verify Session (snapshot session, non-live) |
| ISessionInfo session = fService.getSession("mysession", new NullProgressMonitor()); |
| assertNotNull(session); |
| assertEquals("mysession", session.getName()); |
| assertEquals("/home/user/lttng-traces/mysession-20120129-084256", session.getSessionPath()); |
| assertEquals(TraceSessionState.INACTIVE, session.getSessionState()); |
| assertFalse(session.isLive()); |
| |
| // Verify Session (regular session, non-live) |
| session = fService.getSession("mysession1", new NullProgressMonitor()); |
| assertNotNull(session); |
| assertEquals("mysession1", session.getName()); |
| assertEquals("/home/user/lttng-traces/mysession1-20120129-084256", session.getSessionPath()); |
| assertEquals(TraceSessionState.ACTIVE, session.getSessionState()); |
| assertFalse(session.isLive()); |
| |
| // Verify Session (regular session, live) |
| session = fService.getSession("mysession2", new NullProgressMonitor()); |
| assertNotNull(session); |
| assertEquals("mysession2", session.getName()); |
| assertEquals("tcp4://172.0.0.1:5342/ [data: 5343]", session.getSessionPath()); |
| assertEquals("net://127.0.0.1", session.getLiveUrl()); |
| assertEquals(Integer.valueOf(5344), session.getLivePort()); |
| assertEquals(1000000, session.getLiveDelay()); |
| assertEquals(TraceSessionState.INACTIVE, session.getSessionState()); |
| assertTrue(session.isLive()); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| /** |
| * @return |
| */ |
| protected TraceLogLevel getAllEventTraceLogLevel() { |
| return TraceLogLevel.LEVEL_UNKNOWN; |
| } |
| |
| public void testGetKernelProvider() { |
| try { |
| fShell.setScenario(SCEN_GET_KERNEL_PROVIDER1); |
| List<IBaseEventInfo> events = fService.getKernelProvider(new NullProgressMonitor()); |
| |
| // Verify event info |
| assertNotNull(events); |
| assertEquals(3, events.size()); |
| |
| IBaseEventInfo baseEventInfo = events.get(0); |
| assertNotNull(baseEventInfo); |
| assertEquals("sched_kthread_stop", baseEventInfo.getName()); |
| assertEquals(TraceLogLevel.TRACE_EMERG, baseEventInfo.getLogLevel()); |
| assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType()); |
| |
| baseEventInfo = events.get(1); |
| assertEquals("sched_kthread_stop_ret", baseEventInfo.getName()); |
| assertEquals(TraceLogLevel.TRACE_EMERG, baseEventInfo.getLogLevel()); |
| assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType()); |
| |
| baseEventInfo = events.get(2); |
| assertEquals("sched_wakeup_new", baseEventInfo.getName()); |
| assertEquals(TraceLogLevel.TRACE_EMERG, baseEventInfo.getLogLevel()); |
| assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType()); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testGetKernelProviderNoKernel1() { |
| try { |
| fShell.setScenario(SCEN_LIST_WITH_NO_KERNEL1); |
| List<IBaseEventInfo> events = fService.getKernelProvider(new NullProgressMonitor()); |
| |
| // Verify event info |
| assertNotNull(events); |
| assertEquals(0, events.size()); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testGetKernelProviderNoKernel2() { |
| try { |
| fShell.setScenario(SCEN_LIST_WITH_NO_KERNEL2); |
| List<IBaseEventInfo> events = fService.getKernelProvider(new NullProgressMonitor()); |
| |
| // Verify event info |
| assertNotNull(events); |
| assertEquals(0, events.size()); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testGetKernelProviderNoKernelVerbose() { |
| try { |
| enableVerbose(); |
| fShell.setScenario(SCEN_LIST_WITH_NO_KERNEL_VERBOSE); |
| List<IBaseEventInfo> events = fService.getKernelProvider(new NullProgressMonitor()); |
| |
| // Verify event info |
| assertNotNull(events); |
| assertEquals(0, events.size()); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } finally { |
| disableVerbose(); |
| } |
| } |
| |
| @Test |
| public void testGetUstProvider() { |
| try { |
| fShell.setScenario(SCEN_GET_UST_PROVIDER1); |
| List<IUstProviderInfo> providers = fService.getUstProvider(); |
| |
| // Check all providers |
| assertNotNull(providers); |
| assertEquals(2, providers.size()); |
| |
| //Verify first provider |
| assertEquals("/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello", providers.get(0).getName()); |
| assertEquals(9379, providers.get(0).getPid()); |
| |
| // Verify event info |
| IBaseEventInfo[] events = providers.get(0).getEvents(); |
| assertNotNull(events); |
| assertEquals(2, events.length); |
| |
| IBaseEventInfo baseEventInfo = 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 = events[1]; |
| assertEquals("ust_tests_hello:tptest", baseEventInfo.getName()); |
| assertEquals(TraceLogLevel.TRACE_INFO, baseEventInfo.getLogLevel()); |
| assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType()); |
| |
| //Verify second provider |
| assertEquals("/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello", providers.get(1).getName()); |
| assertEquals(4852, providers.get(1).getPid()); |
| |
| // Verify event info |
| events = providers.get(1).getEvents(); |
| assertNotNull(events); |
| assertEquals(2, events.length); |
| |
| baseEventInfo = events[0]; |
| assertNotNull(baseEventInfo); |
| assertEquals("ust_tests_hello:tptest_sighandler", baseEventInfo.getName()); |
| assertEquals(TraceLogLevel.TRACE_WARNING, baseEventInfo.getLogLevel()); |
| assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType()); |
| |
| baseEventInfo = events[1]; |
| assertEquals("ust_tests_hello:tptest", baseEventInfo.getName()); |
| assertEquals(TraceLogLevel.TRACE_DEBUG_FUNCTION, baseEventInfo.getLogLevel()); |
| assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType()); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testUstProvider2() { |
| try { |
| fShell.setScenario(SCEN_GET_UST_PROVIDER2); |
| List<IUstProviderInfo> providers = fService.getUstProvider(); |
| |
| assertNotNull(providers); |
| assertEquals(0, providers.size()); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testGetUstProvider3() { |
| try { |
| fShell.setScenario(SCEN_GET_UST_PROVIDER3); |
| // Set version |
| ((LTTngControlService)fService).setVersion("2.1.0"); |
| List<IUstProviderInfo> providers = fService.getUstProvider(); |
| |
| // Check all providers |
| assertNotNull(providers); |
| assertEquals(2, providers.size()); |
| |
| //Verify first provider |
| assertEquals("/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello", providers.get(0).getName()); |
| assertEquals(9379, providers.get(0).getPid()); |
| |
| // Verify event info |
| IBaseEventInfo[] events = providers.get(0).getEvents(); |
| assertNotNull(events); |
| assertEquals(2, events.length); |
| |
| IBaseEventInfo baseEventInfo = events[0]; |
| assertNotNull(baseEventInfo); |
| IFieldInfo[] fields = baseEventInfo.getFields(); |
| assertNotNull(fields); |
| assertEquals(0, fields.length); |
| |
| baseEventInfo = events[1]; |
| fields = baseEventInfo.getFields(); |
| assertNotNull(fields); |
| assertEquals(3, fields.length); |
| assertEquals("doublefield", fields[0].getName()); |
| assertEquals("float", fields[0].getFieldType()); |
| |
| assertEquals("floatfield", fields[1].getName()); |
| assertEquals("float", fields[1].getFieldType()); |
| |
| assertEquals("stringfield", fields[2].getName()); |
| assertEquals("string", fields[2].getFieldType()); |
| |
| //Verify second provider |
| assertEquals("/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello", providers.get(1).getName()); |
| assertEquals(4852, providers.get(1).getPid()); |
| |
| // Verify event info |
| events = providers.get(1).getEvents(); |
| assertNotNull(events); |
| assertEquals(2, events.length); |
| |
| baseEventInfo = events[0]; |
| assertNotNull(baseEventInfo); |
| fields = baseEventInfo.getFields(); |
| assertNotNull(fields); |
| assertEquals(0, fields.length); |
| |
| baseEventInfo = events[1]; |
| fields = baseEventInfo.getFields(); |
| assertNotNull(fields); |
| assertEquals(3, fields.length); |
| |
| assertEquals("doublefield", fields[0].getName()); |
| assertEquals("float", fields[0].getFieldType()); |
| |
| assertEquals("floatfield", fields[1].getName()); |
| assertEquals("float", fields[1].getFieldType()); |
| |
| assertEquals("stringfield", fields[2].getName()); |
| assertEquals("string", fields[2].getFieldType()); |
| |
| // Reset version |
| ((LTTngControlService)fService).setVersion("2.0.0"); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| |
| @Test |
| public void testGetKernelProviderNoUst1() { |
| try { |
| fShell.setScenario(SCEN_LIST_WITH_NO_UST1); |
| List<IUstProviderInfo> providerList = fService.getUstProvider(new NullProgressMonitor()); |
| |
| // Verify Provider info |
| assertNotNull(providerList); |
| assertEquals(0, providerList.size()); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| |
| @Test |
| public void testGetKernelProviderNoUst2() { |
| try { |
| // Set version |
| ((LTTngControlService)fService).setVersion("2.1.0"); |
| |
| fShell.setScenario(SCEN_LIST_WITH_NO_UST2); |
| List<IUstProviderInfo> providerList = fService.getUstProvider(new NullProgressMonitor()); |
| |
| // Verify Provider info |
| assertNotNull(providerList); |
| assertEquals(0, providerList.size()); |
| |
| // Reset version |
| ((LTTngControlService)fService).setVersion("2.0.0"); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testGetKernelProviderNoUst3() { |
| try { |
| |
| // Set version |
| ((LTTngControlService)fService).setVersion("2.1.0"); |
| |
| fShell.setScenario(SCEN_LIST_WITH_NO_UST3); |
| List<IUstProviderInfo> providerList = fService.getUstProvider(new NullProgressMonitor()); |
| |
| // Verify provider info |
| assertNotNull(providerList); |
| assertEquals(0, providerList.size()); |
| |
| // Reset version |
| ((LTTngControlService)fService).setVersion("2.0.0"); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testGetKernelProviderNoUstVerbose() { |
| try { |
| enableVerbose(); |
| |
| // Set version |
| ((LTTngControlService)fService).setVersion("2.1.0"); |
| |
| fShell.setScenario(SCEN_LIST_WITH_NO_UST_VERBOSE); |
| List<IUstProviderInfo> providerList = fService.getUstProvider(new NullProgressMonitor()); |
| |
| // Verify provider info |
| assertNotNull(providerList); |
| assertEquals(0, providerList.size()); |
| |
| // Reset version |
| ((LTTngControlService)fService).setVersion("2.0.0"); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } finally { |
| disableVerbose(); |
| } |
| } |
| |
| |
| |
| @Test |
| public void testCreateSession() { |
| try { |
| fShell.setScenario(SCEN_CREATE_SESSION1); |
| |
| ISessionInfo info = fService.createSession(new SessionInfo("mysession2"), new NullProgressMonitor()); |
| assertNotNull(info); |
| assertEquals("mysession2", info.getName()); |
| assertNotNull(info.getSessionPath()); |
| assertTrue(info.getSessionPath().contains("mysession2")); |
| assertEquals(TraceSessionState.INACTIVE, info.getSessionState()); |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testCreateSessionWithPrompt() { |
| try { |
| // First line has the shell prompt before the command output |
| // This can happen in a real application if the command line is not echoed by the shell. |
| fShell.setScenario(SCEN_CREATE_SESSION_WITH_PROMPT); |
| |
| // First line has no shell prompt before the output |
| ISessionInfo info = fService.createSession(new SessionInfo("mysession2"), new NullProgressMonitor()); |
| assertNotNull(info); |
| assertEquals("mysession2", info.getName()); |
| assertNotNull(info.getSessionPath()); |
| assertTrue(info.getSessionPath().contains("mysession2")); |
| assertEquals(TraceSessionState.INACTIVE, info.getSessionState()); |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testCreateSessionVariants() { |
| |
| fShell.setScenario(SCEN_CREATE_SESSION_VARIANTS); |
| |
| try { |
| fService.createSession(new SessionInfo("alreadyExist"), new NullProgressMonitor()); |
| fail("No exeption thrown"); |
| } catch (ExecutionException e) { |
| // success |
| } |
| |
| try { |
| fService.createSession(new SessionInfo("wrongName"), new NullProgressMonitor()); |
| fail("No exeption thrown"); |
| } catch (ExecutionException e) { |
| // success |
| } |
| |
| try { |
| ISessionInfo sessionInfo = new SessionInfo("withPath"); |
| sessionInfo.setSessionPath("/home/user/hallo"); |
| fService.createSession(sessionInfo, new NullProgressMonitor()); |
| fail("No exeption thrown"); |
| } catch (ExecutionException e) { |
| // success |
| } |
| |
| try { |
| ISessionInfo info = fService.createSession(new SessionInfo("session with spaces"), new NullProgressMonitor()); |
| assertNotNull(info); |
| assertEquals("session with spaces", info.getName()); |
| assertNotNull(info.getSessionPath()); |
| assertTrue(info.getSessionPath().contains("session with spaces")); |
| assertEquals(TraceSessionState.INACTIVE, info.getSessionState()); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| |
| try { |
| ISessionInfo sessionInfo = new SessionInfo("pathWithSpaces"); |
| sessionInfo.setSessionPath("/home/user/hallo user/here"); |
| ISessionInfo info = fService.createSession(sessionInfo, new NullProgressMonitor()); |
| assertNotNull(info); |
| assertEquals("pathWithSpaces", info.getName()); |
| assertNotNull(info.getSessionPath()); |
| assertTrue(info.getSessionPath().contains("/home/user/hallo user/here")); |
| assertEquals(TraceSessionState.INACTIVE, info.getSessionState()); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testDestroySession() { |
| try { |
| fShell.setScenario(SCEN_DESTROY_SESSION1); |
| fService.destroySession("mysession2", new NullProgressMonitor()); |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testDestroySessionVerbose() { |
| try { |
| enableVerbose(); |
| fShell.setScenario(SCEN_DESTROY_SESSION_VERBOSE); |
| fService.destroySession("mysession2", new NullProgressMonitor()); |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } finally { |
| disableVerbose(); |
| } |
| } |
| |
| @Test |
| public void testCreateChannel() { |
| try { |
| ((LTTngControlService)fService).setVersion("2.2.0"); |
| String sessionName = "mysession2"; |
| List<String> list = new ArrayList<>(); |
| String kernelChannel0 = "mychannel0"; |
| String kernelChannel1 = "mychannel1"; |
| list.add(kernelChannel0); |
| list.add(kernelChannel1); |
| |
| fShell.setScenario(SCEN_CHANNEL_HANDLING); |
| |
| // Create/enable/configure 2 kernel channels |
| ChannelInfo chanInfo = new ChannelInfo(""); |
| chanInfo.setOverwriteMode(true); |
| chanInfo.setSubBufferSize(16384); |
| chanInfo.setReadTimer(100); |
| chanInfo.setSwitchTimer(200); |
| chanInfo.setNumberOfSubBuffers(2); |
| chanInfo.setMaxNumberTraceFiles(10); |
| chanInfo.setMaxSizeTraceFiles(0); |
| fService.enableChannels(sessionName, list, TraceDomainType.KERNEL, chanInfo, new NullProgressMonitor()); |
| |
| // Create/enable/configure 1 UST channel |
| list.clear(); |
| list.add("ustChannel"); |
| |
| chanInfo = new ChannelInfo(""); |
| chanInfo.setOverwriteMode(true); |
| chanInfo.setSubBufferSize(32768); |
| chanInfo.setReadTimer(200); |
| chanInfo.setSwitchTimer(100); |
| chanInfo.setNumberOfSubBuffers(1); |
| chanInfo.setMaxNumberTraceFiles(20); |
| chanInfo.setMaxSizeTraceFiles(0); |
| fService.enableChannels(sessionName, list, TraceDomainType.UST, chanInfo, new NullProgressMonitor()); |
| ((LTTngControlService)fService).setVersion("2.0.0"); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testCreateChannelUIDBuffer() { |
| try { |
| ((LTTngControlService)fService).setVersion("2.2.0"); |
| String sessionName = "mysession2"; |
| List<String> list = new ArrayList<>(); |
| String USTChannel = "ustChannel"; |
| list.add(USTChannel); |
| fShell.setScenario(SCEN_CHANNEL_HANDLING); |
| |
| ChannelInfo chanInfo = new ChannelInfo(""); |
| chanInfo.setOverwriteMode(true); |
| chanInfo.setSubBufferSize(32768); |
| chanInfo.setReadTimer(200); |
| chanInfo.setSwitchTimer(100); |
| chanInfo.setNumberOfSubBuffers(1); |
| chanInfo.setMaxNumberTraceFiles(20); |
| chanInfo.setMaxSizeTraceFiles(0); |
| chanInfo.setBufferType(BufferType.BUFFER_PER_UID); |
| fService.enableChannels(sessionName, list, TraceDomainType.UST, chanInfo, new NullProgressMonitor()); |
| ((LTTngControlService)fService).setVersion("2.0.0"); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testCreateChannelPIDBuffer() { |
| try { |
| ((LTTngControlService)fService).setVersion("2.2.0"); |
| String sessionName = "mysession2"; |
| List<String> list = new ArrayList<>(); |
| String USTChannel = "ustChannel"; |
| list.add(USTChannel); |
| fShell.setScenario(SCEN_CHANNEL_HANDLING); |
| |
| |
| ChannelInfo chanInfo = new ChannelInfo(""); |
| chanInfo.setOverwriteMode(true); |
| chanInfo.setSubBufferSize(-1); |
| chanInfo.setReadTimer(-1); |
| chanInfo.setSwitchTimer(-1); |
| chanInfo.setNumberOfSubBuffers(-1); |
| chanInfo.setMaxNumberTraceFiles(-1); |
| chanInfo.setMaxSizeTraceFiles(-1); |
| chanInfo.setBufferType(BufferType.BUFFER_PER_PID); |
| |
| fService.enableChannels(sessionName, list, TraceDomainType.UST, chanInfo, new NullProgressMonitor()); |
| ((LTTngControlService)fService).setVersion("2.0.0"); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testDisableChannel() { |
| try { |
| |
| String sessionName = "mysession2"; |
| List<String> list = new ArrayList<>(); |
| String kernelChannel0 = "mychannel0"; |
| String kernelChannel1 = "mychannel1"; |
| list.add(kernelChannel0); |
| list.add(kernelChannel1); |
| |
| fShell.setScenario(SCEN_CHANNEL_HANDLING); |
| fService.disableChannels(sessionName, list, TraceDomainType.KERNEL, new NullProgressMonitor()); |
| |
| list.clear(); |
| list.add("ustChannel"); |
| fService.disableChannels(sessionName, list, TraceDomainType.UST, new NullProgressMonitor()); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testEnableChannel() { |
| try { |
| |
| String sessionName = "mysession2"; |
| List<String> list = new ArrayList<>(); |
| String kernelChannel0 = "mychannel0"; |
| String kernelChannel1 = "mychannel1"; |
| list.add(kernelChannel0); |
| list.add(kernelChannel1); |
| |
| fShell.setScenario(SCEN_CHANNEL_HANDLING); |
| fService.enableChannels(sessionName, list, TraceDomainType.KERNEL, null, new NullProgressMonitor()); |
| |
| // Create/enable/configure 1 UST channel |
| list.clear(); |
| list.add("ustChannel"); |
| |
| fService.enableChannels(sessionName, list, TraceDomainType.UST, null, new NullProgressMonitor()); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testEnableEvents() { |
| try { |
| String sessionName = "mysession2"; |
| String channelName = "mychannel"; |
| // Lists |
| List<String> eventList = new ArrayList<>(); |
| List<String> excludeList = new ArrayList<>(); |
| // Events |
| String eventName0 = "block_rq_remap"; |
| String eventName1 = "block_bio_remap"; |
| String eventName2 = "softirq_entry"; |
| String ustEventName0 = "ust_tests_hello:tptest_sighandler"; |
| String ustEventName1 = "ust_tests_bye:tptest_sighandler"; |
| String ustEventWildcard = "ust*"; |
| |
| fShell.setScenario(SCEN_EVENT_HANDLING); |
| |
| // 1) session name, channel = null, 3 event names, kernel |
| eventList.add(eventName0); |
| eventList.add(eventName1); |
| eventList.add(eventName2); |
| fService.enableEvents(sessionName, null, eventList, TraceDomainType.KERNEL, null, null, new NullProgressMonitor()); |
| |
| // 2) session name, channel = mychannel, event name= null, kernel |
| fService.enableEvents(sessionName, channelName, null, TraceDomainType.KERNEL, null, null, new NullProgressMonitor()); |
| |
| // 3) session name, channel = mychannel, 1 event name, ust, no filter |
| eventList.clear(); |
| eventList.add(ustEventName0); |
| fService.enableEvents(sessionName, channelName, eventList, TraceDomainType.UST, null, null, new NullProgressMonitor()); |
| |
| // 4) session name, channel = mychannel, no event name, ust, with filter |
| fService.enableEvents(sessionName, channelName, eventList, TraceDomainType.UST, "intfield==10", null, new NullProgressMonitor()); |
| |
| // 5) session name, channel = mychannel, no event name, ust, no filter |
| eventList.clear(); |
| fService.enableEvents(sessionName, channelName, eventList, TraceDomainType.UST, null, null, new NullProgressMonitor()); |
| |
| // 6) session name, channel = null, |
| fService.enableEvents(sessionName, null, ILttngControlService.ALL_EVENTS, TraceDomainType.KERNEL, null, null, new NullProgressMonitor()); |
| |
| // 7) session name, channel = mychannel, all events, ust, exclude 1 event |
| excludeList.add(ustEventName0); |
| fService.enableEvents(sessionName, channelName, null, TraceDomainType.UST, null, excludeList, new NullProgressMonitor()); |
| |
| // 8) session name, channel = mychannel, all events, ust, exclude 2 events |
| excludeList.add(ustEventName1); |
| fService.enableEvents(sessionName, channelName, null, TraceDomainType.UST, null, excludeList, new NullProgressMonitor()); |
| |
| // 9) session name, channel = mychannel, enable 'ust*', ust, exclude 2 events |
| eventList.add(ustEventWildcard); |
| fService.enableEvents(sessionName, channelName, eventList, TraceDomainType.UST, null, excludeList, new NullProgressMonitor()); |
| |
| // 10) session name, channel = mychannel, enable 'ust*', ust, with filter, exclude 2 events |
| fService.enableEvents(sessionName, channelName, eventList, TraceDomainType.UST, "ust==\"Challenger\"", excludeList, new NullProgressMonitor()); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testEnableJulLoggers() { |
| // Trace Compass only supports JUL starting with LTTng 2.6 that supports MI. |
| // The implementation of this test is in the LTTngControlServiceMiTest.java file. |
| } |
| |
| @Test |
| public void testEnableLog4jLoggers() { |
| // Trace Compass only supports LOG4J starting with LTTng 2.6 that supports MI. |
| // The implementation of this test is in the LTTngControlServiceMiTest.java file. |
| } |
| |
| @Test |
| public void testEnablePythonLoggers() { |
| // LTTng only support Python logging starting with LTTng 2.7 that supports MI. |
| // The implementation of this test is in the LTTngControlServiceMiTest.java file. |
| } |
| |
| @Test |
| public void testEventExcluded() { |
| try { |
| String sessionName = "mysession2"; |
| String channelName = "mychannel"; |
| // Lists |
| List<String> eventList = new ArrayList<>(); |
| List<String> excludeList = new ArrayList<>(); |
| // Events |
| String ustEventName0 = "ust_tests_hello:tptest_sighandler"; |
| String ustEventName1 = "ust_tests_bye:tptest_sighandler"; |
| String ustEventWildcard = "ust*"; |
| |
| @NonNull |
| LttngVersion version = fService.getVersion(); |
| fShell.setScenario(SCEN_EVENT_EXCLUDED); |
| |
| // 1) 1 event excluded |
| eventList.add(ustEventWildcard); |
| excludeList.add(ustEventName0); |
| fService.enableEvents(sessionName, channelName, eventList, TraceDomainType.UST, null, excludeList, new NullProgressMonitor()); |
| |
| @Nullable |
| ISessionInfo session = fService.getSession(sessionName, new NullProgressMonitor()); |
| assertNotNull(session); |
| IEventInfo eventInfo = session.getDomains()[0].getChannels()[0].getEvents()[0]; |
| assertNotNull(eventInfo); |
| // version 2.8 and above supports the excluded events list |
| if (version.getMajor() > 1 && version.getMinor() > 7) { |
| assertTrue(eventInfo.getExcludedEvents().contains(ustEventName0)); |
| } else { |
| assertEquals("has exclusions", eventInfo.getExcludedEvents()); |
| } |
| |
| // 2) 2 events excluded |
| excludeList.add(ustEventName1); |
| fService.enableEvents(sessionName, channelName, eventList, TraceDomainType.UST, null, excludeList, new NullProgressMonitor()); |
| |
| session = fService.getSession(sessionName, new NullProgressMonitor()); |
| assertNotNull(session); |
| eventInfo = session.getDomains()[0].getChannels()[0].getEvents()[0]; |
| assertNotNull(eventInfo); |
| |
| // version 2.8 and above supports the excluded events list |
| if (version.getMajor() > 1 && version.getMinor() > 7) { |
| assertTrue(eventInfo.getExcludedEvents().contains(ustEventName0)); |
| assertTrue(eventInfo.getExcludedEvents().contains(ustEventName1)); |
| } else { |
| assertEquals("has exclusions", eventInfo.getExcludedEvents()); |
| } |
| |
| // 3) 2 events excluded and using a filter |
| fService.enableEvents(sessionName, channelName, eventList, TraceDomainType.UST, "ust==\"Challenger\"", excludeList, new NullProgressMonitor()); |
| |
| session = fService.getSession(sessionName, new NullProgressMonitor()); |
| assertNotNull(session); |
| eventInfo = session.getDomains()[0].getChannels()[0].getEvents()[0]; |
| assertNotNull(eventInfo); |
| |
| // version 2.8 and above supports the excluded events list |
| if (version.getMajor() > 1 && version.getMinor() > 7) { |
| assertTrue(eventInfo.getExcludedEvents().contains(ustEventName0)); |
| assertTrue(eventInfo.getExcludedEvents().contains(ustEventName1)); |
| } else { |
| assertEquals("has exclusions", eventInfo.getExcludedEvents()); |
| } |
| |
| if (version.getMajor() > 1 && version.getMinor() > 7) { |
| assertTrue(eventInfo.getFilterExpression().equals("ust==Challenger")); |
| } else { |
| assertEquals("with filter", eventInfo.getFilterExpression()); |
| } |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testEnableSyscalls() { |
| try { |
| // 1) session name, channel = null, 3 event names, kernel |
| String sessionName = "mysession2"; |
| String channelName = "mychannel"; |
| List<String> syscalls = new ArrayList<>(); |
| |
| fShell.setScenario(SCEN_EVENT_HANDLING); |
| |
| // 1) session name, channel = null, syscall = all |
| fService.enableSyscalls(sessionName, null, null, new NullProgressMonitor()); |
| |
| // 2) session name, channel = mychannel, syscall = all |
| fService.enableSyscalls(sessionName, channelName, null, new NullProgressMonitor()); |
| |
| // 3) session name, channel = mychannel, syscall = close |
| syscalls.add("close"); |
| fService.enableSyscalls(sessionName, channelName, syscalls, new NullProgressMonitor()); |
| |
| // 4) session name, channel = mychannel, syscall = close,read,write |
| syscalls.add("read"); |
| syscalls.add("write"); |
| fService.enableSyscalls(sessionName, channelName, syscalls, new NullProgressMonitor()); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testDynamicProbe() { |
| try { |
| // 1) session name, channel = null, 3 event names, kernel |
| String sessionName = "mysession2"; |
| String channelName = "mychannel"; |
| String eventName0 = "myevent0"; |
| String eventName1 = "myevent1"; |
| String functionProbe = "0xc0101340"; |
| String dynProbe = "init_post"; |
| |
| fShell.setScenario(SCEN_EVENT_HANDLING); |
| |
| // 1) session name, channel = null, event name, function probe, probe |
| fService.enableProbe(sessionName, null, eventName0, true, functionProbe, new NullProgressMonitor()); |
| |
| // 2) session name, channel = mychannel |
| fService.enableProbe(sessionName, channelName, eventName1, false, dynProbe, new NullProgressMonitor()); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testEnableLogLevel() { |
| try { |
| // 1) session name, channel = null, 3 event names, kernel |
| String sessionName = "mysession2"; |
| String channelName = "mychannel"; |
| String eventName4 = "myevent4"; |
| String eventName5 = "myevent5"; |
| |
| fShell.setScenario(SCEN_EVENT_HANDLING); |
| |
| // 1) session name, channel = null, event name, loglevel-only, TRACE_DEBUG |
| fService.enableLogLevel(sessionName, null, Arrays.asList(eventName4), LogLevelType.LOGLEVEL_ONLY, TraceLogLevel.TRACE_DEBUG, null, TraceDomainType.UST, new NullProgressMonitor()); |
| |
| // 2) session name, channel = mychannel, null, loglevel, TRACE_DEBUG_FUNCTION |
| fService.enableLogLevel(sessionName, channelName, Arrays.asList(eventName5), LogLevelType.LOGLEVEL, TraceLogLevel.TRACE_DEBUG_FUNCTION, null, TraceDomainType.UST, new NullProgressMonitor()); |
| |
| // TODO add test with filters |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testAddContext() { |
| try { |
| // 1) session name, channel = null, 3 event names, kernel |
| String sessionName = "mysession2"; |
| String channelName = "mychannel"; |
| String eventName = "ust_tests_hello:tptest_sighandler"; |
| List<String> contexts = new ArrayList<>(); |
| contexts.add("prio"); |
| contexts.add("pid"); |
| |
| fShell.setScenario(SCEN_CONTEXT_HANDLING); |
| |
| List<String> availContexts = fService.getContextList(new NullProgressMonitor()); |
| assertNotNull(availContexts); |
| assertEquals(12, availContexts.size()); |
| |
| // A very "hard-coded" way to verify but it works ... |
| Set<String> expectedContexts = new HashSet<>(); |
| expectedContexts.add("pid"); |
| expectedContexts.add("procname"); |
| expectedContexts.add("prio"); |
| expectedContexts.add("nice"); |
| expectedContexts.add("vpid"); |
| expectedContexts.add("tid"); |
| expectedContexts.add("pthread_id"); |
| expectedContexts.add("vtid"); |
| expectedContexts.add("ppid"); |
| expectedContexts.add("vppid"); |
| expectedContexts.add("perf:cpu-cycles"); |
| expectedContexts.add("perf:cycles"); |
| |
| assertTrue(expectedContexts.containsAll(availContexts)); |
| |
| // 1) session name, channel = null, event name, loglevel-only, TRACE_DEBUG |
| fService.addContexts(sessionName, channelName, eventName, TraceDomainType.UST, contexts, new NullProgressMonitor()); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testAddContextFailure() { |
| |
| // 1) session name, channel = null, 3 event names, kernel |
| String sessionName = "mysession2"; |
| String channelName = "mychannel"; |
| String eventName = "ust_tests_hello:tptest_sighandler"; |
| List<String> contexts = new ArrayList<>(); |
| contexts.add("prio"); |
| contexts.add("pid"); |
| fShell.setScenario(SCEN_CONTEXT_ERROR_HANDLING); |
| try { |
| fService.getContextList(new NullProgressMonitor()); |
| fail("No exeption generated"); |
| } catch (ExecutionException e) { |
| // success |
| } |
| try { |
| // 1) session name, channel = null, event name, loglevel-only, TRACE_DEBUG |
| fService.addContexts(sessionName, channelName, eventName, TraceDomainType.UST, contexts, new NullProgressMonitor()); |
| fail("No exeption generated"); |
| } catch (ExecutionException e) { |
| // success |
| } |
| } |
| |
| @Test |
| public void testCreateSession2_1() { |
| |
| try { |
| fShell.setScenario(SCEN_CREATE_SESSION_2_1); |
| |
| ISessionInfo sessionInfo = new SessionInfo("mysession"); |
| sessionInfo.setNetworkUrl("net://172.0.0.1"); |
| sessionInfo.setStreamedTrace(true); |
| ISessionInfo info = fService.createSession(sessionInfo, new NullProgressMonitor()); |
| assertNotNull(info); |
| assertEquals("mysession", info.getName()); |
| assertEquals("net://172.0.0.1", info.getSessionPath()); |
| assertTrue(info.isStreamedTrace()); |
| fService.destroySession("mysession", new NullProgressMonitor()); |
| |
| sessionInfo = new SessionInfo("mysession"); |
| sessionInfo.setStreamedTrace(true); |
| sessionInfo.setNetworkUrl("file:///tmp"); |
| info = fService.createSession(sessionInfo, new NullProgressMonitor()); |
| assertNotNull(info); |
| assertEquals("mysession", info.getName()); |
| assertEquals("file:///tmp", info.getSessionPath()); |
| assertTrue(!info.isStreamedTrace()); |
| fService.destroySession("mysession", new NullProgressMonitor()); |
| |
| sessionInfo = new SessionInfo("mysession"); |
| sessionInfo.setStreamedTrace(true); |
| sessionInfo.setNetworkUrl("file:///tmp"); |
| info = fService.createSession(sessionInfo, new NullProgressMonitor()); |
| assertNotNull(info); |
| assertEquals("mysession", info.getName()); |
| assertEquals("file:///tmp", info.getSessionPath()); |
| assertTrue(!info.isStreamedTrace()); |
| fService.destroySession("mysession", new NullProgressMonitor()); |
| |
| sessionInfo = new SessionInfo("mysession"); |
| sessionInfo.setStreamedTrace(true); |
| sessionInfo.setControlUrl("tcp://172.0.0.1"); |
| sessionInfo.setDataUrl("tcp://172.0.0.1:5343"); |
| info = fService.createSession(sessionInfo, new NullProgressMonitor()); |
| assertNotNull(info); |
| assertEquals("mysession", info.getName()); |
| assertEquals("", info.getSessionPath()); // the complete network path is not available at this point |
| assertTrue(info.isStreamedTrace()); |
| fService.destroySession("mysession", new NullProgressMonitor()); |
| |
| sessionInfo = new SessionInfo("mysession"); |
| sessionInfo.setStreamedTrace(true); |
| sessionInfo.setNetworkUrl("net://172.0.0.1:1234:2345"); |
| info = fService.createSession(sessionInfo, new NullProgressMonitor()); |
| assertNotNull(info); |
| assertEquals("mysession", info.getName()); |
| assertEquals("net://172.0.0.1:1234:2345", info.getSessionPath()); |
| assertTrue(info.isStreamedTrace()); |
| fService.destroySession("mysession", new NullProgressMonitor()); |
| |
| // verbose |
| enableVerbose(); |
| sessionInfo = new SessionInfo("mysession"); |
| sessionInfo.setStreamedTrace(true); |
| sessionInfo.setNetworkUrl("net://172.0.0.1"); |
| info = fService.createSession(sessionInfo, new NullProgressMonitor()); |
| assertNotNull(info); |
| assertEquals("mysession", info.getName()); |
| assertEquals("net://172.0.0.1", info.getSessionPath()); |
| assertTrue(info.isStreamedTrace()); |
| disableVerbose(); |
| fService.destroySession("mysession", new NullProgressMonitor()); |
| |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testCreateSessionVerbose2_1() { |
| try { |
| fShell.setScenario(SCEN_CREATE_SESSION_VERBOSE_2_1); |
| |
| enableVerbose(); |
| ISessionInfo sessionInfo = new SessionInfo("mysession"); |
| sessionInfo.setStreamedTrace(true); |
| sessionInfo.setNetworkUrl("net://172.0.0.1"); |
| ISessionInfo info = fService.createSession(sessionInfo, new NullProgressMonitor()); |
| assertNotNull(info); |
| assertEquals("mysession", info.getName()); |
| assertEquals("net://172.0.0.1", info.getSessionPath()); |
| assertTrue(info.isStreamedTrace()); |
| fService.destroySession("mysession", new NullProgressMonitor()); |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } finally { |
| disableVerbose(); |
| } |
| } |
| |
| @Test |
| public void testCreateSnapshotSession() { |
| try { |
| fShell.setScenario(SCEN_CREATE_SNAPSHOT_SESSION); |
| ISessionInfo params = new SessionInfo("mysession"); |
| params.setSnapshot(true); |
| ISessionInfo sessionInfo = fService.createSession(params, new NullProgressMonitor()); |
| assertNotNull(sessionInfo); |
| assertEquals("mysession", sessionInfo.getName()); |
| assertTrue(sessionInfo.isSnapshotSession()); |
| assertEquals("", sessionInfo.getSessionPath()); |
| assertTrue(!sessionInfo.isStreamedTrace()); |
| |
| assertEquals(TraceSessionState.INACTIVE, sessionInfo.getSessionState()); |
| |
| List<String> names = fService.getSessionNames(new NullProgressMonitor()); |
| assertEquals(names.get(0), "mysession"); |
| |
| ISnapshotInfo snapshotInfo = fService.getSnapshotInfo("mysession", new NullProgressMonitor()); |
| assertNotNull(snapshotInfo); |
| assertEquals("snapshot-1", snapshotInfo.getName()); |
| assertEquals("/home/user/lttng-traces/mysession-20130913-141651", snapshotInfo.getSnapshotPath()); |
| assertEquals(1, snapshotInfo.getId()); |
| assertTrue(!snapshotInfo.isStreamedSnapshot()); |
| |
| // we need to set the snapshotInfo to so that the session path is set correctly |
| sessionInfo.setSnapshotInfo(snapshotInfo); |
| assertEquals("/home/user/lttng-traces/mysession-20130913-141651", sessionInfo.getSessionPath()); |
| |
| fService.recordSnapshot("mysession", new NullProgressMonitor()); |
| |
| fService.destroySession("mysession", new NullProgressMonitor()); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testCreateSnapshotSession2_5() { |
| try { |
| fShell.setScenario(SCEN_CREATE_SNAPSHOT_SESSION_2_5); |
| ISessionInfo params = new SessionInfo("mysession"); |
| params.setSnapshot(true); |
| ISessionInfo sessionInfo = fService.createSession(params, new NullProgressMonitor()); |
| assertNotNull(sessionInfo); |
| assertEquals("mysession", sessionInfo.getName()); |
| assertTrue(sessionInfo.isSnapshotSession()); |
| assertEquals("", sessionInfo.getSessionPath()); |
| assertTrue(!sessionInfo.isStreamedTrace()); |
| |
| assertEquals(TraceSessionState.INACTIVE, sessionInfo.getSessionState()); |
| |
| List<String> names = fService.getSessionNames(new NullProgressMonitor()); |
| assertEquals(names.get(0), "mysession"); |
| |
| ISnapshotInfo snapshotInfo = fService.getSnapshotInfo("mysession", new NullProgressMonitor()); |
| assertNotNull(snapshotInfo); |
| assertEquals("snapshot-1", snapshotInfo.getName()); |
| assertEquals("/home/user/lttng-traces/mysession-20130913-141651", snapshotInfo.getSnapshotPath()); |
| assertEquals(1, snapshotInfo.getId()); |
| assertTrue(!snapshotInfo.isStreamedSnapshot()); |
| |
| // we need to set the snapshotInfo to so that the session path is set correctly |
| sessionInfo.setSnapshotInfo(snapshotInfo); |
| assertEquals("/home/user/lttng-traces/mysession-20130913-141651", sessionInfo.getSessionPath()); |
| |
| fService.recordSnapshot("mysession", new NullProgressMonitor()); |
| |
| fService.destroySession("mysession", new NullProgressMonitor()); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| public void testCreateStreamedSnapshotSession() { |
| try { |
| fShell.setScenario(SCEN_CREATE_STREAMED_SNAPSHOT_SESSION); |
| |
| ISessionInfo params = new SessionInfo("mysession"); |
| params.setNetworkUrl("net://172.0.0.1"); |
| ISessionInfo sessionInfo = fService.createSession(params, new NullProgressMonitor()); |
| assertNotNull(sessionInfo); |
| assertEquals("mysession", sessionInfo.getName()); |
| assertTrue(sessionInfo.isSnapshotSession()); |
| |
| assertEquals(TraceSessionState.INACTIVE, sessionInfo.getSessionState()); |
| assertTrue(sessionInfo.isStreamedTrace()); |
| |
| List<String> names = fService.getSessionNames(new NullProgressMonitor()); |
| assertEquals(names.get(0), "mysession"); |
| |
| ISnapshotInfo snapshotInfo = sessionInfo.getSnapshotInfo(); |
| assertNotNull(sessionInfo); |
| assertEquals("snapshot-2", snapshotInfo.getName()); |
| assertEquals("net4://172.0.0.1:5342/", snapshotInfo.getSnapshotPath()); |
| assertEquals(2, snapshotInfo.getId()); |
| assertTrue(snapshotInfo.isStreamedSnapshot()); |
| |
| // we need to set the snapshotInfo to so that the session path is set correctly |
| sessionInfo.setSnapshotInfo(snapshotInfo); |
| assertEquals("net4://172.0.0.1:5342/", sessionInfo.getSessionPath()); |
| |
| fService.recordSnapshot("mysession", new NullProgressMonitor()); |
| |
| fService.destroySession("mysession", new NullProgressMonitor()); |
| |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| } |
| |
| @Test |
| public void testCreateSnapshotSessionErrors() { |
| try { |
| fShell.setScenario(SCEN_CREATE_SNAPSHOT_SESSION_ERRORS); |
| |
| List<String> names = fService.getSessionNames(new NullProgressMonitor()); |
| assertEquals(names.get(0), "mysession"); |
| } catch (ExecutionException e) { |
| fail(e.toString()); |
| } |
| |
| try { |
| fService.getSnapshotInfo("blabla", new NullProgressMonitor()); |
| fail("getSnapshoInfo() didn't fail"); |
| } catch (ExecutionException e) { |
| // successful |
| } |
| |
| try { |
| fService.recordSnapshot("blabla", new NullProgressMonitor()); |
| fail("getSnapshoInfo() didn't fail"); |
| } catch (ExecutionException e) { |
| // successful |
| } |
| |
| try { |
| fService.recordSnapshot("mysession", new NullProgressMonitor()); |
| fail("getSnapshoInfo() didn't fail"); |
| } catch (ExecutionException e) { |
| // successful |
| } |
| } |
| |
| @Test |
| @Ignore |
| public void testCreateLiveSession() throws ExecutionException { |
| fShell.setScenario(SCEN_CREATE_LIVE_SESSION); |
| |
| ISessionInfo params = new SessionInfo("mysession"); |
| params.setLive(true); |
| params.setStreamedTrace(true); |
| params.setNetworkUrl("net://127.0.0.1"); |
| ISessionInfo sessionInfo = fService.createSession(params, new NullProgressMonitor()); |
| assertNotNull(sessionInfo); |
| assertEquals("mysession", sessionInfo.getName()); |
| assertEquals(TraceSessionState.INACTIVE, sessionInfo.getSessionState()); |
| assertTrue(sessionInfo.isStreamedTrace()); |
| assertTrue(sessionInfo.isLive()); |
| assertEquals("net://127.0.0.1", sessionInfo.getSessionPath()); |
| List<String> names = fService.getSessionNames(new NullProgressMonitor()); |
| assertEquals(names.get(0), "mysession"); |
| fService.destroySession("mysession", new NullProgressMonitor()); |
| } |
| |
| @Test |
| @Ignore |
| public void testCreateLiveSessionErrors() { |
| try { |
| fShell.setScenario(SCEN_CREATE_LIVE_SESSION_ERRORS); |
| |
| ISessionInfo parameters = new SessionInfo("mysession"); |
| parameters.setLive(true); |
| parameters.setSnapshot(true); |
| fService.createSession(parameters, new NullProgressMonitor()); |
| fail("createSession() didn't fail"); |
| } catch (ExecutionException e) { |
| // successful |
| } |
| |
| try { |
| ISessionInfo parameters = new SessionInfo("mysession"); |
| parameters.setNetworkUrl("blah"); |
| parameters.setLive(true); |
| fService.createSession(parameters, new NullProgressMonitor()); |
| fail("createSession() didn't fail"); |
| } catch (ExecutionException e) { |
| // successful |
| } |
| |
| try { |
| ISessionInfo parameters = new SessionInfo("mysession"); |
| parameters.setControlUrl("net://127.0.0.1"); |
| parameters.setLive(true); |
| fService.createSession(parameters, new NullProgressMonitor()); |
| fail("createSession() didn't fail"); |
| } catch (ExecutionException e) { |
| // successful |
| } |
| } |
| |
| @Test |
| public void testSessionProfile() { |
| fShell.setScenario(SCEN_SESSION_PROFILES); |
| final String profile = "/home/user/.lttng/sessions/mysession.lttng"; |
| try { |
| fService.loadSession(profile, false, new NullProgressMonitor()); |
| } catch (ExecutionException e) { |
| fail("load session failed: " + e); |
| } |
| |
| try { |
| fService.loadSession(profile, true, new NullProgressMonitor()); |
| } catch (ExecutionException e) { |
| fail("load session failed: " + e); |
| } |
| |
| try { |
| fService.saveSession(null, null, false, new NullProgressMonitor()); |
| } catch (ExecutionException e) { |
| fail("save session failed: " + e); |
| } |
| |
| final String sessionName = "mysession"; |
| try { |
| fService.saveSession(sessionName, null, false, new NullProgressMonitor()); |
| } catch (ExecutionException e) { |
| fail("save session failed: " + e); |
| } |
| |
| try { |
| fService.saveSession(sessionName, null, true, new NullProgressMonitor()); |
| } catch (ExecutionException e) { |
| fail("save session failed: " + e); |
| } |
| |
| try { |
| fService.saveSession(sessionName, "/tmp/test", true, new NullProgressMonitor()); |
| } catch (ExecutionException e) { |
| fail("save session failed: " + e); |
| } |
| } |
| |
| private static void enableVerbose() { |
| // verbose |
| ControlCommandLogger.init(ControlPreferences.getInstance().getLogfilePath(), false); |
| ControlPreferences.getInstance().getPreferenceStore().setDefault(ControlPreferences.TRACE_CONTROL_LOG_COMMANDS_PREF, true); |
| ControlPreferences.getInstance().getPreferenceStore().setDefault(ControlPreferences.TRACE_CONTROL_VERBOSE_LEVEL_PREF, ControlPreferences.TRACE_CONTROL_VERBOSE_LEVEL_V_V_VERBOSE); |
| } |
| |
| private static void disableVerbose() { |
| ControlPreferences.getInstance().getPreferenceStore().setDefault(ControlPreferences.TRACE_CONTROL_LOG_COMMANDS_PREF, false); |
| } |
| |
| |
| } |