Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernd Hufmann2014-09-08 16:24:07 +0000
committerBernd Hufmann2014-09-09 19:59:05 +0000
commit82eafa34ba513bed53aa6035f7a699b768cc0308 (patch)
tree10536f5564309a8e6cd637a3644aee54f0909727
parentd3740f60c4deedb122ba1d7cbfda7fa4dae15033 (diff)
downloadorg.eclipse.linuxtools-82eafa34ba513bed53aa6035f7a699b768cc0308.tar.gz
org.eclipse.linuxtools-82eafa34ba513bed53aa6035f7a699b768cc0308.tar.xz
org.eclipse.linuxtools-82eafa34ba513bed53aa6035f7a699b768cc0308.zip
[lttng control] Fix snapshot command output parsing (Bug 443519)
Change-Id: Icb2915486ad1c9c4e26ba8c3ef7f5f6a9a5c9dad Signed-off-by: Bernd Hufmann <Bernd.Hufmann@ericsson.com> Reviewed-on: https://git.eclipse.org/r/33060 Tested-by: Hudson CI Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Reviewed-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im> Tested-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
-rw-r--r--lttng/org.eclipse.linuxtools.lttng2.control.ui.tests/src/org/eclipse/linuxtools/lttng2/control/ui/tests/service/LTTngControlServiceMiTest.java5
-rw-r--r--lttng/org.eclipse.linuxtools.lttng2.control.ui.tests/src/org/eclipse/linuxtools/lttng2/control/ui/tests/service/LTTngControlServiceTest.java40
-rw-r--r--lttng/org.eclipse.linuxtools.lttng2.control.ui.tests/testfiles/LTTngServiceTest.cfg61
-rw-r--r--lttng/org.eclipse.linuxtools.lttng2.control.ui/src/org/eclipse/linuxtools/internal/lttng2/control/ui/views/service/LTTngControlServiceConstants.java2
4 files changed, 106 insertions, 2 deletions
diff --git a/lttng/org.eclipse.linuxtools.lttng2.control.ui.tests/src/org/eclipse/linuxtools/lttng2/control/ui/tests/service/LTTngControlServiceMiTest.java b/lttng/org.eclipse.linuxtools.lttng2.control.ui.tests/src/org/eclipse/linuxtools/lttng2/control/ui/tests/service/LTTngControlServiceMiTest.java
index b9f7487206..32fa19ab62 100644
--- a/lttng/org.eclipse.linuxtools.lttng2.control.ui.tests/src/org/eclipse/linuxtools/lttng2/control/ui/tests/service/LTTngControlServiceMiTest.java
+++ b/lttng/org.eclipse.linuxtools.lttng2.control.ui.tests/src/org/eclipse/linuxtools/lttng2/control/ui/tests/service/LTTngControlServiceMiTest.java
@@ -140,4 +140,9 @@ public class LTTngControlServiceMiTest extends LTTngControlServiceTest {
// TODO This does not use mi feature.And currently the context enabling
// is wrong for 2.6.
}
+
+ @Override
+ public void testCreateSnapshotSession2_5() {
+ // not applicable for MI
+ }
}
diff --git a/lttng/org.eclipse.linuxtools.lttng2.control.ui.tests/src/org/eclipse/linuxtools/lttng2/control/ui/tests/service/LTTngControlServiceTest.java b/lttng/org.eclipse.linuxtools.lttng2.control.ui.tests/src/org/eclipse/linuxtools/lttng2/control/ui/tests/service/LTTngControlServiceTest.java
index d933be82c6..0c7d59202d 100644
--- a/lttng/org.eclipse.linuxtools.lttng2.control.ui.tests/src/org/eclipse/linuxtools/lttng2/control/ui/tests/service/LTTngControlServiceTest.java
+++ b/lttng/org.eclipse.linuxtools.lttng2.control.ui.tests/src/org/eclipse/linuxtools/lttng2/control/ui/tests/service/LTTngControlServiceTest.java
@@ -105,11 +105,13 @@ public class LTTngControlServiceTest {
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";
+
// ------------------------------------------------------------------------
// Test data
// ------------------------------------------------------------------------
@@ -1344,6 +1346,44 @@ public class LTTngControlServiceTest {
}
}
+ @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());
+
+ String[] names = fService.getSessionNames(new NullProgressMonitor());
+ assertEquals(names[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);
diff --git a/lttng/org.eclipse.linuxtools.lttng2.control.ui.tests/testfiles/LTTngServiceTest.cfg b/lttng/org.eclipse.linuxtools.lttng2.control.ui.tests/testfiles/LTTngServiceTest.cfg
index 0a2ff991cf..5c7dc89b4f 100644
--- a/lttng/org.eclipse.linuxtools.lttng2.control.ui.tests/testfiles/LTTngServiceTest.cfg
+++ b/lttng/org.eclipse.linuxtools.lttng2.control.ui.tests/testfiles/LTTngServiceTest.cfg
@@ -1419,4 +1419,63 @@ 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 create <session> --snapshot (LTTng 2.5)
+####################################################################
+<SCENARIO>
+CreateSessionSnapshot2.5
+<COMMAND_INPUT>
+lttng create mysession --snapshot
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+Session mysession created.
+Default snapshot output set to: /home/user/lttng-traces/mysession-20130913-141651
+Snapshot mode set. Every channel enabled for that session will be set in overwrite mode and mmap output.
+</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-20130913-141651 (max-size: 0)
+</COMMAND_OUTPUT>
+#------------------------------------------------------------------------------
+<COMMAND_INPUT>
+lttng list
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+ 1) mysession () [inactive snapshot]
+
+</COMMAND_OUTPUT>
+#------------------------------------------------------------------------------
+<COMMAND_INPUT>
+lttng snapshot record -s mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+ Snapshot recorded successfully for session mysession
+</COMMAND_OUTPUT>
+#------------------------------------------------------------------------------
+<COMMAND_INPUT>
+lttng destroy mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+Session mysession destroyed.
+</COMMAND_OUTPUT>
+</SCENARIO>
diff --git a/lttng/org.eclipse.linuxtools.lttng2.control.ui/src/org/eclipse/linuxtools/internal/lttng2/control/ui/views/service/LTTngControlServiceConstants.java b/lttng/org.eclipse.linuxtools.lttng2.control.ui/src/org/eclipse/linuxtools/internal/lttng2/control/ui/views/service/LTTngControlServiceConstants.java
index 82029f3f78..bd5856e92d 100644
--- a/lttng/org.eclipse.linuxtools.lttng2.control.ui/src/org/eclipse/linuxtools/internal/lttng2/control/ui/views/service/LTTngControlServiceConstants.java
+++ b/lttng/org.eclipse.linuxtools.lttng2.control.ui/src/org/eclipse/linuxtools/internal/lttng2/control/ui/views/service/LTTngControlServiceConstants.java
@@ -446,7 +446,7 @@ public interface LTTngControlServiceConstants {
/**
* Pattern to match for list snapshot information (lttng snapshot list-output)
*/
- static final Pattern LIST_SNAPSHOT_OUTPUT_PATTERN = Pattern.compile("\\s+\\[(\\d+)\\]\\s+(.*)\\:\\s+(.*)"); //$NON-NLS-1$
+ static final Pattern LIST_SNAPSHOT_OUTPUT_PATTERN = Pattern.compile("\\s+\\[(\\d+)\\]\\s+(\\S*)\\:\\s+(\\S*)(.*)"); //$NON-NLS-1$
/**
* Pattern to match snapshot path for network tracing (lttng list <session>)
* Note: file for protocol is not considered as network trace since local consumer will be used.

Back to the top