diff options
author | Bernd Hufmann | 2014-09-08 16:24:07 +0000 |
---|---|---|
committer | Bernd Hufmann | 2014-09-09 19:59:05 +0000 |
commit | 82eafa34ba513bed53aa6035f7a699b768cc0308 (patch) | |
tree | 10536f5564309a8e6cd637a3644aee54f0909727 | |
parent | d3740f60c4deedb122ba1d7cbfda7fa4dae15033 (diff) | |
download | org.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>
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. |