tmf: lttngControl: basic mi test suite
authorJonathan Rajotte Julien <jonathan.rajotte-julien@ericsson.com>
Wed, 13 Aug 2014 14:48:01 +0000 (10:48 -0400)
committerBernd Hufmann <bernd.hufmann@ericsson.com>
Wed, 27 Aug 2014 15:35:37 +0000 (11:35 -0400)
Signed-off-by: Jonathan Rajotte Julien <jonathan.rajotte-julien@ericsson.com>
Change-Id: I9b5ab24a94cbd34db7c5d086c105eda0f4fc20f3
Reviewed-on: https://git.eclipse.org/r/31861
Tested-by: Hudson CI
Reviewed-by: Bernd Hufmann <bernd.hufmann@ericsson.com>
Tested-by: Bernd Hufmann <bernd.hufmann@ericsson.com>
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
org.eclipse.linuxtools.lttng2.control.core/src/org/eclipse/linuxtools/internal/lttng2/control/core/model/impl/FieldInfo.java
org.eclipse.linuxtools.lttng2.control.ui.tests/src/org/eclipse/linuxtools/lttng2/control/ui/tests/service/AllTests.java
org.eclipse.linuxtools.lttng2.control.ui.tests/src/org/eclipse/linuxtools/lttng2/control/ui/tests/service/LTTngControlServiceMiTest.java [new file with mode: 0644]
org.eclipse.linuxtools.lttng2.control.ui.tests/src/org/eclipse/linuxtools/lttng2/control/ui/tests/service/LTTngControlServiceTest.java
org.eclipse.linuxtools.lttng2.control.ui.tests/testfiles/LTTngServiceMiTest.cfg [new file with mode: 0644]
org.eclipse.linuxtools.lttng2.control.ui.tests/testfiles/LTTngServiceTest.cfg
org.eclipse.linuxtools.lttng2.control.ui/src/org/eclipse/linuxtools/internal/lttng2/control/ui/views/service/LTTngControlServiceConstants.java

