[LTTng control] fix snapshot session for non-live sessions (Bug 459552)
authorBernd Hufmann <Bernd.Hufmann@ericsson.com>
Tue, 10 Feb 2015 14:19:14 +0000 (09:19 -0500)
committerBernd Hufmann <bernd.hufmann@ericsson.com>
Wed, 11 Feb 2015 14:00:35 +0000 (09:00 -0500)
Change-Id: Ida1601dea6718394a32b7633695c4194c17d25d1
Signed-off-by: Bernd Hufmann <Bernd.Hufmann@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/41524
Reviewed-by: Hudson CI
Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Tested-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/service/LTTngControlServiceTest.java
org.eclipse.tracecompass.lttng2.control.ui.tests/testfiles/LTTngServiceMiTest.cfg
org.eclipse.tracecompass.lttng2.control.ui.tests/testfiles/LTTngServiceTest.cfg
org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/service/LTTngControlService.java
org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/service/LTTngControlServiceConstants.java
org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/service/LTTngControlServiceMI.java

index bd96f92be72b295ddb4a827597bf7280de679992..84c0c774cafbd2ea2c123d76a3d476da33b6cd98 100644 (file)
@@ -15,6 +15,7 @@
 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;
@@ -83,6 +84,7 @@ public class LTTngControlServiceTest {
     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";
@@ -474,6 +476,43 @@ public class LTTngControlServiceTest {
         }
     }
 
+    @Test
+    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
      */
index 4677f4e0535939b4fa693fb4a227e95aa0aabfdc..cbc53033c9aedeaf66d82817a6166d5121f45ab4 100644 (file)
@@ -8,6 +8,7 @@
 #
 # Contributors:
 #    Jonathan Rajotte - Initial API and implementation
+#    Bernd Hufmann - Added new test cases
 ####################################################################
 ####################################################################
 # Scenario: Test lttng not installed
@@ -457,6 +458,123 @@ lttng --mi xml list mysession1
 </SCENARIO>
 
 
+####################################################################
+# Scenario: Test lttng list <name> (with live time interval)
+####################################################################
+<SCENARIO>
+GetSessionWithLiveInterval
+<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>1</snapshot_mode>
+        <live_timer_interval>4294967295</live_timer_interval>
+        <domains>
+        </domains>
+      </session>
+    </sessions>
+  </output>
+</command>
+</COMMAND_OUTPUT>
+#------------------------------------------------------------------------------
+<COMMAND_INPUT>
+lttng --mi xml snapshot list-output -s mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>snapshot</name>
+  <output>
+    <snapshot_action>
+      <name>list-output</name>
+      <output>
+        <session>
+          <name>mysession</name>
+          <snapshots>
+            <snapshot>
+              <id>1</id>
+              <name>snapshot-1</name>
+              <ctrl_url>/home/user/lttng-traces/mysession-20120129-084256</ctrl_url>
+              <data_url/>
+              <max_size>0</max_size>
+            </snapshot>
+          </snapshots>
+        </session>
+      </output>
+    </snapshot_action>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+#------------------------------------------------------------------------------
+<COMMAND_INPUT>
+lttng --mi xml list mysession1
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>list</name>
+  <output>
+    <sessions>
+      <session>
+        <name>mysession1</name>
+        <path>/home/user/lttng-traces/mysession1-20120129-084256</path>
+        <enabled>true</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 list mysession2
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>list</name>
+  <output>
+    <sessions>
+      <session>
+        <name>mysession2</name>
+        <path>tcp4://172.0.0.1:5342/ [data: 5343]</path>
+        <enabled>false</enabled>
+        <snapshot_mode>0</snapshot_mode>
+        <live_timer_interval>1000000</live_timer_interval>
+        <domains/>
+      </session>
+    </sessions>
+  </output>
+</command>
+</COMMAND_OUTPUT>
+
+</SCENARIO>
+
+
 ####################################################################
 # Scenario: Test "lttng list -k" with sample output
 ####################################################################
index 0c3f7c92d94241ec0c36a84f927987dcc1ba622e..316d0de81af66f68ad701a3212f5dea7460275ae 100644 (file)
@@ -332,6 +332,61 @@ Tracing session mysession1: [inactive]
 </COMMAND_OUTPUT>
 </SCENARIO>
 
