control: command support for enabling all tracepoints/syscalls
authorBernd Hufmann <Bernd.Hufmann@ericsson.com>
Fri, 1 Apr 2016 13:09:34 +0000 (09:09 -0400)
committerBernd Hufmann <bernd.hufmann@ericsson.com>
Mon, 13 Jun 2016 10:58:12 +0000 (06:58 -0400)
Change-Id: I68f2783bfa9ff7882f8956a06028c0d63d286e98
Signed-off-by: Bernd Hufmann <Bernd.Hufmann@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/72207
Reviewed-by: Hudson CI
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
26 files changed:
doc/org.eclipse.tracecompass.doc.user/doc/User-Guide.mediawiki
doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2EnableAllEventsDialog.png [new file with mode: 0644]
doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2EnableEventWithKernelFilter.png
doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2EventOnSessionDialog.png
doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2FunctionEventDialog.png
doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2ProbeEventDialog.png
doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2SyscallsDialog.png
doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2TracepointEventsDialog.png
lttng/org.eclipse.tracecompass.lttng2.control.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/control/ui/swtbot/tests/ControlViewAllEventsTest.java [new file with mode: 0644]
lttng/org.eclipse.tracecompass.lttng2.control.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/control/ui/swtbot/tests/ControlViewKernelFilterTest.java
lttng/org.eclipse.tracecompass.lttng2.control.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/control/ui/swtbot/tests/ControlViewSwtBotUtil.java
lttng/org.eclipse.tracecompass.lttng2.control.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/control/ui/swtbot/tests/ControlViewTest.java
lttng/org.eclipse.tracecompass.lttng2.control.ui.swtbot.tests/testfiles/CreateSessionTestLTTng2_8.cfg
lttng/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/service/LTTngControlServiceTest.java
lttng/org.eclipse.tracecompass.lttng2.control.ui.tests/stubs/org/eclipse/tracecompass/internal/lttng2/control/stubs/dialogs/EnableEventsDialogStub.java
lttng/org.eclipse.tracecompass.lttng2.control.ui.tests/testfiles/LTTngServiceMi3Test.cfg
lttng/org.eclipse.tracecompass.lttng2.control.ui.tests/testfiles/LTTngServiceMiTest.cfg
lttng/org.eclipse.tracecompass.lttng2.control.ui.tests/testfiles/LTTngServiceTest.cfg
lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/EnableEventsDialog.java
lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/EnableKernelEventComposite.java
lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/IEnableKernelEvents.java
lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/handlers/BaseEnableEventHandler.java
lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/messages/Messages.java
lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/messages/messages.properties
lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/service/ILttngControlService.java
lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/service/LTTngControlService.java

index f001449889e41ec1b95fa02265473a7b4c3587ed..6245831a2002483f8759848f76b48ead72f94944 100644 (file)
@@ -1341,6 +1341,12 @@ A dialog box will open for entering information about events to be enabled.
 
 By default the domain '''Kernel''' is selected and the kernel specific data sections are created. From this dialog box kernel '''Tracepoint''' events, '''System calls (Syscall)''', a '''Dynamic Probe''' or a '''Dynamic Function entry/return''' probe can be enabled. Note that events of one of these types at a time can be enabled.
 
+To enable all '''Tracepoints''' and all '''System calls (Syscall)''', select the button '''Select''' of section '''All Tracepoint Events and Syscalls''' and press '''Ok'''.
+
+[[Image:images/LTTng2EnableAllEventsDialog.png]]
+
+Upon successful operation, the domain '''Kernel''' will be created in the tree (if neccessary), the default channel with name "channel0" will be added under the domain (if necessary) as well as all a wildcard event '''*''' of type  '''TRACEPOINT''' under the channel and a wildcard event '''*''' of type '''SYSCALL''' . The channel and events will be '''ENABLED'''.
+
 To enable '''Tracepoint''' events, first select the corresponding '''Select''' button, then select either all tracepoins (select '''All''') or select selectively one or more tracepoints in the displayed tree of tracepoints and finally press '''Ok'''.
 
 [[Image:images/LTTng2TracepointEventsDialog.png]]
