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;
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";
}
}
+ @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
*/
#
# Contributors:
# Jonathan Rajotte - Initial API and implementation
+# Bernd Hufmann - Added new test cases
####################################################################
####################################################################
# Scenario: Test lttng not installed
</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
####################################################################
</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
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);
*/
String OPTION_MAX_TRACE_FILES = "-W"; //$NON-NLS-1$
+ /**
+ * Maximum live timer interval value
+ */
+ Long MAX_LIVE_TIMER_INTERVAL = 0xFFFFFFFEL;
+
// ------------------------------------------------------------------------
// Parsing constants
// ------------------------------------------------------------------------
*
* 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;
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);