diff options
author | Bernd Hufmann | 2014-09-08 16:24:07 +0000 |
---|---|---|
committer | Bernd Hufmann | 2014-09-09 19:58:55 +0000 |
commit | ae19915e09b86b16d104d7b661ca8da7556d5030 (patch) | |
tree | 5f9f2d03663597c8db4bc9eb8c28e42080360083 | |
parent | 3b977f94f5de89e75efc0a4e01eca45db8d5ab71 (diff) | |
download | org.eclipse.linuxtools-ae19915e09b86b16d104d7b661ca8da7556d5030.tar.gz org.eclipse.linuxtools-ae19915e09b86b16d104d7b661ca8da7556d5030.tar.xz org.eclipse.linuxtools-ae19915e09b86b16d104d7b661ca8da7556d5030.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/33059
Tested-by: Hudson CI
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Tested-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
Reviewed-by: Bernd Hufmann <bernd.hufmann@ericsson.com>
3 files changed, 101 insertions, 2 deletions
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 e73bbba84a..e2a404e7fe 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 @@ -104,11 +104,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"; private static final String SCEN_CREATE_LIVE_SESSION = "CreateSessionLive"; private static final String SCEN_CREATE_LIVE_SESSION_ERRORS = "CreateSessionLiveErrors"; + // ------------------------------------------------------------------------ // Test data // ------------------------------------------------------------------------ @@ -1304,6 +1306,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 9d519f92eb..2904a8f6a0 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 b02b8dbabe..2a07dd0f52 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 @@ -416,7 +416,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. |