control: Bug 468358: Display syscall names for LTTng 2.6 support
authorBernd Hufmann <Bernd.Hufmann@ericsson.com>
Tue, 26 May 2015 17:04:14 +0000 (13:04 -0400)
committerBernd Hufmann <bernd.hufmann@ericsson.com>
Tue, 26 May 2015 19:06:49 +0000 (15:06 -0400)
Change-Id: I55a0b49d9dfbb1947ff7f27bc92fd304d11dcdec
Signed-off-by: Bernd Hufmann <Bernd.Hufmann@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/48670
Reviewed-by: Hudson CI
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/service/LTTngControlServiceMiTest.java
org.eclipse.tracecompass.lttng2.control.ui.tests/testfiles/LTTngServiceMiTest.cfg
org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/service/LTTngControlServiceMI.java

index 13e6d4c4679a562a920bdd85da78703469695450..626f4f163cd1d2cd53ea5d6cd50124aff3f4a14d 100644 (file)
@@ -15,19 +15,27 @@ package org.eclipse.tracecompass.lttng2.control.ui.tests.service;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 import java.net.URL;
 import java.util.List;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.runtime.NullProgressMonitor;
+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.ISessionInfo;
+import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceChannelOutputType;
+import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceEnablement;
+import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceEventType;
 import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceLogLevel;
 import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceSessionState;
 import org.eclipse.tracecompass.internal.lttng2.control.core.model.impl.SessionInfo;
 import org.eclipse.tracecompass.internal.lttng2.control.ui.views.service.ILttngControlService;
 import org.eclipse.tracecompass.internal.lttng2.control.ui.views.service.LTTngControlServiceConstants;
 import org.eclipse.tracecompass.internal.lttng2.control.ui.views.service.LTTngControlServiceMI;
+import org.junit.Test;
 
 /**
  * @author ejorajo
@@ -37,6 +45,8 @@ public class LTTngControlServiceMiTest extends LTTngControlServiceTest {
 
     private static final String MI_TEST_STREAM = "LTTngServiceMiTest.cfg";
 
+    private static final String SCEN_SESSION_WITH_SYSCALLS = "GetSessionWithSyscalls";
+
     @Override
     protected ILttngControlService getControlService() {
         try {
@@ -146,4 +156,56 @@ public class LTTngControlServiceMiTest extends LTTngControlServiceTest {
     public void testCreateSnapshotSession2_5() {
         // not applicable for MI
     }
+
+    /**
+     * Tests the listing of syscalls
+     */
+    @Test
+    public void testListSycallEvents() {
+        try {
+            fShell.setScenario(SCEN_SESSION_WITH_SYSCALLS);
+            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.INACTIVE, session.getSessionState());
+
+            IDomainInfo[] domains = session.getDomains();
+            assertNotNull(domains);
+            assertEquals(1, domains.length);
+
+            // Verify Kernel domain
+            assertEquals("Kernel", domains[0].getName());
+            IChannelInfo[] channels =  domains[0].getChannels();
+            assertNotNull(channels);
+            assertEquals(1, 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("read", channel0Events[0].getName());
+            assertEquals(TraceEventType.SYSCALL, channel0Events[0].getEventType());
+            assertEquals(TraceEnablement.ENABLED, channel0Events[0].getState());
+
+            assertEquals("write", channel0Events[1].getName());
+            assertEquals(TraceEventType.SYSCALL, channel0Events[1].getEventType());
+            assertEquals(TraceEnablement.ENABLED, channel0Events[1].getState());
+        } catch (ExecutionException e) {
+            fail(e.toString());
+        }
+    }
 }
index cbc53033c9aedeaf66d82817a6166d5121f45ab4..1406ca4526ab10bb28b1f1e0295cbf42ebafecf2 100644 (file)
@@ -2549,4 +2549,68 @@ Error: You need both control and data URL.
 Error: Command error
 </COMMAND_ERROR_OUTPUT>
 </COMMAND_OUTPUT>
-</SCENARIO>
\ No newline at end of file
+</SCENARIO>
+
+####################################################################
+# Scenario: Test "lttng list <session> (version 2.6.0, syscalls)
+####################################################################
+<SCENARIO>
+GetSessionWithSyscalls
+<COMMAND_INPUT>
+lttng --mi xml list mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>list</name>
+  <output>
+    <sessions>
+      <session>
+        <name>mysession</name>
+        <path>/home/user/lttng-traces/mysession-20120129-084256</path>
+        <enabled>false</enabled><snapshot_mode>0</snapshot_mode>
+        <live_timer_interval>0</live_timer_interval>
+        <domains>
+          <domain>
+            <type>KERNEL</type>
+            <buffer_type>PER_PID</buffer_type>
+            <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>200</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>
+                </attributes><events>
+                <event>
+                  <name>read</name>
+                  <type>SYSCALL</type>
+                  <enabled>true</enabled>
+                  <filter>false</filter>
+                </event>
+                <event>
+                  <name>write</name>
+                  <type>SYSCALL</type>
+                  <enabled>true</enabled>
+                  <filter>false</filter>
+                </event>
+              </events>
+            </channel>
+          </channels>
+        </domain></domains>
+      </session>
+    </sessions>
+  </output>
+</command>
+</COMMAND_OUTPUT>
+</SCENARIO>
index 1d43d7f8a0adb3755227caf25c9ef6be6bcaf537..0b1c77fe7c7a93bd6323c74aaec910c7eb934801 100644 (file)
@@ -900,12 +900,6 @@ public class LTTngControlServiceMI extends LTTngControlService {
                     }
                 }
 
-                // Syscalls does not have name.
-                // Let put one to make sure this is user friendly via UI
-                if (eventInfo.getEventType().equals(TraceEventType.SYSCALL)) {
-                    eventInfo.setName(TraceEventType.SYSCALL.getInName());
-                }
-
                 // Add the event
                 events.add(eventInfo);
             }
This page took 0.028132 seconds and 5 git commands to generate.