index a95beaa3fcede46b9f430f4c8e2d78729d4e6195..0ad2ceb42ae03607bb40539ace9ddea76c85d4b2 100644 (file)
@@ -62,7 +62,7 @@ public class FieldInfo extends TraceInfo implements IFieldInfo {
 
     @Override
     public void setFieldType(String fieldType) {
-        fFieldType = fieldType;
+        fFieldType = fieldType.toLowerCase();
     }
 
     @Override
index a4bc83334ba1d2e3d9294faa1b72492dbc4da32d..8c1040009bdd501da5e67abcb42ec9848280cff9 100644 (file)
@@ -21,7 +21,8 @@ import org.junit.runners.Suite;
  */
 @RunWith(Suite.class)
 @Suite.SuiteClasses({
-    LTTngControlServiceTest.class
+    LTTngControlServiceTest.class,
+    LTTngControlServiceMiTest.class
 })
 public class AllTests {
 
diff --git a/org.eclipse.linuxtools.lttng2.control.ui.tests/src/org/eclipse/linuxtools/lttng2/control/ui/tests/service/LTTngControlServiceMiTest.java b/org.eclipse.linuxtools.lttng2.control.ui.tests/src/org/eclipse/linuxtools/lttng2/control/ui/tests/service/LTTngControlServiceMiTest.java
new file mode 100644 (file)
index 0000000..b9f7487
--- /dev/null
@@ -0,0 +1,143 @@
+/**********************************************************************
+ * Copyright (c) 2014 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *   Jonathan Rajotte - Support of machine interface
+ **********************************************************************/
+
+package org.eclipse.linuxtools.lttng2.control.ui.tests.service;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.net.URL;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.linuxtools.internal.lttng2.control.core.model.ISessionInfo;
+import org.eclipse.linuxtools.internal.lttng2.control.core.model.TraceLogLevel;
+import org.eclipse.linuxtools.internal.lttng2.control.core.model.TraceSessionState;
+import org.eclipse.linuxtools.internal.lttng2.control.core.model.impl.SessionInfo;
+import org.eclipse.linuxtools.internal.lttng2.control.ui.views.service.ILttngControlService;
+import org.eclipse.linuxtools.internal.lttng2.control.ui.views.service.LTTngControlServiceConstants;
+import org.eclipse.linuxtools.internal.lttng2.control.ui.views.service.LTTngControlServiceMI;
+
+/**
+ * @author ejorajo
+ *
+ */
+public class LTTngControlServiceMiTest extends LTTngControlServiceTest {
+
+    private static final String MI_TEST_STREAM = "LTTngServiceMiTest.cfg";
+
+    @Override
+    protected ILttngControlService getControlService() {
+        try {
+            URL resource = LTTngControlServiceMI.class.getResource(LTTngControlServiceConstants.MI_XSD_FILENAME);
+            return new LTTngControlServiceMI(getfShell(), resource);
+        } catch (ExecutionException e) {
+            return null;
+        }
+    }
+
+    @Override
+    public void testGetSessionNameGarbage() {
+        try {
+            fShell.setScenario(SCEN_GET_SESSION_GARBAGE_OUT);
+            fService.getSessionNames(new NullProgressMonitor());
+        } catch (ExecutionException e) {
+            // Success. Parsing of garbage result in an ExecutionException
+            // generated by the XML document parser: Unable to parse the xml
+            // document.
+        }
+    }
+
+    @Override
+    public void testCreateLiveSession() throws ExecutionException {
+        fShell.setScenario(SCEN_CREATE_LIVE_SESSION);
+
+        ISessionInfo params = new SessionInfo("mysession");
+        params.setLive(true);
+        params.setStreamedTrace(true);
+        params.setNetworkUrl("net://127.0.0.1");
+        ISessionInfo sessionInfo = fService.createSession(params, new NullProgressMonitor());
+        assertNotNull(sessionInfo);
+        assertEquals("mysession", sessionInfo.getName());
+        assertEquals(TraceSessionState.INACTIVE, sessionInfo.getSessionState());
+        assertTrue(sessionInfo.isStreamedTrace());
+        assertTrue(sessionInfo.isLive());
+        assertEquals("tcp4://127.0.0.1:5342/ [data: 5343]", sessionInfo.getSessionPath());
+        String[] names = fService.getSessionNames(new NullProgressMonitor());
+        assertEquals(names[0], "mysession");
+        fService.destroySession("mysession", new NullProgressMonitor());
+    }
+
+    @Override
+    protected String getTestStream() {
+        return MI_TEST_STREAM;
+    }
+
+    @Override
+    protected TraceLogLevel getAllEventTraceLogLevel() {
+        return TraceLogLevel.TRACE_DEBUG;
+    }
+
+    @Override
+    public void testGetKernelProviderNoUstVerbose() {
+        // Verbose mode in machine interface is deactivated. This test is
+        // ignored.
+    }
+
+    @Override
+    public void testCreateSession2_1() {
+        // 2.1 is not supported by mi. This test is ignored.
+    }
+
+    @Override
+    public void testGetKernelProviderNoUst3() {
+        // Verbose mode in machine interface is deactivated. This test is
+        // ignored.
+    }
+
+    @Override
+    public void testGetKernelProviderNoKernelVerbose() {
+        // Verbose mode in machine interface is deactivated. This test is
+        // ignored.
+    }
+
+    @Override
+    public void testCreateSessionVerbose2_1() {
+        // Verbose mode in machine interface is deactivated. This test is
+        // ignored.
+    }
+
+    @Override
+    public void testDestroySessionVerbose() {
+        // Verbose mode in machine interface is deactivated. This test is
+        // ignored.
+    }
+
+    @Override
+    public void testCreateSessionWithPrompt() {
+        // TODO Investigate if this case can happen in production. If yes than
+        // we need to rethinks the MI fetching and parsing.
+    }
+
+    @Override
+    public void testAddContext() {
+        // TODO This does not use mi feature.And currently the context enabling
+        // is wrong for 2.6.
+    }
+
+    @Override
+    public void testAddContextFailure() {
+        // TODO This does not use mi feature.And currently the context enabling
+        // is wrong for 2.6.
+    }
+}
index 3052baeab232d898cf82807425643e56bb980acd..d933be82c69fb3e515eede9a18f0dac6a01a775b 100644 (file)
@@ -79,7 +79,7 @@ public class LTTngControlServiceTest {
     private static final String SCEN_GET_SESSION_NAMES1 = "GetSessionNames1";
     private static final String SCEN_GET_SESSION_NAME_NOT_EXIST = "GetSessionNameNotExist";
     private static final String SCEN_GET_SESSION_NAME_NOT_EXIST_VERBOSE = "GetSessionNameNotExistVerbose";
-    private static final String SCEN_GET_SESSION_GARBAGE_OUT = "GetSessionGarbageOut";
+    protected static final String SCEN_GET_SESSION_GARBAGE_OUT = "GetSessionGarbageOut";
     private static final String SCEN_GET_SESSION1 = "GetSession1";
     private static final String SCEN_GET_KERNEL_PROVIDER1 = "GetKernelProvider1";
     private static final String SCEN_LIST_WITH_NO_KERNEL1 = "ListWithNoKernel1";
@@ -107,7 +107,7 @@ public class LTTngControlServiceTest {
     private static final String SCEN_CREATE_SNAPSHOT_SESSION = "CreateSessionSnapshot";
     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";
+    protected static final String SCEN_CREATE_LIVE_SESSION = "CreateSessionLive";
     private static final String SCEN_CREATE_LIVE_SESSION_ERRORS = "CreateSessionLiveErrors";
 
     // ------------------------------------------------------------------------
@@ -116,8 +116,8 @@ public class LTTngControlServiceTest {
 
     private CommandShellFactory fShellFactory;
     private String fTestfile;
-    private LTTngToolsFileShell fShell;
-    private ILttngControlService fService;
+    protected LTTngToolsFileShell fShell;
+    protected ILttngControlService fService;
 
     // ------------------------------------------------------------------------
     // Housekeeping
@@ -133,17 +133,45 @@ public class LTTngControlServiceTest {
     public void setUp() throws Exception {
         fShellFactory = CommandShellFactory.getInstance();
 
-        URL location = FileLocator.find(FrameworkUtil.getBundle(this.getClass()), new Path(DIRECTORY + File.separator + TEST_STREAM), null);
+        URL location = FileLocator.find(FrameworkUtil.getBundle(this.getClass()), new Path(getTestDirectory() + File.separator + getTestStream()), null);
         File testfile = new File(FileLocator.toFileURL(location).toURI());
         fTestfile = testfile.getAbsolutePath();
 
         fShell = fShellFactory.getFileShell();
         fShell.loadScenarioFile(fTestfile);
-        fService = new LTTngControlService(fShell);
+        fService = getControlService();
+        if (fService == null) {
+            throw new Exception("Unable to obtain a valid ControlService");
+        }
 
         ControlPreferences.getInstance().init(Activator.getDefault().getPreferenceStore());
     }
 
+    /**
+     * @return the string of the test directory to use
+     */
+    protected String getTestDirectory() {
+        return DIRECTORY;
+    }
+
+    /**
+     * @return the LttngCon
+     */
+    protected ILttngControlService getControlService() {
+        return new LTTngControlService(fShell);
+    }
+
+    public LTTngToolsFileShell getfShell() {
+        return fShell;
+    }
+
+    /**
+     * @return
+     */
+    protected String getTestStream() {
+        return TEST_STREAM;
+    }
+
     @After
     public void tearDown() {
         disableVerbose();
@@ -385,7 +413,7 @@ public class LTTngControlServiceTest {
             assertEquals(TraceEnablement.DISABLED, ustEvents[0].getState());
 
             assertEquals("*", ustEvents[1].getName());
-            assertEquals(TraceLogLevel.LEVEL_UNKNOWN, ustEvents[1].getLogLevel());
+            assertEquals(getAllEventTraceLogLevel(), ustEvents[1].getLogLevel());
             assertEquals(TraceEventType.TRACEPOINT, ustEvents[1].getEventType());
             assertEquals(TraceEnablement.ENABLED, ustEvents[1].getState());
 
@@ -404,6 +432,13 @@ public class LTTngControlServiceTest {
         }
     }
 
+    /**
+     * @return
+     */
+    protected TraceLogLevel getAllEventTraceLogLevel() {
+        return TraceLogLevel.LEVEL_UNKNOWN;
+    }
+
     public void testGetKernelProvider() {
         try {
             fShell.setScenario(SCEN_GET_KERNEL_PROVIDER1);
diff --git a/org.eclipse.linuxtools.lttng2.control.ui.tests/testfiles/LTTngServiceMiTest.cfg b/org.eclipse.linuxtools.lttng2.control.ui.tests/testfiles/LTTngServiceMiTest.cfg
new file mode 100644 (file)
index 0000000..f0dc0de
--- /dev/null
@@ -0,0 +1,2364 @@
+####################################################################
+# Copyright (c) 2014 Ericsson
+#
+# All rights reserved. This program and the accompanying materials are
+# made available under the terms of the Eclipse Public License v1.0 which
+# accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors: 
+#    Jonathan Rajotte - Initial API and implementation
+####################################################################
+####################################################################
+# Scenario: Test lttng not installed
+####################################################################
+<SCENARIO>
+LttngNotInstalled
+<COMMAND_INPUT>
+lttng --mi xml list 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+1
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<COMMAND_ERROR_OUTPUT>
+Command not found
+</COMMAND_ERROR_OUTPUT>
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test lttng version
+####################################################################
+<SCENARIO>
+LttngVersion
+<COMMAND_INPUT>
+lttng version 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+lttng version 2.1.0 - Basse Messe
+Web site: http://lttng.org/
+
+lttng is free software and under the GPL license and part LGPL
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test lttng version
+# output with prompt
+####################################################################
+<SCENARIO>
+LttngVersionWithPrompt
+<COMMAND_INPUT>
+lttng version 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+Prompt> lttng version 2.0.0 - Annedd'ale
+Web site: http://lttng.org/
+
+lttng is free software and under the GPL license and part LGPL
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test lttng version (unsupported version)
+####################################################################
+<SCENARIO>
+LttngUnsupportedVersion
+<COMMAND_INPUT>
+lttng version 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+lttng version 200.0.0 - Annedd'ale
+Web site: http://lttng.org/
+
+lttng is free software and under the GPL license and part LGPL
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+
+####################################################################
+# Scenario: Test lttng version (noversion)
+####################################################################
+<SCENARIO>
+LttngNoVersion
+<COMMAND_INPUT>
+lttng version 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+Web site: http://lttng.org/
+
+lttng is free software and under the GPL license and part LGPL
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test no sessions available
+####################################################################
+<SCENARIO>
+NoSessionAvailable
+<COMMAND_INPUT>
+lttng --mi xml list 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command><name>list</name><output><sessions/></output></command>
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test get sessions
+####################################################################
+<SCENARIO>
+GetSessionNames1
+<COMMAND_INPUT>
+lttng --mi xml list 
+</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-20120123-083928</path>
+        <enabled>false</enabled>
+        <snapshot_mode>0</snapshot_mode>
+        <live_timer_interval>0</live_timer_interval>
+      </session>
+      <session>
+        <name>mysession</name>
+        <path>home/user/lttng-traces/mysession-20120123-083318</path>
+        <enabled>false</enabled>
+        <snapshot_mode>0</snapshot_mode>
+        <live_timer_interval>0</live_timer_interval>
+      </session>
+    </sessions>
+  </output>
+</command>
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test lttng list <name> where session doesn't exist 
+####################################################################
+<SCENARIO>
+GetSessionNameNotExist
+<COMMAND_INPUT>
+lttng --mi xml list test
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+1
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command><name>list</name><output><sessions/></output></command>
+<COMMAND_ERROR_OUTPUT>
+Error: Session 'test' not found
+Error: Command error
+</COMMAND_ERROR_OUTPUT>
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test lttng -vvv list <name> where session doesn't exist
+####################################################################
+<SCENARIO>
+GetSessionNameNotExistVerbose
+<COMMAND_INPUT>
+lttng --mi xml -vvv  list test
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+1
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command><name>list</name><output><sessions/></output></command>
+<COMMAND_ERROR_OUTPUT>
+Error: Session 'test' not found
+Error: Command error
+</COMMAND_ERROR_OUTPUT>
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test lttng list with garbage output 
+####################################################################
+<SCENARIO>
+GetSessionGarbageOut
+<COMMAND_INPUT>
+lttng --mi xml list 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+asdfaereafsdcv 12333456434&*89**(())(^%$*
+@#$%^&*()@#$%^&*()0834523094578kj;djkfs
+a;sdf094v5u dsafj;sd9
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test lttng list <name> with sample outputs 
+####################################################################
+<SCENARIO>
+GetSession1
+<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>true</enabled>
+        <snapshot_mode>0</snapshot_mode>
+        <live_timer_interval>0</live_timer_interval>
+        <domains>
+          <domain>
+            <type>KERNEL</type>
+            <buffer_type>PER_PID</buffer_type>
+            <channels>
+              <channel>
+                <name>channel0</name>
+                <enabled>true</enabled>
+                <attributes>
+                  <overwrite_mode>DISCARD</overwrite_mode>
+                  <subbuffer_size>262144</subbuffer_size>
+                  <subbuffer_count>4</subbuffer_count>
+                  <switch_timer_interval>0</switch_timer_interval>
+                  <read_timer_interval>200</read_timer_interval>
+                  <output_type>SPLICE</output_type>
+                  <tracefile_size>0</tracefile_size>
+                  <tracefile_count>0</tracefile_count>
+                  <live_timer_interval>0</live_timer_interval>
+                </attributes>
+                <events>
+                  <event>
+                    <name>block_rq_remap</name>
+                    <type>TRACEPOINT</type>
+                    <enabled>true</enabled>
+                    <filter>false</filter>
+                    <loglevel>TRACE_EMERG</loglevel>
+                    <loglevel_type>ALL</loglevel_type>
+                    <exclusion>false</exclusion>
+                  </event>
+                  <event>
+                    <name>block_bio_remap</name>
+                    <type>TRACEPOINT</type>
+                    <enabled>false</enabled>
+                    <filter>false</filter>
+                    <loglevel>TRACE_EMERG</loglevel>
+                    <loglevel_type>ALL</loglevel_type>
+                    <exclusion>false</exclusion>
+                  </event>
+                </events>
+              </channel>
+              <channel>
+                <name>channel1</name>
+                <enabled>false</enabled>
+                <attributes>
+                  <overwrite_mode>OVERWRITE</overwrite_mode>
+                  <subbuffer_size>524288</subbuffer_size>
+                  <subbuffer_count>4</subbuffer_count>
+                  <switch_timer_interval>100</switch_timer_interval>
+                  <read_timer_interval>400</read_timer_interval>
+                  <output_type>SPLICE</output_type>
+                  <tracefile_size>0</tracefile_size>
+                  <tracefile_count>0</tracefile_count>
+                  <live_timer_interval>4294967295</live_timer_interval>
+                </attributes>
+                <events/>
+              </channel>
+            </channels>
+          </domain>
+          <domain>
+            <type>UST</type>
+            <buffer_type>PER_UID</buffer_type>
+            <channels>
+              <channel>
+                <name>mychannel1</name>
+                <enabled>false</enabled>
+                <attributes>
+                  <overwrite_mode>OVERWRITE</overwrite_mode>
+                  <subbuffer_size>8192</subbuffer_size>
+                  <subbuffer_count>8</subbuffer_count>
+                  <switch_timer_interval>200</switch_timer_interval>
+                  <read_timer_interval>100</read_timer_interval>
+                  <output_type>MMAP</output_type>
+                  <tracefile_size>0</tracefile_size>
+                  <tracefile_count>0</tracefile_count>
+                  <live_timer_interval>0</live_timer_interval>
+                </attributes>
+                <events/>
+              </channel>
+              <channel>
+                <name>channel0</name>
+                <enabled>true</enabled>
+                <attributes>
+                  <overwrite_mode>DISCARD</overwrite_mode>
+                  <subbuffer_size>4096</subbuffer_size>
+                  <subbuffer_count>4</subbuffer_count>
+                  <switch_timer_interval>0</switch_timer_interval>
+                  <read_timer_interval>200</read_timer_interval>
+                  <output_type>MMAP</output_type>
+                  <tracefile_size>0</tracefile_size>
+                  <tracefile_count>0</tracefile_count>
+                  <live_timer_interval>0</live_timer_interval>
+                </attributes>
+                <events>
+                  <event>
+                    <name>ust_tests_hello:tptest_sighandler</name>
+                    <type>TRACEPOINT</type>
+                    <enabled>false</enabled>
+                    <filter>false</filter>
+                    <loglevel>TRACE_DEBUG_LINE</loglevel>
+                    <loglevel_type>ALL</loglevel_type>
+                    <exclusion>false</exclusion>
+                  </event>
+                  <event>
+                    <name>*</name>
+                    <type>TRACEPOINT</type>
+                    <enabled>true</enabled>
+                    <filter>false</filter>
+                    <exclusion>false</exclusion>
+                  </event>
+                </events>
+              </channel>
+            </channels>
+          </domain>
+        </domains>
+      </session>
+    </sessions>
+  </output>
+</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-20120203-133225</path>
+        <enabled>false</enabled>
+        <snapshot_mode>0</snapshot_mode>
+        <live_timer_interval>0</live_timer_interval>
+        <domains/>
+      </session>
+    </sessions>
+  </output>
+</command>
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+
+####################################################################
+# Scenario: Test "lttng list -k" with sample output 
+####################################################################
+<SCENARIO>
+GetKernelProvider1
+<COMMAND_INPUT>
+lttng --mi xml list -k
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>list</name>
+  <output>
+    <domains>
+      <domain>
+        <type>KERNEL</type>
+        <buffer_type>PER_PID</buffer_type>
+        <events>
+          <event>
+            <name>sched_kthread_stop</name>
+            <type>TRACEPOINT</type>
+            <enabled>true</enabled>
+            <filter>false</filter>
+            <loglevel>TRACE_EMERG</loglevel>
+            <loglevel_type>ALL</loglevel_type>
+            <exclusion>false</exclusion>
+          </event>
+          <event>
+            <name>sched_kthread_stop_ret</name>
+            <type>TRACEPOINT</type>
+            <enabled>true</enabled>
+            <filter>false</filter>
+            <loglevel>TRACE_EMERG</loglevel>
+            <loglevel_type>ALL</loglevel_type>
+            <exclusion>false</exclusion>
+          </event>
+          <event>
+            <name>sched_wakeup_new</name>
+            <type>TRACEPOINT</type>
+            <enabled>true</enabled>
+            <filter>false</filter>
+            <loglevel>TRACE_EMERG</loglevel>
+            <loglevel_type>ALL</loglevel_type>
+            <exclusion>false</exclusion>
+          </event>
+       </events>
+      </domain>
+    </domains>
+  </output>
+</command>
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test "lttng list -k" with no kernel and no session daemon 
+####################################################################
+<SCENARIO>
+ListWithNoKernel1
+<COMMAND_INPUT>
+lttng --mi xml list -k
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+1
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+Spawning session daemon
+<COMMAND_ERROR_OUTPUT>
+Error: Unable to list kernel events
+</COMMAND_ERROR_OUTPUT>
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test "lttng list -k" with no kernel and with session daemon 
+####################################################################
+<SCENARIO>
+ListWithNoKernel2
+<COMMAND_INPUT>
+lttng --mi xml list -k
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+1
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<COMMAND_ERROR_OUTPUT>
+Error: Unable to list kernel events
+</COMMAND_ERROR_OUTPUT>
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test "lttng list -u" with sample output 
+####################################################################
+<SCENARIO>
+GetUstProvider1
+<COMMAND_INPUT>
+lttng --mi xml list -u -f 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>list</name>
+  <output>
+    <domains>
+      <domain>
+        <type>UST</type>
+        <buffer_type>PER_PID</buffer_type>
+        <pids>
+          <pid>
+            <id>9379</id>
+            <name>/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello</name>
+            <events>
+              <event>
+                <name>ust_tests_hello:tptest_sighandler</name>
+                <type>TRACEPOINT</type>
+                <enabled>true</enabled>
+                <filter>false</filter>
+                <loglevel>TRACE_DEBUG_MODULE</loglevel>
+                <loglevel_type>ALL</loglevel_type>
+                <exclusion>false</exclusion>
+                <event_fields/>
+              </event>
+              <event>
+                <name>ust_tests_hello:tptest</name>
+                <type>TRACEPOINT</type>
+                <enabled>true</enabled>
+                <filter>false</filter>
+                <loglevel>TRACE_INFO</loglevel>
+                <loglevel_type>ALL</loglevel_type>
+                <exclusion>false</exclusion>
+                <event_fields>
+                  <event_field>
+                    <name>doublefield</name>
+                    <type>FLOAT</type>
+                    <nowrite>0</nowrite>
+                  </event_field>
+                  <event_field>
+                    <name>floatfield</name>
+                    <type>FLOAT</type>
+                    <nowrite>0</nowrite>
+                  </event_field>
+                  <event_field>
+                    <name>stringfield</name>
+                    <type>STRING</type>
+                    <nowrite>0</nowrite>
+                  </event_field>
+                </event_fields>
+              </event>
+            </events>
+          </pid>
+          <pid>
+            <id>4852</id>
+            <name>/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello</name>
+            <events>
+              <event>
+                <name>ust_tests_hello:tptest_sighandler</name>
+                <type>TRACEPOINT</type>
+                <enabled>true</enabled>
+                <filter>false</filter>
+                <loglevel>TRACE_WARNING</loglevel>
+                <loglevel_type>ALL</loglevel_type>
+                <exclusion>false</exclusion>
+                <event_fields/>
+              </event>
+              <event>
+                <name>ust_tests_hello:tptest</name>
+                <type>TRACEPOINT</type>
+                <enabled>true</enabled>
+                <filter>false</filter>
+                <loglevel>TRACE_DEBUG_FUNCTION</loglevel>
+                <loglevel_type>ALL</loglevel_type>
+                <exclusion>false</exclusion>
+                <event_fields>
+                  <event_field>
+                    <name>doublefield</name>
+                    <type>FLOAT</type>
+                    <nowrite>0</nowrite>
+                  </event_field>
+                  <event_field>
+                    <name>floatfield</name>
+                    <type>FLOAT</type>
+                    <nowrite>0</nowrite>
+                  </event_field>
+                  <event_field>
+                    <name>stringfield</name>
+                    <type>STRING</type>
+                    <nowrite>0</nowrite>
+                  </event_field>
+                </event_fields>
+              </event>
+            </events>
+          </pid>
+        </pids>
+      </domain>
+    </domains>
+  </output>
+</command>
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test "lttng list -u" with no UST provider available 
+####################################################################
+<SCENARIO>
+GetUstProvider2
+<COMMAND_INPUT>
+lttng --mi xml list -u -f 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>list</name>
+  <output>
+    <domains>
+      <domain>
+        <type>UST</type>
+        <buffer_type>PER_PID</buffer_type>
+        <pids/>
+      </domain>
+    </domains>
+  </output>
+</command>
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test "lttng list -u" with no UST available (LTTng 2.0.x) 
+####################################################################
+<SCENARIO>
+ListWithNoUst1
+<COMMAND_INPUT>
+lttng --mi xml list -u -f 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+1
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command><name>list</name><output/></command>
+<COMMAND_ERROR_OUTPUT>
+Error: Unable to list UST event fields: LTTng-UST tracer is not supported. Please rebuild lttng-tools with lttng-ust support enabled.
+Error: Command error
+</COMMAND_ERROR_OUTPUT>
+</COMMAND_OUTPUT>
+</SCENARIO>
+####################################################################
+# Scenario: Test "lttng list -u" with no UST available and no session daemon 
+####################################################################
+<SCENARIO>
+ListWithNoUst2
+<COMMAND_INPUT>
+lttng --mi xml list -u -f 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+1
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command><name>list</name><output/></command>
+<COMMAND_ERROR_OUTPUT>
+Error: Unable to list UST event fields: LTTng-UST tracer is not supported. Please rebuild lttng-tools with lttng-ust support enabled.
+Error: Command error
+</COMMAND_ERROR_OUTPUT>
+</COMMAND_OUTPUT>
+</SCENARIO>
+####################################################################
+# Scenario: Test "lttng list -" with no kernel and with session daemon 
+####################################################################
+<SCENARIO>
+ListWithNoUst3
+<COMMAND_INPUT>
+lttng --mi xml list -u -f 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+1
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command><name>list</name><output/></command>
+<COMMAND_ERROR_OUTPUT>
+Error: Unable to list kernel events: Tracing the kernel requires a root lttng-sessiond daemon, as well as "tracing" group membership or root user ID for the lttng client.
+Error: Command Error
+</COMMAND_ERROR_OUTPUT>
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test "lttng list -u -f" with sample output (version 2.6.0) 
+####################################################################
+<SCENARIO>
+GetUstProvider3
+<COMMAND_INPUT>
+lttng --mi xml list -u -f 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>list</name>
+  <output>
+    <domains>
+      <domain>
+        <type>UST</type>
+        <buffer_type>PER_PID</buffer_type>
+        <pids>
+          <pid>
+            <id>9379</id>
+            <name>/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello</name>
+            <events>
+              <event>
+                <name>ust_tests_hello:tptest_sighandler</name>
+                <type>TRACEPOINT</type>
+                <enabled>true</enabled>
+                <filter>false</filter>
+                <loglevel>TRACE_DEBUG_MODULE</loglevel>
+                <loglevel_type>ALL</loglevel_type>
+                <exclusion>false</exclusion>
+                <event_fields/>
+              </event>
+              <event>
+                <name>ust_tests_hello:tptest</name>
+                <type>TRACEPOINT</type>
+                <enabled>true</enabled>
+                <filter>false</filter>
+                <loglevel>TRACE_INFO</loglevel>
+                <loglevel_type>ALL</loglevel_type>
+                <exclusion>false</exclusion>
+                <event_fields>
+                  <event_field>
+                    <name>doublefield</name>
+                    <type>FLOAT</type>
+                    <nowrite>0</nowrite>
+                  </event_field>
+                  <event_field>
+                    <name>floatfield</name>
+                    <type>FLOAT</type>
+                    <nowrite>0</nowrite>
+                  </event_field>
+                  <event_field>
+                    <name>stringfield</name>
+                    <type>STRING</type>
+                    <nowrite>0</nowrite>
+                  </event_field>
+                </event_fields>
+              </event>
+            </events>
+          </pid>
+          <pid>
+            <id>4852</id>
+            <name>/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello</name>
+            <events>
+              <event>
+                <name>ust_tests_hello:tptest_sighandler</name>
+                <type>TRACEPOINT</type>
+                <enabled>true</enabled>
+                <filter>false</filter>
+                <loglevel>TRACE_WARNING</loglevel>
+                <loglevel_type>ALL</loglevel_type>
+                <exclusion>false</exclusion>
+                <event_fields/>
+              </event>
+              <event>
+                <name>ust_tests_hello:tptest</name>
+                <type>TRACEPOINT</type>
+                <enabled>true</enabled>
+                <filter>false</filter>
+                <loglevel>TRACE_DEBUG_FUNCTION</loglevel>
+                <loglevel_type>ALL</loglevel_type>
+                <exclusion>false</exclusion>
+                <event_fields>
+                  <event_field>
+                    <name>doublefield</name>
+                    <type>FLOAT</type>
+                    <nowrite>0</nowrite>
+                  </event_field>
+                  <event_field>
+                    <name>floatfield</name>
+                    <type>FLOAT</type>
+                    <nowrite>0</nowrite>
+                  </event_field>
+                  <event_field>
+                    <name>stringfield</name>
+                    <type>STRING</type>
+                    <nowrite>0</nowrite>
+                  </event_field>
+                </event_fields>
+              </event>
+            </events>
+          </pid>
+        </pids>
+      </domain>
+    </domains>
+  </output>
+</command>
+</COMMAND_OUTPUT>
+</SCENARIO>
+####################################################################
+# Scenario: Test "lttng create <session>  
+####################################################################
+<SCENARIO>
+CreateSession1
+<COMMAND_INPUT>
+lttng --mi xml create mysession2
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>create</name>
+  <output>
+    <session>
+      <name>mysession2</name>
+      <path>/home/user/lttng-traces/mysession2-20120209-095418</path>
+      <enabled>false</enabled>
+      <snapshot_mode>0</snapshot_mode>
+      <live_timer_interval>0</live_timer_interval>
+    </session>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test "lttng create <session>  
+####################################################################
+<SCENARIO>
+CreateSessionWithPrompt
+<COMMAND_INPUT>
+lttng --mi xml create mysession2
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+Prompt> Session mysession2 created.
+Traces will be written in /home/user/lttng-traces/mysession2-20120209-095418
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test "lttng create <session> with different variants 
+# and errors
+####################################################################
+<SCENARIO>
+CreateSessionVariants
+<COMMAND_INPUT>
+lttng --mi xml create alreadyExist
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+1
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>create</name>
+  <output/>
+  <success>false</success>
+</command>
+<COMMAND_ERROR_OUTPUT>
+Warning: Session mysession2 already exists
+Error: Session name already exists
+</COMMAND_ERROR_OUTPUT>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml create "session with spaces"
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>create</name>
+  <output>
+    <session>
+      <name>session with spaces</name>
+      <path>/home/user/lttng-traces/session with spaces-20120209-095418</path>
+      <enabled>false</enabled>
+      <snapshot_mode>0</snapshot_mode>
+      <live_timer_interval>0</live_timer_interval>
+    </session>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml create wrongName
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>create</name>
+  <output>
+    <session>
+      <name>auto</name>
+      <path>/home/user/lttng-traces/auto-20120209-095418</path>
+      <enabled>false</enabled>
+      <snapshot_mode>0</snapshot_mode>
+      <live_timer_interval>0</live_timer_interval>
+    </session>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml create wrongPath -o /home/user/hallo
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>create</name>
+  <output>
+    <session>
+      <name>wrongPath</name>
+      <path>/home/user/lttng-traces/wrongPath-20120209-095418</path>
+      <enabled>false</enabled>
+      <snapshot_mode>0</snapshot_mode>
+      <live_timer_interval>0</live_timer_interval>
+    </session>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml create pathWithSpaces -o "/home/user/hallo user/here"
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>create</name>
+  <output>
+    <session>
+      <name>pathWithSpaces</name>
+      <path>/home/user/hallo user/here/pathWithSpaces-20120209-095418</path>
+      <enabled>false</enabled>
+      <snapshot_mode>0</snapshot_mode>
+      <live_timer_interval>0</live_timer_interval>
+    </session>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test "lttng destroy <session> 
+####################################################################
+
+<SCENARIO>
+DestroySession1
+<COMMAND_INPUT>
+lttng --mi xml destroy mysession2
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>destroy</name>
+  <output>
+    <sessions>
+      <session>
+        <name>mysession2</name>
+        <path>/home/user/lttng-traces/mysession2-20140812-160632</path>
+        <enabled>false</enabled>
+        <snapshot_mode>0</snapshot_mode>
+        <live_timer_interval>0</live_timer_interval>
+      </session>
+    </sessions>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test "lttng enable-channel ..." with different inputs 
+####################################################################
+
+<SCENARIO>
+ChannelHandling
+<COMMAND_INPUT>
+lttng --mi xml enable-channel mychannel0,mychannel1 -k  -s mysession2 --overwrite  --subbuf-size 16384 --num-subbuf 2 --switch-timer 200 --read-timer 100 -C 0 -W 10
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+Kernel channel mychannel0 enabled for session mysession2
+Kernel channel mychannel1 enabled for session mysession2
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml enable-channel mychannel0,mychannel1 -k  -s mysession2 --overwrite  --subbuf-size 16384 --num-subbuf 2 --switch-timer 200 --read-timer 100
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>enable-channel</name>
+  <output>
+    <channels>
+      <channel>
+        <name>mychannel0</name>
+        <enabled>false</enabled>
+        <attributes>
+          <overwrite_mode>OVERWRITE</overwrite_mode>
+          <subbuffer_size>16384</subbuffer_size>
+          <subbuffer_count>2</subbuffer_count>
+          <switch_timer_interval>200</switch_timer_interval>
+          <read_timer_interval>100</read_timer_interval>
+          <output_type>SPLICE</output_type>
+          <tracefile_size>0</tracefile_size>
+          <tracefile_count>0</tracefile_count>
+          <live_timer_interval>4294967295</live_timer_interval>
+        </attributes>
+        <success>true</success>
+      </channel>
+      <channel>
+        <name>mychannel1</name>
+        <enabled>false</enabled>
+        <attributes>
+          <overwrite_mode>OVERWRITE</overwrite_mode>
+          <subbuffer_size>16384</subbuffer_size>
+          <subbuffer_count>2</subbuffer_count>
+          <switch_timer_interval>200</switch_timer_interval>
+          <read_timer_interval>100</read_timer_interval>
+          <output_type>SPLICE</output_type>
+          <tracefile_size>0</tracefile_size>
+          <tracefile_count>0</tracefile_count>
+          <live_timer_interval>4294967295</live_timer_interval>
+        </attributes>
+        <success>true</success>
+      </channel>
+    </channels>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml enable-channel ustChannel -u  -s mysession2 --overwrite  --subbuf-size 32768 --num-subbuf 1 --switch-timer 100 --read-timer 200 -C 0 -W 20
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+UST channel channel0 enabled for session mysession2
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml enable-channel ustChannel -u  -s mysession2 --overwrite  --subbuf-size 32768 --num-subbuf 1 --switch-timer 100 --read-timer 200
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>enable-channel</name>
+  <output>
+    <channels>
+      <channel>
+        <name>ustChannel</name>
+        <enabled>false</enabled>
+        <attributes>
+          <overwrite_mode>OVERWRITE</overwrite_mode>
+          <subbuffer_size>32768</subbuffer_size>
+          <subbuffer_count>2</subbuffer_count>
+          <switch_timer_interval>100</switch_timer_interval>
+          <read_timer_interval>200</read_timer_interval>
+          <output_type>MMAP</output_type>
+          <tracefile_size>0</tracefile_size>
+          <tracefile_count>0</tracefile_count>
+          <live_timer_interval>4294967295</live_timer_interval>
+        </attributes>
+        <success>true</success>
+      </channel>
+    </channels>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml enable-channel ustChannel -u  -s mysession2 --overwrite  --subbuf-size 32768 --num-subbuf 1 --switch-timer 100 --read-timer 200 --buffers-uid  -C 0 -W 20
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+UST channel channel0 enabled for session mysession2
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml enable-channel ustChannel -u  -s mysession2 --overwrite  --buffers-pid 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>enable-channel</name>
+  <output>
+    <channels>
+      <channel>
+        <name>ustChannel</name>
+        <enabled>false</enabled>
+        <attributes>
+          <overwrite_mode>OVERWRITE</overwrite_mode>
+          <subbuffer_size>4096</subbuffer_size>
+          <subbuffer_count>4</subbuffer_count>
+          <switch_timer_interval>0</switch_timer_interval>
+          <read_timer_interval>0</read_timer_interval>
+          <output_type>MMAP</output_type>
+          <tracefile_size>0</tracefile_size>
+          <tracefile_count>0</tracefile_count>
+          <live_timer_interval>4294967295</live_timer_interval>
+        </attributes>
+        <success>true</success>
+      </channel>
+    </channels>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml enable-channel ustChannel -u  -s mysession2 --overwrite  --subbuf-size 32768 --num-subbuf 2 --switch-timer 100 --read-timer 200 --buffers-uid
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>enable-channel</name>
+  <output>
+    <channels>
+      <channel>
+        <name>ustChannel</name>
+        <enabled>false</enabled>
+        <attributes>
+          <overwrite_mode>OVERWRITE</overwrite_mode>
+          <subbuffer_size>32768</subbuffer_size>
+          <subbuffer_count>2</subbuffer_count>
+          <switch_timer_interval>100</switch_timer_interval>
+          <read_timer_interval>200</read_timer_interval>
+          <output_type>MMAP</output_type>
+          <tracefile_size>0</tracefile_size>
+          <tracefile_count>0</tracefile_count>
+          <live_timer_interval>4294967295</live_timer_interval>
+        </attributes>
+        <success>true</success>
+      </channel>
+    </channels>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+
+<COMMAND_INPUT>
+lttng --mi xml enable-channel mychannel0,mychannel1 -k  -s mysession2
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>enable-channel</name>
+  <output>
+    <channels>
+      <channel>
+        <name>mychannel0</name>
+        <enabled>false</enabled>
+        <attributes>
+          <overwrite_mode>DISCARD</overwrite_mode>
+          <subbuffer_size>262144</subbuffer_size>
+          <subbuffer_count>4</subbuffer_count>
+          <switch_timer_interval>0</switch_timer_interval>
+          <read_timer_interval>200000</read_timer_interval>
+          <output_type>SPLICE</output_type>
+          <tracefile_size>0</tracefile_size>
+          <tracefile_count>0</tracefile_count>
+          <live_timer_interval>4294967295</live_timer_interval>
+        </attributes>
+        <success>true</success>
+      </channel>
+      <channel>
+        <name>mychannel1</name>
+        <enabled>false</enabled>
+        <attributes>
+          <overwrite_mode>DISCARD</overwrite_mode>
+          <subbuffer_size>262144</subbuffer_size>
+          <subbuffer_count>4</subbuffer_count>
+          <switch_timer_interval>0</switch_timer_interval>
+          <read_timer_interval>200000</read_timer_interval>
+          <output_type>SPLICE</output_type>
+          <tracefile_size>0</tracefile_size>
+          <tracefile_count>0</tracefile_count>
+          <live_timer_interval>4294967295</live_timer_interval>
+        </attributes>
+        <success>true</success>
+      </channel>
+    </channels>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml enable-channel ustChannel -u  -s mysession2
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>enable-channel</name>
+  <output>
+    <channels>
+      <channel>
+        <name>ustChannel</name>
+        <enabled>false</enabled>
+        <attributes>
+          <overwrite_mode>DISCARD</overwrite_mode>
+          <subbuffer_size>131072</subbuffer_size>
+          <subbuffer_count>4</subbuffer_count>
+          <switch_timer_interval>0</switch_timer_interval>
+          <read_timer_interval>0</read_timer_interval>
+          <output_type>MMAP</output_type>
+          <tracefile_size>0</tracefile_size>
+          <tracefile_count>0</tracefile_count>
+          <live_timer_interval>4294967295</live_timer_interval>
+        </attributes>
+        <success>true</success>
+      </channel>
+    </channels>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml disable-channel mychannel0,mychannel1 -k  -s mysession2
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>disable-channel</name>
+  <output>
+    <channels>
+      <channel>
+        <name>mychannel0</name>
+        <enabled>false</enabled>
+        <success>true</success>
+      </channel>
+      <channel>
+        <name>mychannel1</name>
+        <enabled>false</enabled>
+        <success>true</success>
+      </channel>
+    </channels>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml disable-channel ustChannel -u  -s mysession2
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>disable-channel</name>
+  <output>
+    <channels>
+      <channel>
+        <name>ustChannel</name>
+        <enabled>false</enabled>
+        <success>true</success>
+      </channel>
+    </channels>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+
+####################################################################
+# Scenario: Test "lttng --mi xml enable-events ..." with different inputs 
+####################################################################
+<SCENARIO>
+EventHandling
+
+# Tracepoint test cases
+<COMMAND_INPUT>
+lttng --mi xml enable-event block_rq_remap,block_bio_remap,softirq_entry -k  -s mysession2 --tracepoint 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>enable-event</name>
+  <output>
+    <events>
+      <event>
+        <name>block_rq_remap</name>
+        <type>TRACEPOINT</type>
+        <enabled>true</enabled>
+        <filter>false</filter>
+        <loglevel>TRACE_EMERG</loglevel>
+        <loglevel_type>ALL</loglevel_type>
+        <exclusion>false</exclusion>
+        <success>true</success>
+      </event>
+      <event>
+        <name>block_bio_remap</name>
+        <type>TRACEPOINT</type>
+        <enabled>true</enabled>
+        <filter>false</filter>
+        <loglevel>TRACE_EMERG</loglevel>
+        <loglevel_type>ALL</loglevel_type>
+        <exclusion>false</exclusion>
+        <success>true</success>
+      </event>
+      <event>
+        <name>softirq_entry</name>
+        <type>TRACEPOINT</type>
+        <enabled>true</enabled>
+        <filter>false</filter>
+        <loglevel>TRACE_EMERG</loglevel>
+        <loglevel_type>ALL</loglevel_type>
+        <exclusion>false</exclusion>
+        <success>true</success>
+      </event>
+    </events>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml enable-event  -a  -k  -s mysession2 -c mychannel --tracepoint 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>enable-event</name>
+  <output>
+    <events>
+      <event>
+        <name>*</name>
+        <type>TRACEPOINT</type>
+        <enabled>true</enabled>
+        <filter>false</filter>
+        <loglevel>TRACE_EMERG</loglevel>
+        <loglevel_type>ALL</loglevel_type>
+        <exclusion>false</exclusion>
+        <success>true</success>
+      </event>
+    </events>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml enable-event ust_tests_hello:tptest_sighandler -u  -s mysession2 -c mychannel --tracepoint 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>enable-event</name>
+  <output>
+    <events>
+      <event>
+        <name>ust_tests_hello:tptest_sighandler</name>
+        <type>TRACEPOINT</type>
+        <enabled>true</enabled>
+        <filter>false</filter>
+        <exclusion>false</exclusion>
+        <success>true</success>
+      </event>
+    </events>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml enable-event ust_tests_hello:tptest_sighandler -u  -s mysession2 -c mychannel --tracepoint  --filter 'intfield==10'
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>enable-event</name>
+  <output>
+    <events>
+      <event>
+        <name>ust_tests_hello:tptest_sighandler</name>
+        <type>TRACEPOINT</type>
+        <enabled>true</enabled>
+        <filter>true</filter>
+        <exclusion>false</exclusion>
+        <success>true</success>
+      </event>
+    </events>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml enable-event  -a  -u  -s mysession2 -c mychannel --tracepoint 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>enable-event</name>
+  <output>
+    <events>
+      <event>
+        <name>*</name>
+        <type>TRACEPOINT</type>
+        <enabled>true</enabled>
+        <filter>false</filter>
+        <exclusion>false</exclusion>
+        <success>true</success>
+      </event>
+    </events>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+# Syscall test cases
+
+<COMMAND_INPUT>
+lttng --mi xml enable-event  -a  -k  -s mysession2 --syscall 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>enable-event</name>
+  <output>
+    <events>
+      <event>
+        <name>*</name>
+        <type>SYSCALL</type>
+        <enabled>true</enabled>
+        <filter>false</filter>
+        <success>true</success>
+      </event>
+    </events>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml enable-event  -a  -k  -s mysession2 -c mychannel --syscall 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>enable-event</name>
+  <output>
+    <events>
+      <event>
+        <name>*</name>
+        <type>SYSCALL</type>
+        <enabled>true</enabled>
+        <filter>false</filter>
+        <success>true</success>
+      </event>
+    </events>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+# dynamic probe/function probe test cases
+
+<COMMAND_INPUT>
+lttng --mi xml enable-event myevent0 -k  -s mysession2 --function 0xc0101340
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>enable-event</name>
+  <output>
+    <events>
+      <event>
+        <name>myevent0</name>
+        <type>FUNCTION</type>
+        <enabled>false</enabled>
+        <filter>false</filter>
+        <success>true</success>
+      </event>
+    </events>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml enable-event myevent1 -k  -s mysession2 -c mychannel --probe init_post
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>enable-event</name>
+  <output>
+    <events>
+      <event>
+        <name>myevent1</name>
+        <type>PROBE</type>
+        <enabled>false</enabled>
+        <filter>false</filter>
+        <offset>0</offset>
+        <symbol_name>init_post</symbol_name>
+        <success>true</success>
+      </event>
+    </events>
+  </output>
+  <success>true</success>
+</command>
+
+</COMMAND_OUTPUT>
+
+# log level test cases
+
+<COMMAND_INPUT>
+lttng --mi xml enable-event myevent4 -u  -s mysession2 --loglevel-only TRACE_DEBUG
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>enable-event</name>
+  <output>
+    <events>
+      <event>
+        <name>myevent4</name>
+        <type>TRACEPOINT</type>
+        <enabled>true</enabled>
+        <filter>false</filter>
+        <loglevel>TRACE_DEBUG</loglevel>
+        <loglevel_type>SINGLE</loglevel_type>
+        <exclusion>false</exclusion>
+        <success>true</success>
+      </event>
+    </events>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml enable-event myevent5 -u  -s mysession2 -c mychannel --loglevel TRACE_DEBUG_FUNCTION
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>enable-event</name>
+  <output>
+    <events>
+      <event>
+        <name>myevent5</name>
+        <type>TRACEPOINT</type>
+        <enabled>true</enabled>
+        <filter>false</filter>
+        <loglevel>TRACE_DEBUG_FUNCTION</loglevel>
+        <loglevel_type>RANGE</loglevel_type>
+        <exclusion>false</exclusion>
+        <success>true</success>
+      </event>
+    </events>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+</SCENARIO>
+
+####################################################################
+# Scenario: Test "lttng add-context -h" and lttng --mi xml add-context ..." with different inputs 
+####################################################################
+
+<SCENARIO>
+ContextHandling
+
+<COMMAND_INPUT>
+lttng --mi xml add-context  -h 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+usage: lttng add-context -t TYPE [-k|-u] [OPTIONS]
+
+If no channel is given (-c), the context is added to
+all channels.
+
+Otherwise the context is added only to the channel (-c).
+
+Exactly one domain (-k or -u) must be specified.
+
+Options:
+  -h, --help               Show this help
+      --list-options       Simple listing of options
+  -s, --session NAME       Apply to session name
+  -c, --channel NAME       Apply to channel
+  -k, --kernel             Apply to the kernel tracer
+  -u, --userspace          Apply to the user-space tracer
+
+Context:
+  -t, --type TYPE          Context type. You can repeat that option on
+                           the command line to specify multiple contexts at once.
+                           (--kernel preempts --userspace)
+                           TYPE can be one of the strings below:
+                               pid, procname, prio, nice, vpid, tid, pthread_id,
+                               vtid, ppid, vppid, perf:cpu:cpu-cycles, perf:cpu:cycles
+Note that the vpid, vppid and vtid context types represent the virtual process id,
+virtual parent process id and virtual thread id as seen from the current execution context
+as opposed to the pid, ppid and tid which are kernel internal data structures.
+
+Example:
+This command will add the context information 'prio' and two per-cpu
+perf counters (hardware branch misses and cache misses), to all channels
+in the trace data output:
+# lttng add-context -k -t prio -t perf:cpu:branch-misses -t perf:cpu:cache-misses
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml add-context -s mysession2 -c mychannel -e ust_tests_hello:tptest_sighandler -u  -t prio -t pid
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+UST context prio added to event ust_tests_hello:tptest_sighandle channel mychannel
+UST context pid added to event sched_kthread_stop_ret channel mychannel
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+<SCENARIO>
+ContextErrorHandling
+
+<COMMAND_INPUT>
+lttng --mi xml add-context  -h 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+1
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+usage: lttng add-context -t TYPE
+
+If no channel and no event is given (-c/-e), the context
+will be added to all events and all channels.
+Otherwise the context will be added only to the channel (-c)
+and/or event (-e) indicated.
+Exactly one domain (-k/--kernel or -u/--userspace) must be specified.
+
+Options:
+  -h, --help               Show this help
+      --list-options       Simple listing of options
+  -s, --session NAME       Apply to session name
+  -c, --channel NAME       Apply to channel
+  -e, --event NAME         Apply to event
+  -k, --kernel             Apply to the kernel tracer
+  -u, --userspace          Apply to the user-space tracer
+  -t, --type TYPE          Context type. You can repeat that option on
+                           the command line to specify multiple contexts at once.
+                           (--kernel preempts --userspace)
+                           TYPE can be one of the strings below:
+                               pid, procname, prio, nice, vpid, tid, pthread_id,
+                               vtid, ppid, vppid, perf:cpu-cycles, perf:cycles
+Example:
+This command will add the context information 'prio' and two perf
+counters (hardware branch misses and cache misses), to all events
+in the trace data output:
+# lttng add-context -k  -t prio -t perf:branch-misses -t perf:cache-misses
+
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml add-context -s mysession2 -c mychannel -e ust_tests_hello:tptest_sighandler -u  -t prio -t pid
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+1
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+UST context prio added to event ust_tests_hello:tptest_sighandle channel mychannel
+UST context pid added to event sched_kthread_stop_ret channel mychannel
+</COMMAND_OUTPUT>
+
+</SCENARIO>
+
+<SCENARIO>
+CalibrateHandling
+<COMMAND_INPUT>
+lttng --mi xml calibrate  -k  --function 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>calibrate</name>
+  <output>
+    <calibrate>
+      <type>FUNCTION</type>
+    </calibrate>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml calibrate -u --function 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>calibrate</name>
+  <output>
+    <calibrate>
+      <type>FUNCTION</type>
+    </calibrate>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+</SCENARIO>
+
+####################################################################
+# Scenario: Test "lttng create <session> with LTTng 2.1 options  
+####################################################################
+<SCENARIO>
+CreateSessionLttng2.1
+
+<COMMAND_INPUT>
+lttng --mi xml create mysession -U net://172.0.0.1
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>create</name>
+  <output>
+    <session>
+      <name>mysession</name>
+      <path>tcp4://172.0.0.1:5342/mysession-20140813-095804 [data: 5343]</path>
+      <enabled>false</enabled>
+      <snapshot_mode>0</snapshot_mode>
+      <live_timer_interval>0</live_timer_interval>
+    </session>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml create mysession -U file:///tmp
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>create</name>
+  <output>
+    <session>
+      <name>mysession</name>
+      <path>/tmp</path>
+      <enabled>false</enabled>
+      <snapshot_mode>0</snapshot_mode>
+      <live_timer_interval>0</live_timer_interval>
+    </session>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml create mysession -C tcp://172.0.0.1 -D tcp://172.0.0.1:5343
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>create</name>
+  <output>
+    <session>
+      <name>mysession</name>
+      <path>tcp4://172.0.0.1:5342/ [data: 5343]</path>
+      <enabled>false</enabled>
+      <snapshot_mode>0</snapshot_mode>
+      <live_timer_interval>0</live_timer_interval>
+    </session>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml create mysession -U 172.0.0.1:1234:2345
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>create</name>
+  <output>
+    <session>
+      <name>mysession</name>
+      <path>tcp4://172.0.0.1:1234/mysession-20140813-102225 [data: 2345]</path>
+      <enabled>false</enabled>
+      <snapshot_mode>0</snapshot_mode>
+      <live_timer_interval>0</live_timer_interval>
+    </session>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml destroy mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>destroy</name>
+  <output>
+    <sessions>
+      <session>
+        <name>mysession</name>
+        <path>/home/user/lttng-traces/mysession-20140818-100114</path>
+        <enabled>false</enabled>
+        <snapshot_mode>0</snapshot_mode>
+        <live_timer_interval>0</live_timer_interval>
+      </session>
+    </sessions>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+
+<COMMAND_INPUT>
+lttng --mi xml -vvv  create mysession -U net://172.0.0.1
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+DEBUG3: URI string: net://172.0.0.1 [in uri_parse() at uri.c:253]
+DEBUG2: IP address resolved to 172.0.0.1 [in set_ip_address() at uri.c:132]
+DEBUG3: URI dtype: 1, proto: 1, host: 172.0.0.1, subdir: , ctrl: 0, data: 0 [in uri_parse() at uri.c:467]
+DEBUG1: LSM cmd type : 8 [in send_session_msg() at lttng-ctl.c:261]
+Session mysession created.
+Traces will be written in net://172.0.0.1
+DEBUG1: Init config session in /home/bernd [in config_init() at conf.c:294]
+</COMMAND_OUTPUT>
+
+</SCENARIO>
+
+####################################################################
+# Scenario: Test "lttng create <session> --snapshot (LTTng 2.3)
+####################################################################
+<SCENARIO>
+CreateSessionSnapshot
+<COMMAND_INPUT>
+lttng --mi xml create mysession --snapshot 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>create</name>
+  <output>
+    <session>
+      <name>mysession</name>
+      <path/>
+      <enabled>false</enabled>
+      <snapshot_mode>1</snapshot_mode>
+      <live_timer_interval>4294967295</live_timer_interval>
+    </session>
+  </output>
+  <success>true</success>
+</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-20130913-141651</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 
+</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/>
+        <enabled>false</enabled>
+        <snapshot_mode>1</snapshot_mode>
+        <live_timer_interval>4294967295</live_timer_interval>
+      </session>
+    </sessions>
+  </output>
+</command>
+</COMMAND_OUTPUT>
+#------------------------------------------------------------------------------
+<COMMAND_INPUT>
+lttng --mi xml snapshot record  -s mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+    Snapshot recorded successfully for session mysession
+</COMMAND_OUTPUT>
+#------------------------------------------------------------------------------
+<COMMAND_INPUT>
+lttng --mi xml destroy mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>destroy</name>
+  <output>
+    <sessions>
+      <session>
+        <name>mysession</name>
+        <path>/home/user/lttng-traces/mysession-20140818-100114</path>
+        <enabled>false</enabled>
+        <snapshot_mode>0</snapshot_mode>
+        <live_timer_interval>0</live_timer_interval>
+      </session>
+    </sessions>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test "lttng create <session> --snapshot -U <URL> (LTTng 2.3)
+####################################################################
+<SCENARIO>
+CreateSessionStreamedSnapshot
+<COMMAND_INPUT>
+lttng --mi xml create mysession --snapshot -U net://172.0.0.1
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+Session mysession created.
+Default snapshot output set to: net://172.0.0.1
+Snapshot mode set. Every channel enabled for that session will be set in overwrite mode and mmap output.
+</COMMAND_OUTPUT>
+#------------------------------------------------------------------------------
+<COMMAND_INPUT>
+lttng --mi xml snapshot list-output  -s mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+Snapshot output list for session mysession
+    [2] snapshot-2: net4://172.0.0.1:5342/
+</COMMAND_OUTPUT>
+#------------------------------------------------------------------------------
+<COMMAND_INPUT>
+lttng --mi xml list 
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+  1) mysession () [inactive snapshot]
+
+</COMMAND_OUTPUT>
+#------------------------------------------------------------------------------
+<COMMAND_INPUT>
+lttng --mi xml snapshot record  -s mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+    Snapshot recorded successfully for session mysession
+</COMMAND_OUTPUT>
+#------------------------------------------------------------------------------
+<COMMAND_INPUT>
+lttng --mi xml destroy mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>destroy</name>
+  <output>
+    <sessions>
+      <session>
+        <name>mysession</name>
+        <path>/home/user/lttng-traces/mysession-20140818-100114</path>
+        <enabled>false</enabled>
+        <snapshot_mode>0</snapshot_mode>
+        <live_timer_interval>0</live_timer_interval>
+      </session>
+    </sessions>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test "lttng create <session> --snapshot (LTTng 2.3)
+####################################################################
+<SCENARIO>
+CreateSessionSnapshotErrors
+<COMMAND_INPUT>
+lttng --mi xml snapshot list-output  -s blabla
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+1
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<COMMAND_ERROR_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>snapshot</name>
+  <output>
+    <snapshot_action>
+      <name>list-output</name>
+      <output/>
+    </snapshot_action>
+  </output>
+  <success>false</success>
+</command>
+</COMMAND_ERROR_OUTPUT>
+</COMMAND_OUTPUT>
+#------------------------------------------------------------------------------
+#next is not an error case but good to be tested
+<COMMAND_INPUT>
+lttng --mi xml list 
+</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/>
+        <enabled>true</enabled>
+        <snapshot_mode>1</snapshot_mode>
+        <live_timer_interval>4294967295</live_timer_interval>
+      </session>
+    </sessions>
+  </output>
+</command>
+</COMMAND_OUTPUT>
+#------------------------------------------------------------------------------
+<COMMAND_INPUT>
+lttng --mi xml snapshot record  -s blabla
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+1
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<COMMAND_ERROR_OUTPUT>
+    Error: Session name not found
+</COMMAND_ERROR_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>snapshot</name>
+  <output>
+    <snapshot_action>
+      <name>record</name>
+      <output/>
+    </snapshot_action>
+  </output>
+  <success>false</success>
+</command>
+</COMMAND_OUTPUT>
+#------------------------------------------------------------------------------
+<COMMAND_INPUT>
+lttng --mi xml snapshot record  -s mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+1
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<COMMAND_ERROR_OUTPUT>
+    Error: Session needs to be started once
+</COMMAND_ERROR_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>snapshot</name>
+  <output>
+    <snapshot_action>
+      <name>record</name>
+      <output/>
+    </snapshot_action>
+  </output>
+  <success>false</success>
+</command>
+</COMMAND_OUTPUT>
+
+</SCENARIO>
+
+####################################################################
+# Scenario: Test "lttng create <session> --live [USEC] (LTTng 2.4)
+####################################################################
+<SCENARIO>
+CreateSessionLive
+<COMMAND_INPUT>
+lttng --mi xml create mysession --live  -U net://127.0.0.1
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>create</name>
+  <output>
+    <session>
+      <name>mysession</name>
+      <path>tcp4://127.0.0.1:5342/ [data: 5343]</path>
+      <enabled>false</enabled>
+      <snapshot_mode>0</snapshot_mode>
+      <live_timer_interval>1000000</live_timer_interval>
+    </session>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+#------------------------------------------------------------------------------
+<COMMAND_INPUT>
+lttng --mi xml list 
+</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>tcp4://127.0.0.1:5342/ [data: 5343]</path>
+        <enabled>false</enabled>
+        <snapshot_mode>0</snapshot_mode>
+        <live_timer_interval>1000000</live_timer_interval>
+      </session>
+    </sessions>
+  </output>
+</command>
+</COMMAND_OUTPUT>
+#------------------------------------------------------------------------------
+<COMMAND_INPUT>
+lttng --mi xml destroy mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+  <name>destroy</name>
+  <output>
+    <sessions>
+      <session>
+        <name>mysession</name>
+        <path>/home/user/lttng-traces/mysession-20140818-100114</path>
+        <enabled>false</enabled>
+        <snapshot_mode>0</snapshot_mode>
+        <live_timer_interval>0</live_timer_interval>
+      </session>
+    </sessions>
+  </output>
+  <success>true</success>
+</command>
+</COMMAND_OUTPUT>
+</SCENARIO>
+
+####################################################################
+# Scenario: Test errors for  "lttng create <session> --live [USEC] (LTTng 2.4)
+####################################################################
+<SCENARIO>
+CreateSessionLiveErrors
+<COMMAND_INPUT>
+lttng --mi xml create mysession --live --snapshot
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+1
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<COMMAND_ERROR_OUTPUT>
+Error: Snapshot and live modes are mutually exclusive.
+Error: Command error
+</COMMAND_ERROR_OUTPUT>
+</COMMAND_OUTPUT>
+#------------------------------------------------------------------------------
+<COMMAND_INPUT>
+lttng --mi xml create mysession --live -U blah
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+1
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<COMMAND_ERROR_OUTPUT>
+Error: URI parse unknown protocol blah
+Error: Unable to parse the URL blah
+Error: Invalid parameter
+</COMMAND_ERROR_OUTPUT>
+</COMMAND_OUTPUT>
+#------------------------------------------------------------------------------
+<COMMAND_INPUT>
+lttng --mi xml create mysession --live -C net://127.0.0.1
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+1
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<COMMAND_ERROR_OUTPUT>
+Error: You need both control and data URL.
+Error: Command error
+</COMMAND_ERROR_OUTPUT>
+</COMMAND_OUTPUT>
+</SCENARIO>
\ No newline at end of file
index 9d519f92eb213f8a5e05441554640ee094b39f93..0a2ff991cfe3895fdb0ab09da9accad2b8298c77 100644 (file)
@@ -455,7 +455,7 @@ Error: Command Error
 </SCENARIO>
 
 ####################################################################
-# Scenario: Test "lttng list -k" with no kernel and with session daemon 
+# Scenario: Test "lttng list -u" with no ust and with session daemon 
 ####################################################################
 <SCENARIO>
 ListWithNoUst3
index 328e751a1999142b559b4d056512dcc6802092c3..6d4760fa9bffbd6b1043429ce02d8c832adde4c7 100644 (file)
@@ -64,11 +64,11 @@ public interface LTTngControlServiceConstants {
     /**
      * The lttng tools machine interface command.
      */
-    static final String CONTROL_COMMAND_MI = CONTROL_COMMAND + " --mi "; //$NON-NLS-1$
+    static final String CONTROL_COMMAND_MI = CONTROL_COMMAND + " --mi"; //$NON-NLS-1$
     /**
      * The lttng tools XML machine interface command.
      */
-    static final String CONTROL_COMMAND_MI_XML = CONTROL_COMMAND_MI + " xml "; //$NON-NLS-1$
+    static final String CONTROL_COMMAND_MI_XML = CONTROL_COMMAND_MI + " xml"; //$NON-NLS-1$
     /**
      * Command: lttng version.
      */
This page took 0.050311 seconds and 5 git commands to generate.