+####################################################################
+# Scenario: Test lttng list <name> (with live time interval)
+####################################################################
+<SCENARIO>
+GetSessionWithLiveInterval
+<COMMAND_INPUT>
+lttng list mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+Tracing session mysession: [inactive snapshot]
+    Trace path: 
+    Live timer interval (usec): 4294967295
+
+</COMMAND_OUTPUT>
+#------------------------------------------------------------------------------
+<COMMAND_INPUT>
+lttng snapshot list-output -s mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+Snapshot output list for session mysession
+    [1] snapshot-1: /home/user/lttng-traces/mysession-20120129-084256 (max-size: 0)
+</COMMAND_OUTPUT>
+#------------------------------------------------------------------------------
+<COMMAND_INPUT>
+lttng list mysession1
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+Tracing session mysession1: [active]
+    Trace path: /home/user/lttng-traces/mysession1-20120129-084256
+    Live timer interval (usec): 0
+
+</COMMAND_OUTPUT>
+#------------------------------------------------------------------------------
+<COMMAND_INPUT>
+lttng list mysession2
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+Tracing session mysession2: [inactive]
+    Trace path: tcp4://172.0.0.1:5342/ [data: 5343]
+    Live timer interval (usec): 1000000
+
+</COMMAND_OUTPUT>
+</SCENARIO>
 
 ####################################################################
 # Scenario: Test "lttng list -k" with sample output
index 413be739c1ae76542d2f93e3891684ced980a77d..5e974404249bce33b60bece597ef7cbf6f61002a 100644 (file)
@@ -287,7 +287,7 @@ public class LTTngControlService implements ILttngControlService {
             matcher = LTTngControlServiceConstants.LIST_LIVE_TIMER_INTERVAL_PATTERN.matcher(line);
             if (matcher.matches()) {
                 long liveDelay = Long.parseLong(matcher.group(1));
-                if (liveDelay > 0) {
+                if ((liveDelay > 0) && (liveDelay <= LTTngControlServiceConstants.MAX_LIVE_TIMER_INTERVAL)) {
                     sessionInfo.setLive(true);
                     sessionInfo.setLiveUrl(SessionInfo.DEFAULT_LIVE_NETWORK_URL);
                     sessionInfo.setLivePort(SessionInfo.DEFAULT_LIVE_PORT);
index e55286ec24f6357cbd959cb738d2ee3d128c0e74..1a57dd5c7de5e0a7b143f72d9c32dfe6038b6236 100644 (file)
@@ -274,6 +274,11 @@ public interface LTTngControlServiceConstants {
      */
     String OPTION_MAX_TRACE_FILES = "-W"; //$NON-NLS-1$
 
+    /**
+     * Maximum live timer interval value
+     */
+    Long MAX_LIVE_TIMER_INTERVAL = 0xFFFFFFFEL;
+
     // ------------------------------------------------------------------------
     // Parsing constants
     // ------------------------------------------------------------------------
index 69d50b9738c93bebe6c974caf84fc3974966202d..72e639407dbb73c12b99c1913e8708dc61734f68 100644 (file)
@@ -8,6 +8,7 @@
  *
  * Contributors:
  *   Jonathan Rajotte - Initial support for machine interface lttng 2.6
+ *   Bernd Hufmann - Fix check for live session
  **********************************************************************/
 
 package org.eclipse.tracecompass.internal.lttng2.control.ui.views.service;
@@ -273,7 +274,7 @@ public class LTTngControlServiceMI extends LTTngControlService {
                 break;
             case MIStrings.LIVE_TIMER_INTERVAL:
                 long liveDelay = Long.parseLong(rawInfo.getTextContent());
-                if (liveDelay > 0) {
+                if ((liveDelay > 0 && (liveDelay <= LTTngControlServiceConstants.MAX_LIVE_TIMER_INTERVAL))) {
                     sessionInfo.setLive(true);
                     sessionInfo.setLiveUrl(SessionInfo.DEFAULT_LIVE_NETWORK_URL);
                     sessionInfo.setLivePort(SessionInfo.DEFAULT_LIVE_PORT);
This page took 0.032517 seconds and 5 git commands to generate.