diff --git a/doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2EnableAllEventsDialog.png b/doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2EnableAllEventsDialog.png
new file mode 100644 (file)
index 0000000..2c07bfa
Binary files /dev/null and b/doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2EnableAllEventsDialog.png differ
index d10c984cc922f671575e1dbb379b696aba206682..56506da4340d2b7084c47e4078a562d9bf3194c9 100644 (file)
Binary files a/doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2EnableEventWithKernelFilter.png and b/doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2EnableEventWithKernelFilter.png differ
index af952a94c5784c403e67729fda47014395bb5b1c..122aa1fe7474c2113a7ae3ab0953aa8b82b7c04b 100644 (file)
Binary files a/doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2EventOnSessionDialog.png and b/doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2EventOnSessionDialog.png differ
index 82c49b50cf4d075a125efc881dfc18dfd35c128a..8cc6c982ad14ae466934bb940b7035a291f04d9d 100644 (file)
Binary files a/doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2FunctionEventDialog.png and b/doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2FunctionEventDialog.png differ
index 0b44eee2c6aa2f023c10ee5ef0b474ea84683f16..80d94261f5c86c5e7e930c969272e99bbe106dad 100644 (file)
Binary files a/doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2ProbeEventDialog.png and b/doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2ProbeEventDialog.png differ
index c94f825548e81f0c1089e02f014f9f0c4c5abace..4f07ebcdd50a437a59f0c30735fbec3efa57801f 100644 (file)
Binary files a/doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2SyscallsDialog.png and b/doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2SyscallsDialog.png differ
index 55bcc750843314861fb42250251f122e8877381f..1730e50db694ef50610c4f4e1ef891c5e19e0c58 100644 (file)
Binary files a/doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2TracepointEventsDialog.png and b/doc/org.eclipse.tracecompass.doc.user/doc/images/LTTng2TracepointEventsDialog.png differ
diff --git a/lttng/org.eclipse.tracecompass.lttng2.control.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/control/ui/swtbot/tests/ControlViewAllEventsTest.java b/lttng/org.eclipse.tracecompass.lttng2.control.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/control/ui/swtbot/tests/ControlViewAllEventsTest.java
new file mode 100644 (file)
index 0000000..95fa5bb
--- /dev/null
@@ -0,0 +1,105 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *******************************************************************************/
+
+package org.eclipse.tracecompass.lttng2.control.ui.swtbot.tests;
+
+import static org.junit.Assert.assertEquals;
+
+import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotMenu;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceSessionState;
+import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.ConditionHelpers;
+import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.SWTBotUtils;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * Test for the Control view in Trace Compass. This will test the enabling
+ * Kernel and Syscalls at the same time.
+ *
+ * @author Bernd Hufmann
+ */
+@RunWith(SWTBotJunit4ClassRunner.class)
+public class ControlViewAllEventsTest extends ControlViewTest {
+
+    // ------------------------------------------------------------------------
+    // Constants
+    // ------------------------------------------------------------------------
+    private static final String TEST_STREAM = "CreateSessionTestLTTng2_8.cfg";
+    private static final String CREATE_SESSION_KERNEL_SCENARIO_NAME = "CreateSessionAllKernelEvents";
+
+    private static final String SESSION_NAME = "mysession";
+
+    @Override
+    protected String getTestStream() {
+        return TEST_STREAM;
+    }
+
+    @Override
+    protected String getSessionName() {
+        return SESSION_NAME;
+    }
+
+    @Override
+    @Test
+    public void testTraceSessionTree() {
+
+        fProxy.setTestFile(fTestFile);
+        fProxy.setScenario(INIT_SCENARIO_NAME);
+
+        testConnectToNode();
+        // Prepare for saving of profile
+        fProxy.setScenario(CREATE_SESSION_KERNEL_SCENARIO_NAME);
+        testCreateSession();
+        testEnableKernelEvent();
+        testStartStopTracing(TraceSessionState.ACTIVE);
+        testStartStopTracing(TraceSessionState.INACTIVE);
+        testDestroySession();
+        testDisconnectFromNode();
+    }
+
+    @Override
+    protected void testEnableKernelEvent() {
+        SWTBotTreeItem sessionItem = SWTBotUtils.getTreeItem(fBot, fTree,
+                getNodeName(),
+                ControlViewSwtBotUtil.SESSION_GROUP_NAME,
+                getSessionName());
+
+        sessionItem.select();
+        SWTBotMenu menuBot = sessionItem.contextMenu(ControlViewSwtBotUtil.ENABLE_EVENT_DEFAULT_CHANNEL_MENU_ITEM);
+        menuBot.click();
+
+        SWTBotShell shell = fBot.shell(ControlViewSwtBotUtil.ENABLE_EVENT_DIALOG_TITLE).activate();
+        // all tracepoint events and syscalls
+        shell.bot().radioInGroup(ControlViewSwtBotUtil.GROUP_SELECT_NAME, ControlViewSwtBotUtil.ALL_EVENT_GROUP_NAME).click();
+        shell.bot().button(ControlViewSwtBotUtil.DIALOG_OK_BUTTON).click();
+        SWTBotUtils.waitForJobs();
+
+        fBot.waitUntil(ConditionHelpers.IsTreeChildNodeAvailable(ControlViewSwtBotUtil.KERNEL_DOMAIN_NAME, sessionItem));
+
+        SWTBotTreeItem channelItem = SWTBotUtils.getTreeItem(fBot, fTree,
+                getNodeName(),
+                ControlViewSwtBotUtil.SESSION_GROUP_NAME,
+                getSessionName(),
+                ControlViewSwtBotUtil.KERNEL_DOMAIN_NAME,
+                ControlViewSwtBotUtil.DEFAULT_CHANNEL_NAME);
+        assertEquals(ControlViewSwtBotUtil.DEFAULT_CHANNEL_NAME, channelItem.getText());
+
+        SWTBotTreeItem eventItem = SWTBotUtils.getTreeItem(fBot, fTree,
+                getNodeName(),
+                ControlViewSwtBotUtil.SESSION_GROUP_NAME,
+                getSessionName(),
+                ControlViewSwtBotUtil.KERNEL_DOMAIN_NAME,
+                ControlViewSwtBotUtil.DEFAULT_CHANNEL_NAME,
+                ControlViewSwtBotUtil.ALL_EVENTS_NAME);
+        assertEquals(ControlViewSwtBotUtil.ALL_EVENTS_NAME, eventItem.getText());
+    }
+}
\ No newline at end of file
index 9c4aded752481573c442a8114ccbec31477766d8..88499658096f2c4ba32229c7d290511b23057b12 100644 (file)
@@ -108,6 +108,8 @@ public class ControlViewKernelFilterTest extends ControlViewTest {
 
         SWTBotShell shell = fBot.shell(ControlViewSwtBotUtil.ENABLE_EVENT_DIALOG_TITLE).activate();
 
+        shell.bot().radioInGroup(ControlViewSwtBotUtil.GROUP_SELECT_NAME, ControlViewSwtBotUtil.TRACEPOINTS_GROUP_NAME).click();
+
         SWTBotTree tracepointsTree = shell.bot().tree();
         tracepointsTree.select(ControlViewSwtBotUtil.ALL_TREE_NODE);
         SWTBotText filterText = shell.bot().textInGroup(ControlViewSwtBotUtil.FILTER_EXPRESSION_LABEL);
index da47fe0bb8587e9a1626fdd62c0cb7b82fb3289d..b5a40976f6b54fc39d696592df2d03d8bc3fc29b 100644 (file)
@@ -58,6 +58,8 @@ class ControlViewSwtBotUtil {
     public static final String CONFIRM_DIALOG_OK_BUTTON = "OK";
     public static final String ENABLE_EVENT_DIALOG_TITLE = "Enable Events";
     public static final String ALL_TREE_NODE = "All";
+    public static final String ALL_EVENT_GROUP_NAME = "All Tracepoint Events and Syscalls";
+    public static final String TRACEPOINTS_GROUP_NAME = "Tracepoint Events";
     public static final String SYSCALL_GROUP_NAME = "All Syscalls";
     public static final String GROUP_SELECT_NAME = "Select";
     public static final String ENABLE_CHANNEL_DIALOG_TITLE = "Enable Channel";
index 58a7175af33bf9542ae5a0d6cc4a892b81057c29..b9a77f3de194a49fc14f00f74de3c8485add4a30 100644 (file)
@@ -293,6 +293,8 @@ public class ControlViewTest {
 
         SWTBotShell shell = fBot.shell(ControlViewSwtBotUtil.ENABLE_EVENT_DIALOG_TITLE).activate();
 
+        shell.bot().radioInGroup(ControlViewSwtBotUtil.GROUP_SELECT_NAME, ControlViewSwtBotUtil.TRACEPOINTS_GROUP_NAME).click();
+
         SWTBotTree tracepointsTree = shell.bot().tree();
         tracepointsTree.select(ControlViewSwtBotUtil.ALL_TREE_NODE);
         shell.bot().button(ControlViewSwtBotUtil.DIALOG_OK_BUTTON).click();
index 32f6a722eabc97b93b1fabe32543d2fe9459e813..5327bf6119ede0d2769fc30db2be0ef238c7d1af 100644 (file)
@@ -333,4 +333,82 @@ lttng --mi xml destroy mysession
 <?xml version="1.0" encoding="UTF-8"?>
 <command xmlns="http://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://lttng.org/xml/ns/lttng-mi http://lttng.org/xml/schemas/lttng-mi/3/lttng-mi-3.0.xsd" schemaVersion="3.0"><name>destroy</name><output><sessions><session><name>mysession</name><path>${workspace}/lttng-traces/mysession-20160105-151744</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval></session></sessions></output><success>true</success></command>
 </COMMAND_OUTPUT>
-</SCENARIO>
\ No newline at end of file
+</SCENARIO>
+###############################################################################
+# Enable all kernel and syscall events using LTTng 2.8
+###############################################################################
+<SCENARIO>
+CreateSessionAllKernelEvents
+
+<COMMAND_INPUT>
+lttng --mi xml create mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command xmlns="http://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://lttng.org/xml/ns/lttng-mi http://lttng.org/xml/schemas/lttng-mi/3/lttng-mi-3.0.xsd" schemaVersion="3.0"><name>create</name><output><session><name>mysession</name><path>/home/bernd/lttng-traces/mysession-20160422-070226</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval></session></output><success>true</success></command>
+</COMMAND_OUTPUT>
+<COMMAND_INPUT>
+lttng --mi xml list mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command xmlns="http://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://lttng.org/xml/ns/lttng-mi http://lttng.org/xml/schemas/lttng-mi/3/lttng-mi-3.0.xsd" schemaVersion="3.0"><name>list</name><output><sessions><session><name>mysession</name><path>/home/bernd/lttng-traces/mysession-20160422-070226</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval><domains/></session></sessions></output></command>
+</COMMAND_OUTPUT>
+<COMMAND_INPUT>
+lttng --mi xml enable-event -a -k -s mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command xmlns="http://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://lttng.org/xml/ns/lttng-mi http://lttng.org/xml/schemas/lttng-mi/3/lttng-mi-3.0.xsd" schemaVersion="3.0"><name>enable-event</name><output><events><event><name>*</name><type>ALL</type><enabled>true</enabled><success>true</success></event></events></output><success>true</success></command>
+</COMMAND_OUTPUT>
+<COMMAND_INPUT>
+lttng --mi xml list mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command xmlns="http://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://lttng.org/xml/ns/lttng-mi http://lttng.org/xml/schemas/lttng-mi/3/lttng-mi-3.0.xsd" schemaVersion="3.0"><name>list</name><output><sessions><session><name>mysession</name><path>${workspace}/lttng-traces/mysession-20160610-165451</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval><domains><domain><type>KERNEL</type><buffer_type>GLOBAL</buffer_type><trackers/><channels><channel><name>channel0</name><enabled>true</enabled><attributes><overwrite_mode>DISCARD</overwrite_mode><subbuffer_size>262144</subbuffer_size><subbuffer_count>4</subbuffer_count><switch_timer_interval>0</switch_timer_interval><read_timer_interval>200000</read_timer_interval><output_type>SPLICE</output_type><tracefile_size>0</tracefile_size><tracefile_count>0</tracefile_count><live_timer_interval>0</live_timer_interval><discarded_events>0</discarded_events><lost_packets>0</lost_packets></attributes><events><event><name>*</name><type>SYSCALL</type><enabled>true</enabled></event><event><name>*</name><type>TRACEPOINT</type><enabled>true</enabled><loglevel>TRACE_EMERG</loglevel><loglevel_type>ALL</loglevel_type><exclusions/></event></events></channel></channels></domain></domains></session></sessions></output></command>
+</COMMAND_OUTPUT>
+<COMMAND_INPUT>
+lttng --mi xml start mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command xmlns="http://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://lttng.org/xml/ns/lttng-mi http://lttng.org/xml/schemas/lttng-mi/3/lttng-mi-3.0.xsd" schemaVersion="3.0"><name>start</name><output><sessions><session><name>mysession</name><enabled>true</enabled></session></sessions></output><success>true</success></command>
+</COMMAND_OUTPUT>
+<COMMAND_INPUT>
+lttng --mi xml stop mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command xmlns="http://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://lttng.org/xml/ns/lttng-mi http://lttng.org/xml/schemas/lttng-mi/3/lttng-mi-3.0.xsd" schemaVersion="3.0"><name>stop</name><output><sessions><session><name>mysession</name><enabled>false</enabled></session></sessions></output><success>true</success></command>
+</COMMAND_OUTPUT>
+<COMMAND_INPUT>
+lttng --mi xml destroy mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command xmlns="http://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://lttng.org/xml/ns/lttng-mi http://lttng.org/xml/schemas/lttng-mi/3/lttng-mi-3.0.xsd" schemaVersion="3.0"><name>destroy</name><output><sessions><session><name>mysession</name><path>/home/bernd/lttng-traces/mysession-20160422-070226</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval></session></sessions></output><success>true</success></command>
+</COMMAND_OUTPUT>
+</SCENARIO>
+
index 17273b4b3995755c1aa0ffbc08f1c063104e46e4..8618b25e30aea6f4a652053743800b01cdf21a69 100644 (file)
@@ -1119,7 +1119,8 @@ public class LTTngControlServiceTest {
             list.clear();
             fService.enableEvents(sessionName, channelName, list, false, null, new NullProgressMonitor());
 
-            // TODO add test with filters
+            // 6) session name, channel = null,
+            fService.enableEvents(sessionName, null, ILttngControlService.ALL_EVENTS, true, null, new NullProgressMonitor());
 
         } catch (ExecutionException e) {
             fail(e.toString());
index 0e3e9e72f72305db90495c9931617b3a6954b56b..67e80eb85391f5b924d6b93a6dcb5e14ef25c3cb 100644 (file)
@@ -31,6 +31,7 @@ public class EnableEventsDialogStub implements IEnableEventsDialog {
     // ------------------------------------------------------------------------
     private boolean fIsKernel;
     private boolean fIsTracePoints;
+    private boolean fIsAllEvents;
     private boolean fIsAllTracePoints;
     private boolean fIsSysCalls;
     private boolean fIsDynamicProbe;
@@ -55,6 +56,10 @@ public class EnableEventsDialogStub implements IEnableEventsDialog {
         fIsKernel = isKernel;
     }
 
+    public void setIsAllEvents(boolean isAllEvents) {
+        fIsAllEvents = isAllEvents;
+    }
+
     public void setIsTracePoints(boolean isTracePoints) {
         fIsTracePoints = isTracePoints;
     }
@@ -123,6 +128,11 @@ public class EnableEventsDialogStub implements IEnableEventsDialog {
         fFilter = filter;
     }
 
+    @Override
+    public boolean isAllEvents() {
+        return fIsAllEvents;
+    }
+
     @Override
     public boolean isTracepoints() {
         return fIsTracePoints;
index bee5051d436f5db0415517344ac944219ddc1a07..013be09bd59df6a683c0e58bf4e500db3bc31770 100644 (file)
@@ -1874,6 +1874,31 @@ lttng --mi xml enable-event myevent5 -u -s mysession2 -c mychannel --loglevel TR
 </command>
 </COMMAND_OUTPUT>
 
+<COMMAND_INPUT>
+lttng --mi xml enable-event -a -k -s mysession2
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command xmlns="http://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://lttng.org/xml/ns/lttng-mi http://lttng.org/xml/schemas/lttng-mi/3/lttng-mi-3.0.xsd" schemaVersion="3.0">
+  <name>enable-event</name>
+  <output>
+    <events>
+      <event>
+        <name>*</name>
+        <type>ALL</type>
+        <enabled>true</enabled>
+        <filter>false</filter>
+        <success>true</success>
+      </event>
+    </events>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
 </SCENARIO>
 
 ####################################################################
index faf95338dbddbf5c17010593df23b6e286b51f62..214e6a4290b10cb909369db6645106854b8cc6c9 100644 (file)
@@ -1831,6 +1831,31 @@ lttng --mi xml enable-event myevent5 -u -s mysession2 -c mychannel --loglevel TR
 </command>
 </COMMAND_OUTPUT>
 
+<COMMAND_INPUT>
+lttng --mi xml enable-event -a -k -s mysession2
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>enable-event</name>
+  <output>
+    <events>
+      <event>
+        <name>*</name>
+        <type>ALL</type>
+        <enabled>true</enabled>
+        <filter>false</filter>
+        <success>true</success>
+      </event>
+    </events>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
 </SCENARIO>
 
 ####################################################################
index 2f14c87734dfe05b3cc6f4ba69048b2068d0d791..6387f5fa0ba59ad5c7470594dc697d996505a6d0 100644 (file)
@@ -1010,6 +1010,16 @@ lttng enable-event myevent5 -u -s mysession2 -c mychannel --loglevel TRACE_DEBUG
 UST event myevent5 created in channel mychannel
 </COMMAND_OUTPUT>
 
+<COMMAND_INPUT>
+lttng enable-event -a -k -s mysession2
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+All Kernel events are enabled in channel channel0
+</COMMAND_OUTPUT>
+
 </SCENARIO>
 
 ####################################################################
@@ -1623,4 +1633,6 @@ lttng save -o /tmp/test -f mysession
 Session mysession saved successfully.
 </COMMAND_OUTPUT>
 
-</SCENARIO>
\ No newline at end of file
+</SCENARIO>
+
+</SCENARIO>
index 9de796b560bfceb56a335ae8183a87ad70b09147..48a20349bb7bbcebbfdbf92f79ad032c50872111 100644 (file)
@@ -105,6 +105,13 @@ public class EnableEventsDialog extends Dialog implements IEnableEventsDialog  {
     // ------------------------------------------------------------------------
     // Accessors
     // ------------------------------------------------------------------------
+    @Override
+    public boolean isAllEvents() {
+        if (fIsKernel) {
+            return fKernelComposite.isAllEvents();
+        }
+        return false;
+    }
 
     @Override
     public boolean isTracepoints() {
@@ -353,7 +360,7 @@ public class EnableEventsDialog extends Dialog implements IEnableEventsDialog  {
             }
         });
 
-        getShell().setMinimumSize(new Point(500, 650));
+        getShell().setMinimumSize(new Point(550, 750));
 
         return fDialogComposite;
     }
index d7f6db270c1bcf977346b518b2b6cf93459747b8..ae63d4f6a9133b78910bef6effb7abe8e2af25cd 100644 (file)
@@ -53,12 +53,16 @@ public class EnableKernelEventComposite extends Composite implements IEnableKern
     // ------------------------------------------------------------------------
     // Constants
     // ------------------------------------------------------------------------
-    private enum KernelGroupEnum { TRACEPOINTS, SYSCALLS, PROBE, FUNCTION }
+    private enum KernelGroupEnum { ALL, TRACEPOINTS, SYSCALLS, PROBE, FUNCTION }
 
     // ------------------------------------------------------------------------
     // Attributes
     // ------------------------------------------------------------------------
 
+    /**
+     * A button to enable/disable the all tracepoints&sycalls group
+     */
+    private Button fAllActivateButton;
     /**
      * A button to enable/disable the tracepoints group
      */
@@ -104,6 +108,10 @@ public class EnableKernelEventComposite extends Composite implements IEnableKern
      * component which contains a list of available tracepoints.
      */
     private final TraceProviderGroup fProviderGroup;
+    /**
+     * The flag indicating that all tracepoints/syscalls are selected.
+     */
+    private boolean fIsAllTracepointsAndSyscalls;
     /**
      * The flag indicating that tracepoints are selected.
      */
@@ -171,7 +179,10 @@ public class EnableKernelEventComposite extends Composite implements IEnableKern
     // ------------------------------------------------------------------------
     // Acessors
     // ------------------------------------------------------------------------
-
+    @Override
+    public boolean isAllEvents() {
+        return fIsAllTracepointsAndSyscalls;
+    }
     @Override
     public boolean isTracepoints() {
         return fIsTracepoints;
@@ -241,6 +252,9 @@ public class EnableKernelEventComposite extends Composite implements IEnableKern
      */
     public void createContent() {
 
+        // All Tracepoints/syscalls Group
+        createAllTracepointsSyscallGroup();
+
         // Tracepoints Group
         createTracepointsGroup();
 
@@ -257,7 +271,7 @@ public class EnableKernelEventComposite extends Composite implements IEnableKern
         createFilterGroup();
 
         // Set default enablements
-        setKernelEnablements(KernelGroupEnum.TRACEPOINTS);
+        setKernelEnablements(KernelGroupEnum.ALL);
     }
 
     /**
@@ -265,6 +279,7 @@ public class EnableKernelEventComposite extends Composite implements IEnableKern
      * @return true if configured data is valid and can be retrieved.
      */
     public boolean isValid() {
+        fIsAllTracepointsAndSyscalls = fAllActivateButton.getSelection();
         fIsTracepoints = fTracepointsActivateButton.getSelection();
         fIsSysCalls = fSysCallsActivateButton.getSelection();
         fIsDynamicProbe = fProbeActivateButton.getSelection();
@@ -339,6 +354,39 @@ public class EnableKernelEventComposite extends Composite implements IEnableKern
         return true;
     }
 
+    /**
+     * Creates all tracepoints/syscalls group.
+     */
+    private void createAllTracepointsSyscallGroup() {
+
+        GridLayout layout;
+        GridData data;
+        Group tpMainGroup = new Group(this, SWT.SHADOW_NONE);
+        tpMainGroup.setText(Messages.TraceControl_EnableEventsAllEventsLabel);
+        layout = new GridLayout(2, false);
+        tpMainGroup.setLayout(layout);
+        data = new GridData(GridData.FILL_HORIZONTAL);
+        tpMainGroup.setLayoutData(data);
+
+        Composite buttonComposite = new Composite(tpMainGroup, SWT.NONE);
+        layout = new GridLayout(1, true);
+        buttonComposite.setLayout(layout);
+        data = new GridData(SWT.BEGINNING, SWT.CENTER, false, true);
+        buttonComposite.setLayoutData(data);
+
+        fAllActivateButton = new Button(buttonComposite, SWT.RADIO);
+        fAllActivateButton.setText(Messages.TraceControl_EnableGroupSelectionName);
+        fAllActivateButton.setToolTipText(Messages.TraceControl_EnableEventsAllEventsTooltip);
+        data = new GridData(GridData.FILL_HORIZONTAL);
+        fAllActivateButton.setLayoutData(data);
+        fAllActivateButton.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                setKernelEnablements(KernelGroupEnum.ALL);
+            }
+        });
+    }
+
     /**
      * Creates tracepoints group.
      */
@@ -561,6 +609,7 @@ public class EnableKernelEventComposite extends Composite implements IEnableKern
      * @param group - group to enable.
      */
     private void setKernelEnablements(KernelGroupEnum group) {
+        fAllActivateButton.setSelection(group == KernelGroupEnum.ALL);
         fTracepointsActivateButton.setSelection(group == KernelGroupEnum.TRACEPOINTS);
         fTracepointsViewer.getTree().setEnabled(group == KernelGroupEnum.TRACEPOINTS);
 
index 44b2eb50aadede510585cb1255eba7aa55f44a74..868f30164ec9cd6f0a24022d6e0ae1aefaf8f167 100644 (file)
@@ -31,6 +31,11 @@ public interface IEnableKernelEvents {
      */
     boolean isTracepoints();
 
+    /**
+     * @return a flag indicating all tracepoints and syscall shall be enabled or not
+     */
+    boolean isAllEvents();
+
     /**
      * @return a flag indicating whether all tracepoints shall be enabled or not.
      */
index 1fe8a58df9e1df9ad1f927c1c7fadf19648d1c55..aa78d62aebd6542bc58cacd5993c2b157142e493 100644 (file)
@@ -32,6 +32,7 @@ import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.ITraceCon
 import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TargetNodeComponent;
 import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceDomainComponent;
 import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceProviderGroup;
+import org.eclipse.tracecompass.internal.lttng2.control.ui.views.service.ILttngControlService;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PlatformUI;
 
@@ -50,7 +51,8 @@ public abstract class BaseEnableEventHandler extends BaseControlViewHandler {
     /**
      * The command execution parameter.
      */
-    @Nullable protected CommandParameter fParam = null;
+    @Nullable
+    protected CommandParameter fParam = null;
 
     // ------------------------------------------------------------------------
     // Operations
@@ -158,7 +160,7 @@ public abstract class BaseEnableEventHandler extends BaseControlViewHandler {
         List<ITraceControlComponent> providers = node.getChildren(TraceProviderGroup.class);
 
         final IEnableEventsDialog dialog = TraceControlDialogFactory.getInstance().getEnableEventsDialog();
-        dialog.setTraceProviderGroup((TraceProviderGroup)providers.get(0));
+        dialog.setTraceProviderGroup((TraceProviderGroup) providers.get(0));
         dialog.setTraceDomainComponent(getDomain(param));
 
         if (dialog.open() != Window.OK) {
@@ -172,9 +174,10 @@ public abstract class BaseEnableEventHandler extends BaseControlViewHandler {
 
                 try {
                     String filter = dialog.getFilterExpression();
-
-                    // Enable tracepoint events
-                    if (dialog.isTracepoints()) {
+                    if (dialog.isAllEvents()) {
+                        enableEvents(param, ILttngControlService.ALL_EVENTS, dialog.isKernel(), filter, monitor);
+                    } else if (dialog.isTracepoints()) {
+                        // Enable tracepoint events
                         if (dialog.isAllTracePoints()) {
                             enableEvents(param, null, dialog.isKernel(), filter, monitor);
                         } else {
index 613a9edcad076ab4744ff2cbdf4257e687e42991..ba9e39b4563a2fb35d1052b250cd1b71b84a711a 100644 (file)
@@ -201,6 +201,8 @@ public final class Messages extends NLS {
     public static String TraceControl_EnableEventsNoChannelError;
 
     public static String TraceControl_EnableGroupSelectionName;
+    public static String TraceControl_EnableEventsAllEventsLabel;
+    public static String TraceControl_EnableEventsAllEventsTooltip;
     public static String TraceControl_EnableEventsTracepointGroupName;
     public static String TraceControl_EnableEventsTracepointTreeTooltip;
     public static String TraceControl_EnableEventsTracepointTreeAllLabel;
index b75a9f5ca11f29f74eb9092eb32e623694c935d9..5f980989d53f518895ae5f494ac4cd4e19298957 100644 (file)
@@ -189,6 +189,8 @@ TraceControl_EnableEventsNoSessionError=No session from session list is selected
 TraceControl_EnableEventsNoChannelError=No channel from channel list is selected.
 
 TraceControl_EnableGroupSelectionName=Select
+TraceControl_EnableEventsAllEventsLabel=All Tracepoint Events and Syscalls
+TraceControl_EnableEventsAllEventsTooltip=Enable all tracepoint events and all Syscalls
 TraceControl_EnableEventsTracepointGroupName=Tracepoint Events
 TraceControl_EnableEventsTracepointTreeTooltip=List of available kernel tracepoint events
 TraceControl_EnableEventsTracepointTreeAllLabel=All
index 48c59dc246c370b143eb95d5e980c3bc91970488..3f89b19bcc20fb71bc8c7e1a4ee2bd157b264241 100644 (file)
@@ -12,6 +12,7 @@
  **********************************************************************/
 package org.eclipse.tracecompass.internal.lttng2.control.ui.views.service;
 
+import java.util.Collections;
 import java.util.List;
 
 import org.eclipse.core.commands.ExecutionException;
@@ -36,6 +37,12 @@ import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceLogLevel
 */
 public interface ILttngControlService {
 
+
+    /**
+     * List to enable all events
+     */
+    @NonNull List<String> ALL_EVENTS = Collections.singletonList("*");  //$NON-NLS-1$
+
     /**
      * @return the LTTng version object
      */
index 133c171e2fd20f698f839d51e9f13f93a48d6434..998db7eddfb8928f81a9c941eaa083fe51cef579 100644 (file)
@@ -68,7 +68,6 @@ import org.eclipse.tracecompass.tmf.remote.core.shell.ICommandShell;
  */
 public class LTTngControlService implements ILttngControlService {
 
-
     // ------------------------------------------------------------------------
     // Attributes
     // ------------------------------------------------------------------------
@@ -779,8 +778,9 @@ public class LTTngControlService implements ILttngControlService {
     public void enableEvents(String sessionName, String channelName, List<String> eventNames, boolean isKernel, String filterExpression, IProgressMonitor monitor) throws ExecutionException {
 
         ICommandInput command = createCommand(LTTngControlServiceConstants.COMMAND_ENABLE_EVENT);
+        boolean isAllEvents = ALL_EVENTS.equals(eventNames);
 
-        if (eventNames == null || eventNames.isEmpty()) {
+        if (isAllEvents || (eventNames == null) || (eventNames.isEmpty())) {
             command.add(LTTngControlServiceConstants.OPTION_ALL);
         } else {
             command.add(toCsv(eventNames));
@@ -800,7 +800,9 @@ public class LTTngControlService implements ILttngControlService {
             command.add(channelName);
         }
 
-        command.add(LTTngControlServiceConstants.OPTION_TRACEPOINT);
+        if (!isAllEvents) {
+            command.add(LTTngControlServiceConstants.OPTION_TRACEPOINT);
+        }
 
         if (filterExpression != null) {
             command.add(LTTngControlServiceConstants.OPTION_FILTER);
This page took 0.053106 seconds and 5 git commands to generate.