control: Add SwtBot tests for importing as experiment
authorBernd Hufmann <Bernd.Hufmann@ericsson.com>
Thu, 10 Mar 2016 16:12:10 +0000 (11:12 -0500)
committerBernd Hufmann <bernd.hufmann@ericsson.com>
Fri, 11 Mar 2016 20:50:12 +0000 (15:50 -0500)
The following test cases are added:
- import without experiment
- create experiment when importing a kernel trace
- create experiment during import with experiment name validation

Utility methods are added to SwtBotUtils to create an experiment and
to clear the experiment folder.

Change-Id: I68f7a1e350a87cb98b40389f0f4d2b7bf2f741d5
Signed-off-by: Bernd Hufmann <Bernd.Hufmann@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/68163
Reviewed-by: Hudson CI
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
lttng/org.eclipse.tracecompass.lttng2.control.ui.swtbot.tests/META-INF/MANIFEST.MF
lttng/org.eclipse.tracecompass.lttng2.control.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/control/ui/swtbot/tests/ControlViewSwtBotUtil.java
lttng/org.eclipse.tracecompass.lttng2.control.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/control/ui/swtbot/tests/ControlViewTest.java
lttng/org.eclipse.tracecompass.lttng2.control.ui.swtbot.tests/testfiles/CreateSessionTestLTTng2_7.cfg
lttng/org.eclipse.tracecompass.lttng2.control.ui.tests/META-INF/MANIFEST.MF
lttng/org.eclipse.tracecompass.lttng2.control.ui.tests/stubs/org/eclipse/tracecompass/internal/lttng2/control/stubs/shells/LTTngToolsFileShell.java

index b2399314edd2266bc4e828f2757f8163930e607d..8394a421ffc5dd2794ed592cce1b5ef3113ab5aa 100644 (file)
@@ -11,13 +11,12 @@ Require-Bundle: org.apache.log4j,
  org.eclipse.core.resources,
  org.eclipse.core.runtime,
  org.eclipse.remote.core,
- org.eclipse.tracecompass.analysis.os.linux.ui,
- org.eclipse.tracecompass.tmf.core,
+ org.eclipse.tracecompass.tmf.core;bundle-version="2.0.0",
  org.eclipse.tracecompass.tmf.core.tests,
- org.eclipse.tracecompass.tmf.ctf.core,
+ org.eclipse.tracecompass.tmf.ctf.core;bundle-version="2.0.0",
  org.eclipse.tracecompass.tmf.ctf.core.tests,
- org.eclipse.tracecompass.tmf.remote.core,
- org.eclipse.tracecompass.tmf.ui,
+ org.eclipse.tracecompass.tmf.remote.core;bundle-version="2.0.0",
+ org.eclipse.tracecompass.tmf.ui;bundle-version="2.0.0",
  org.eclipse.tracecompass.tmf.ui.swtbot.tests,
  org.eclipse.swtbot.eclipse.finder,
  org.eclipse.swtbot.junit4_x,
@@ -27,7 +26,8 @@ Require-Bundle: org.apache.log4j,
  org.junit,
  org.eclipse.tracecompass.lttng2.control.core,
  org.eclipse.tracecompass.lttng2.control.ui,
- org.eclipse.tracecompass.lttng2.control.ui.tests
+ org.eclipse.tracecompass.lttng2.control.ui.tests;bundle-version="2.0.0",
+ org.eclipse.tracecompass.ctf.core.tests
 Export-Package: org.eclipse.tracecompass.lttng2.control.ui.swtbot.tests
 Import-Package: com.google.common.collect,
  org.eclipse.tracecompass.testtraces.ctf;version="1.0.0"
index 4f9de63131a8cc98c3e7bfb1670aed74d69f35da..da47fe0bb8587e9a1626fdd62c0cb7b82fb3289d 100644 (file)
@@ -35,6 +35,7 @@ class ControlViewSwtBotUtil {
     public static final String ALL_EVENTS_NAME = "*";
     public static final String SCHED_SWITCH_EVENT_NAME = "sched_switch";
     public static final String PROFILE_SUFFIX = ".lttng";
+    public static final String KERNEL_TRACE_NAME = "kernel";
 
     // Menu strings
     public static final String CONNECT_MENU_ITEM = "Connect";
@@ -44,6 +45,7 @@ class ControlViewSwtBotUtil {
     public static final String ENABLE_EVENT_MENU_ITEM = "Enable Event...";
     public static final String START_MENU_ITEM = "Start";
     public static final String STOP_MENU_ITEM = "Stop";
+    public static final String IMPORT_MENU_ITEM = "Import...";
     public static final String DESTROY_MENU_ITEM = "Destroy Session...";
     public static final String DISCONNECT_MENU_ITEM = "Disconnect";
     public static final String SAVE_MENU_ITEM = "Save...";
@@ -73,6 +75,13 @@ class ControlViewSwtBotUtil {
     public static final String LOAD_DIALOG_TITLE = "Load Sessions";
     public static final String REMOTE_RADIO_BUTTON_LABEL = "Remote";
 
+    // Remote import strings
+    public static final String IMPORT_WIZARD_TITLE = "Fetch Remote Traces";
+    public static final String DEFAULT_REMOTE_PROJECT = "Remote";
+    public static final String FINISH_BUTTON = "Finish";
+    public static final String CANCEL_BUTTON = "Cancel";
+    public static final String OPTION_GROUP_NAME = "Options";
+
     private ControlViewSwtBotUtil() { }
 
     /**
index 0bfe1e3b9ed828ccaabd996a3b604fb400f77e4a..03c5a5db6c00de25f9fce153825d78181b00b95d 100644 (file)
@@ -11,6 +11,7 @@ package org.eclipse.tracecompass.lttng2.control.ui.swtbot.tests;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.net.URL;
@@ -18,19 +19,28 @@ import java.net.URL;
 import org.apache.log4j.ConsoleAppender;
 import org.apache.log4j.Logger;
 import org.apache.log4j.SimpleLayout;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.remote.core.IRemoteConnection;
 import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
 import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.swt.finder.SWTBot;
 import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
 import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences;
+import org.eclipse.swtbot.swt.finder.waits.Conditions;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotButton;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotCheckBox;
 import org.eclipse.swtbot.swt.finder.widgets.SWTBotMenu;
 import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
 import org.eclipse.swtbot.swt.finder.widgets.SWTBotText;
 import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
 import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.eclipse.tracecompass.ctf.core.tests.shared.LttngKernelTraceGenerator;
 import org.eclipse.tracecompass.internal.lttng2.control.core.model.TargetNodeState;
 import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceSessionState;
 import org.eclipse.tracecompass.internal.lttng2.control.stubs.service.TestRemoteSystemProxy;
@@ -39,6 +49,10 @@ import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.ITraceCon
 import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TargetNodeComponent;
 import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceSessionComponent;
 import org.eclipse.tracecompass.tmf.remote.core.proxy.TmfRemoteConnectionFactory;
+import org.eclipse.tracecompass.tmf.ui.project.model.TmfExperimentElement;
+import org.eclipse.tracecompass.tmf.ui.project.model.TmfExperimentFolder;
+import org.eclipse.tracecompass.tmf.ui.project.model.TmfProjectElement;
+import org.eclipse.tracecompass.tmf.ui.project.model.TmfProjectRegistry;
 import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.ConditionHelpers;
 import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.SWTBotUtils;
 import org.eclipse.ui.IViewPart;
@@ -50,7 +64,7 @@ import org.junit.runner.RunWith;
 import org.osgi.framework.FrameworkUtil;
 
 /**
- * Test for the Call Stack view in trace compass
+ * Test for the LTTng Control view in Trace Compass
  *
  * @author Bernd Hufmann
  */
@@ -88,7 +102,6 @@ public class ControlViewTest {
     /** The target node component */
     protected TargetNodeComponent fNode;
 
-
     /** The test file */
     protected String fTestFile;
 
@@ -199,6 +212,18 @@ public class ControlViewTest {
         testEnableUstEvents();
         testStartStopTracing(TraceSessionState.ACTIVE);
         testStartStopTracing(TraceSessionState.INACTIVE);
+        // Import without experiment creation
+        testImport(false, true);
+        SWTBotUtils.clearTracesFolder(fBot, ControlViewSwtBotUtil.DEFAULT_REMOTE_PROJECT);
+        // Import with experiment creation (default experiment name)
+        testImport(true, true);
+        SWTBotUtils.clearTracesFolder(fBot, ControlViewSwtBotUtil.DEFAULT_REMOTE_PROJECT);
+        /*
+         * Import with experiment creation, test experiment already exists and
+         * with experiment name validation
+         */
+        testImport(true, false);
+        SWTBotUtils.clearExperimentFolder(fBot, ControlViewSwtBotUtil.DEFAULT_REMOTE_PROJECT);
         testDestroySession();
         testDisconnectFromNode();
     }
@@ -395,7 +420,6 @@ public class ControlViewTest {
             SWTBotUtils.waitForJobs();
         }
         TraceSessionComponent sessionComp = ControlViewSwtBotUtil.getSessionComponent(fNode, getSessionName());
-        assertNotNull(sessionComp);
 
         fBot.waitUntil(ControlViewSwtBotUtil.isSessionStateChanged(sessionComp, state));
         assertEquals(state, sessionComp.getSessionState());
@@ -430,7 +454,6 @@ public class ControlViewTest {
      */
     protected void testDisconnectFromNode() {
         SWTBotTreeItem nodeItem = SWTBotUtils.getTreeItem(fBot, fTree, getNodeName());
-
         nodeItem.select();
         SWTBotMenu menuBot = nodeItem.contextMenu(ControlViewSwtBotUtil.DISCONNECT_MENU_ITEM);
         menuBot.click();
@@ -441,4 +464,137 @@ public class ControlViewTest {
         assertEquals(TargetNodeState.DISCONNECTED, fNode.getTargetNodeState());
         assertEquals(0, nodeItem.getNodes().size());
     }
+
+    /**
+     * Test import
+     *
+     * @param createExperiment
+     *            flag to indicate to create an experiment or not
+     * @param defaultExperiment
+     *            flag to indicate to use default experiment or not
+     */
+    protected void testImport(boolean createExperiment, boolean defaultExperiment) {
+        SWTBotTreeItem sessionItem = SWTBotUtils.getTreeItem(fBot, fTree,
+                getNodeName(),
+                ControlViewSwtBotUtil.SESSION_GROUP_NAME,
+                getSessionName());
+        sessionItem.select();
+        TraceSessionComponent sessionComp = ControlViewSwtBotUtil.getSessionComponent(fNode, getSessionName());
+
+        String pathString = sessionComp.isSnapshotSession() ? sessionComp.getSnapshotInfo().getSnapshotPath() : sessionComp.getSessionPath();
+        IPath path = new Path(pathString);
+
+        IWorkspace workspace = ResourcesPlugin.getWorkspace();
+
+        //get location of workspace (java.io.File)
+        File workspaceDirectory = workspace.getRoot().getLocation().toFile();
+        Path workspacePath = new Path(workspaceDirectory.toString());
+
+        // Only do tests if session path is in workspace
+        if (workspacePath.isPrefixOf(path)) {
+
+            generateTrace(path);
+
+            // Open import wizard
+            SWTBotMenu menuBot = sessionItem.contextMenu(ControlViewSwtBotUtil.IMPORT_MENU_ITEM);
+            menuBot.click();
+            SWTBotShell shell = fBot.shell(ControlViewSwtBotUtil.IMPORT_WIZARD_TITLE).activate();
+
+            // This will create the Remote project if needed
+            closeImportWizard(shell, ControlViewSwtBotUtil.CANCEL_BUTTON);
+
+            // Verify that remote project was created by import wizard
+            TmfProjectElement tmfProject = verifyRemoteProject();
+
+            // Re-open import wizard
+            menuBot = sessionItem.contextMenu(ControlViewSwtBotUtil.IMPORT_MENU_ITEM);
+            menuBot.click();
+            shell = fBot.shell(ControlViewSwtBotUtil.IMPORT_WIZARD_TITLE).activate();
+
+            // Prepare and verify experiment handling
+            String experimentName = prepareAndVerifyExperimentHandling(shell.bot(), createExperiment, defaultExperiment, path);
+
+            // Finish and import
+            closeImportWizard(shell, ControlViewSwtBotUtil.FINISH_BUTTON);
+
+            // Verify experiment folder
+            verifyExperimentFolder(createExperiment, tmfProject, experimentName);
+        }
+    }
+
+
+    private static TmfProjectElement verifyRemoteProject() {
+        IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(ControlViewSwtBotUtil.DEFAULT_REMOTE_PROJECT);
+        // verify that project was created
+        assertTrue(project.exists());
+        TmfProjectElement tmfProject = TmfProjectRegistry.getProject(project, true);
+        return tmfProject;
+    }
+
+    private static void verifyExperimentFolder(boolean createExperiment, TmfProjectElement tmfProject, String experimentName) {
+        TmfExperimentFolder expFolder = tmfProject.getExperimentsFolder();
+        if (createExperiment) {
+            if (experimentName != null) {
+                TmfExperimentElement expElement = expFolder.getExperiment(experimentName);
+                assertNotNull(expElement);
+                assertEquals(1, expElement.getTraces().size());
+            }
+        } else {
+            assertTrue(expFolder.getExperiments().size() == 0);
+        }
+    }
+
+    private static void generateTrace(IPath path) {
+        File traceParent = path.toFile();
+        traceParent.mkdirs();
+        LttngKernelTraceGenerator.generateLttngKernelTrace(path.append(ControlViewSwtBotUtil.KERNEL_TRACE_NAME).toFile());
+    }
+
+    private static void closeImportWizard(SWTBotShell shell, String buttonName) {
+        SWTBotButton button = shell.bot().button(buttonName);
+        shell.bot().waitUntil(Conditions.widgetIsEnabled(button));
+        button.click();
+        fBot.waitUntil(Conditions.shellCloses(shell));
+        SWTBotUtils.waitForJobs();
+    }
+
+    private static String prepareAndVerifyExperimentHandling(SWTBot bot, boolean createExperiment, boolean defaultExperiment, IPath path) {
+        String experimentName = path.lastSegment();
+        if (createExperiment) {
+            SWTBotCheckBox checkBox = bot.checkBox();
+            checkBox.click();
+            if (!defaultExperiment) {
+                experimentName = verifyExperimentNameHandling(bot, experimentName);
+            }
+        }
+        return experimentName;
+    }
+
+    private static @NonNull String verifyExperimentNameHandling(SWTBot bot, String aExperimentName) {
+        String experimentName = aExperimentName;
+
+        // experiment already exists
+        checkFinishButton(bot, false);
+
+        SWTBotText expText = bot.textInGroup(ControlViewSwtBotUtil.OPTION_GROUP_NAME);
+
+        // Invalid experiment name (only whitespaces)
+        expText.setText(String.valueOf(' '));
+        checkFinishButton(bot, false);
+
+        // Invalid experiment name
+        expText.setText(String.valueOf('/'));
+        checkFinishButton(bot, false);
+
+        // Set valid experiment name
+        experimentName += '_';
+        expText.setText(experimentName);
+        return experimentName;
+    }
+
+    private static void checkFinishButton(SWTBot bot, boolean isEnabled) {
+        final SWTBotButton finishButton = bot.button(ControlViewSwtBotUtil.FINISH_BUTTON);
+        assertTrue(finishButton.isEnabled() == isEnabled);
+    }
+
 }
\ No newline at end of file
index cf140b0fef01e8e4c68f40ff70f4b10789a64617..674edb17d1eafb387377d6f716f31cb9a585cb7e 100644 (file)
@@ -52,7 +52,7 @@ lttng --mi xml create mysession
 </COMMAND_RESULT>
 <COMMAND_OUTPUT>
 <?xml version="1.0" encoding="UTF-8"?>
-<command><name>create</name><output><session><name>mysession</name><path>/home/eedbhu/lttng-traces/mysession-20151201-205959</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval></session></output><success>true</success></command>
+<command><name>create</name><output><session><name>mysession</name><path>${workspace}/lttng-traces/mysession-20151201-205959</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 list mysession
@@ -62,7 +62,7 @@ lttng --mi xml list mysession
 </COMMAND_RESULT>
 <COMMAND_OUTPUT>
 <?xml version="1.0" encoding="UTF-8"?>
-<command><name>list</name><output><sessions><session><name>mysession</name><path>/home/eedbhu/lttng-traces/mysession-20151201-205959</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval><domains/></session></sessions></output></command>
+<command><name>list</name><output><sessions><session><name>mysession</name><path>${workspace}/lttng-traces/mysession-20151201-205959</path><enabled>false</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 enable-event -a -k -s mysession --tracepoint
@@ -82,7 +82,7 @@ lttng --mi xml list mysession
 </COMMAND_RESULT>
 <COMMAND_OUTPUT>
 <?xml version="1.0" encoding="UTF-8"?>
-<command><name>list</name><output><sessions><session><name>mysession</name><path>/home/eedbhu/lttng-traces/mysession-20151201-205959</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval><domains><domain><type>KERNEL</type><buffer_type>GLOBAL</buffer_type><trackers/><channels><channel><name>channel0</name><enabled>true</enabled><attributes><overwrite_mode>DISCARD</overwrite_mode><subbuffer_size>8388608</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>0</live_timer_interval></attributes><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></event></events></channel></channels></domain></domains></session></sessions></output></command>
+<command><name>list</name><output><sessions><session><name>mysession</name><path>${workspace}/lttng-traces/mysession-20151201-205959</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval><domains><domain><type>KERNEL</type><buffer_type>GLOBAL</buffer_type><trackers/><channels><channel><name>channel0</name><enabled>true</enabled><attributes><overwrite_mode>DISCARD</overwrite_mode><subbuffer_size>8388608</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>0</live_timer_interval></attributes><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></event></events></channel></channels></domain></domains></session></sessions></output></command>
 </COMMAND_OUTPUT>
 <COMMAND_INPUT>
 lttng --mi xml enable-event -a -k -s mysession --syscall
@@ -102,7 +102,7 @@ lttng --mi xml list mysession
 </COMMAND_RESULT>
 <COMMAND_OUTPUT>
 <?xml version="1.0" encoding="UTF-8"?>
-<command><name>list</name><output><sessions><session><name>mysession</name><path>/home/eedbhu/lttng-traces/mysession-20151201-205959</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval><domains><domain><type>KERNEL</type><buffer_type>GLOBAL</buffer_type><trackers/><channels><channel><name>channel0</name><enabled>true</enabled><attributes><overwrite_mode>DISCARD</overwrite_mode><subbuffer_size>8388608</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>0</live_timer_interval></attributes><events><event><name>*</name><type>SYSCALL</type><enabled>true</enabled><filter>false</filter></event><event><name>*</name><type>TRACEPOINT</type><enabled>true</enabled><filter>false</filter><loglevel>TRACE_EMERG</loglevel><loglevel_type>ALL</loglevel_type><exclusion>false</exclusion></event></events></channel></channels></domain></domains></session></sessions></output></command>
+<command><name>list</name><output><sessions><session><name>mysession</name><path>${workspace}/lttng-traces/mysession-20151201-205959</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval><domains><domain><type>KERNEL</type><buffer_type>GLOBAL</buffer_type><trackers/><channels><channel><name>channel0</name><enabled>true</enabled><attributes><overwrite_mode>DISCARD</overwrite_mode><subbuffer_size>8388608</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>0</live_timer_interval></attributes><events><event><name>*</name><type>SYSCALL</type><enabled>true</enabled><filter>false</filter></event><event><name>*</name><type>TRACEPOINT</type><enabled>true</enabled><filter>false</filter><loglevel>TRACE_EMERG</loglevel><loglevel_type>ALL</loglevel_type><exclusion>false</exclusion></event></events></channel></channels></domain></domains></session></sessions></output></command>
 </COMMAND_OUTPUT>
 <COMMAND_INPUT>
 lttng --mi xml enable-channel channel0 -u -s mysession --buffers-uid
@@ -122,7 +122,7 @@ lttng --mi xml list mysession
 </COMMAND_RESULT>
 <COMMAND_OUTPUT>
 <?xml version="1.0" encoding="UTF-8"?>
-<command><name>list</name><output><sessions><session><name>mysession</name><path>/home/eedbhu/lttng-traces/mysession-20151201-205959</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval><domains><domain><type>KERNEL</type><buffer_type>GLOBAL</buffer_type><trackers/><channels><channel><name>channel0</name><enabled>true</enabled><attributes><overwrite_mode>DISCARD</overwrite_mode><subbuffer_size>8388608</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>0</live_timer_interval></attributes><events><event><name>*</name><type>SYSCALL</type><enabled>true</enabled><filter>false</filter></event><event><name>*</name><type>TRACEPOINT</type><enabled>true</enabled><filter>false</filter><loglevel>TRACE_EMERG</loglevel><loglevel_type>ALL</loglevel_type><exclusion>false</exclusion></event></events></channel></channels></domain><domain><type>UST</type><buffer_type>PER_UID</buffer_type><trackers/><channels><channel><name>channel0</name><enabled>true</enabled><attributes><overwrite_mode>DISCARD</overwrite_mode><subbuffer_size>8388608</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>0</live_timer_interval></attributes><events/></channel></channels></domain></domains></session></sessions></output></command>
+<command><name>list</name><output><sessions><session><name>mysession</name><path>${workspace}/lttng-traces/mysession-20151201-205959</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval><domains><domain><type>KERNEL</type><buffer_type>GLOBAL</buffer_type><trackers/><channels><channel><name>channel0</name><enabled>true</enabled><attributes><overwrite_mode>DISCARD</overwrite_mode><subbuffer_size>8388608</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>0</live_timer_interval></attributes><events><event><name>*</name><type>SYSCALL</type><enabled>true</enabled><filter>false</filter></event><event><name>*</name><type>TRACEPOINT</type><enabled>true</enabled><filter>false</filter><loglevel>TRACE_EMERG</loglevel><loglevel_type>ALL</loglevel_type><exclusion>false</exclusion></event></events></channel></channels></domain><domain><type>UST</type><buffer_type>PER_UID</buffer_type><trackers/><channels><channel><name>channel0</name><enabled>true</enabled><attributes><overwrite_mode>DISCARD</overwrite_mode><subbuffer_size>8388608</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>0</live_timer_interval></attributes><events/></channel></channels></domain></domains></session></sessions></output></command>
 </COMMAND_OUTPUT>
 <COMMAND_INPUT>
 lttng --mi xml enable-event -a -u -s mysession -c channel0 --tracepoint
@@ -142,7 +142,7 @@ lttng --mi xml list mysession
 </COMMAND_RESULT>
 <COMMAND_OUTPUT>
 <?xml version="1.0" encoding="UTF-8"?>
-<command><name>list</name><output><sessions><session><name>mysession</name><path>/home/eedbhu/lttng-traces/mysession-20151201-205959</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval><domains><domain><type>KERNEL</type><buffer_type>GLOBAL</buffer_type><trackers/><channels><channel><name>channel0</name><enabled>true</enabled><attributes><overwrite_mode>DISCARD</overwrite_mode><subbuffer_size>8388608</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>0</live_timer_interval></attributes><events><event><name>*</name><type>SYSCALL</type><enabled>true</enabled><filter>false</filter></event><event><name>*</name><type>TRACEPOINT</type><enabled>true</enabled><filter>false</filter><loglevel>TRACE_EMERG</loglevel><loglevel_type>ALL</loglevel_type><exclusion>false</exclusion></event></events></channel></channels></domain><domain><type>UST</type><buffer_type>PER_UID</buffer_type><trackers/><channels><channel><name>channel0</name><enabled>true</enabled><attributes><overwrite_mode>DISCARD</overwrite_mode><subbuffer_size>8388608</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>0</live_timer_interval></attributes><events><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><name>list</name><output><sessions><session><name>mysession</name><path>${workspace}/lttng-traces/mysession-20151201-205959</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval><domains><domain><type>KERNEL</type><buffer_type>GLOBAL</buffer_type><trackers/><channels><channel><name>channel0</name><enabled>true</enabled><attributes><overwrite_mode>DISCARD</overwrite_mode><subbuffer_size>8388608</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>0</live_timer_interval></attributes><events><event><name>*</name><type>SYSCALL</type><enabled>true</enabled><filter>false</filter></event><event><name>*</name><type>TRACEPOINT</type><enabled>true</enabled><filter>false</filter><loglevel>TRACE_EMERG</loglevel><loglevel_type>ALL</loglevel_type><exclusion>false</exclusion></event></events></channel></channels></domain><domain><type>UST</type><buffer_type>PER_UID</buffer_type><trackers/><channels><channel><name>channel0</name><enabled>true</enabled><attributes><overwrite_mode>DISCARD</overwrite_mode><subbuffer_size>8388608</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>0</live_timer_interval></attributes><events><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 start mysession
@@ -182,7 +182,7 @@ lttng --mi xml destroy mysession
 </COMMAND_RESULT>
 <COMMAND_OUTPUT>
 <?xml version="1.0" encoding="UTF-8"?>
-<command><name>destroy</name><output><sessions><session><name>mysession</name><path>/home/eedbhu/lttng-traces/mysession-20151201-205959</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval></session></sessions></output><success>true</success></command>
+<command><name>destroy</name><output><sessions><session><name>mysession</name><path>${workspace}/lttng-traces/mysession-20151201-205959</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>
 
@@ -196,7 +196,7 @@ lttng --mi xml create mysession
 </COMMAND_RESULT>
 <COMMAND_OUTPUT>
 <?xml version="1.0" encoding="UTF-8"?>
-<command><name>create</name><output><session><name>mysession</name><path>/home/eedbhu/lttng-traces/mysession-20160105-151744</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval></session></output><success>true</success></command>
+<command><name>create</name><output><session><name>mysession</name><path>${workspace}/lttng-traces/mysession-20160105-151744</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 list mysession
@@ -206,7 +206,7 @@ lttng --mi xml list mysession
 </COMMAND_RESULT>
 <COMMAND_OUTPUT>
 <?xml version="1.0" encoding="UTF-8"?>
-<command><name>list</name><output><sessions><session><name>mysession</name><path>/home/eedbhu/lttng-traces/mysession-20160105-151744</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval><domains/></session></sessions></output></command>
+<command><name>list</name><output><sessions><session><name>mysession</name><path>${workspace}/lttng-traces/mysession-20160105-151744</path><enabled>false</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 enable-event -a -k -s mysession --tracepoint --filter next_tid==1234
@@ -226,7 +226,7 @@ lttng --mi xml list mysession
 </COMMAND_RESULT>
 <COMMAND_OUTPUT>
 <?xml version="1.0" encoding="UTF-8"?>
-<command><name>list</name><output><sessions><session><name>mysession</name><path>/home/eedbhu/lttng-traces/mysession-20160105-151744</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval><domains><domain><type>KERNEL</type><buffer_type>GLOBAL</buffer_type><trackers/><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>200000</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>*</name><type>TRACEPOINT</type><enabled>true</enabled><filter>true</filter><loglevel>TRACE_EMERG</loglevel><loglevel_type>ALL</loglevel_type><exclusion>false</exclusion></event></events></channel></channels></domain></domains></session></sessions></output></command>
+<command><name>list</name><output><sessions><session><name>mysession</name><path>${workspace}/lttng-traces/mysession-20160105-151744</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval><domains><domain><type>KERNEL</type><buffer_type>GLOBAL</buffer_type><trackers/><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>200000</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>*</name><type>TRACEPOINT</type><enabled>true</enabled><filter>true</filter><loglevel>TRACE_EMERG</loglevel><loglevel_type>ALL</loglevel_type><exclusion>false</exclusion></event></events></channel></channels></domain></domains></session></sessions></output></command>
 </COMMAND_OUTPUT>
 <COMMAND_INPUT>
 lttng --mi xml start mysession
@@ -256,7 +256,7 @@ lttng --mi xml destroy mysession
 </COMMAND_RESULT>
 <COMMAND_OUTPUT>
 <?xml version="1.0" encoding="UTF-8"?>
-<command><name>destroy</name><output><sessions><session><name>mysession</name><path>/home/eedbhu/lttng-traces/mysession-20160105-151744</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval></session></sessions></output><success>true</success></command>
+<command><name>destroy</name><output><sessions><session><name>mysession</name><path>${workspace}/lttng-traces/mysession-20160105-151744</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>
 
@@ -270,7 +270,7 @@ lttng --mi xml create mysession
 </COMMAND_RESULT>
 <COMMAND_OUTPUT>
 <?xml version="1.0" encoding="UTF-8"?>
-<command><name>create</name><output><session><name>mysession</name><path>/home/eedbhu/lttng-traces/mysession-20160105-151744</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval></session></output><success>true</success></command>
+<command><name>create</name><output><session><name>mysession</name><path>${workspace}/lttng-traces/mysession-20160105-151744</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 list mysession
@@ -280,7 +280,7 @@ lttng --mi xml list mysession
 </COMMAND_RESULT>
 <COMMAND_OUTPUT>
 <?xml version="1.0" encoding="UTF-8"?>
-<command><name>list</name><output><sessions><session><name>mysession</name><path>/home/eedbhu/lttng-traces/mysession-20160105-151744</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval><domains/></session></sessions></output></command>
+<command><name>list</name><output><sessions><session><name>mysession</name><path>${workspace}/lttng-traces/mysession-20160105-151744</path><enabled>false</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 enable-event sched_switch -k -s mysession --tracepoint --filter next_tid==1234
@@ -300,7 +300,7 @@ lttng --mi xml list mysession
 </COMMAND_RESULT>
 <COMMAND_OUTPUT>
 <?xml version="1.0" encoding="UTF-8"?>
-<command><name>list</name><output><sessions><session><name>mysession</name><path>/home/eedbhu/lttng-traces/mysession-20160105-151744</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval><domains><domain><type>KERNEL</type><buffer_type>GLOBAL</buffer_type><trackers/><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>200000</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>sched_switch</name><type>TRACEPOINT</type><enabled>true</enabled><filter>true</filter><loglevel>TRACE_EMERG</loglevel><loglevel_type>ALL</loglevel_type><exclusion>false</exclusion></event></events></channel></channels></domain></domains></session></sessions></output></command>
+<command><name>list</name><output><sessions><session><name>mysession</name><path>${workspace}/lttng-traces/mysession-20160105-151744</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval><domains><domain><type>KERNEL</type><buffer_type>GLOBAL</buffer_type><trackers/><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>200000</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>sched_switch</name><type>TRACEPOINT</type><enabled>true</enabled><filter>true</filter><loglevel>TRACE_EMERG</loglevel><loglevel_type>ALL</loglevel_type><exclusion>false</exclusion></event></events></channel></channels></domain></domains></session></sessions></output></command>
 
 </COMMAND_OUTPUT>
 <COMMAND_INPUT>
@@ -331,6 +331,6 @@ lttng --mi xml destroy mysession
 </COMMAND_RESULT>
 <COMMAND_OUTPUT>
 <?xml version="1.0" encoding="UTF-8"?>
-<command><name>destroy</name><output><sessions><session><name>mysession</name><path>/home/eedbhu/lttng-traces/mysession-20160105-151744</path><enabled>false</enabled><snapshot_mode>0</snapshot_mode><live_timer_interval>0</live_timer_interval></session></sessions></output><success>true</success></command>
+<command><name>destroy</name><output><sessions><session><name>mysession</name><path>${workspace}/lttng-traces/mysession-20160105-151744</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>
\ No newline at end of file
index 522d1d27ce3f9a0414906374806d6852f6ffe0da..97d310c24530b2ccbdc845a9fd30b2c22a9e35cf 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-Vendor: %Bundle-Vendor
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 2.0.0.qualifier
 Bundle-Localization: plugin
 Bundle-SymbolicName: org.eclipse.tracecompass.lttng2.control.ui.tests;singleton:=true
 Bundle-ActivationPolicy: lazy
@@ -18,7 +18,8 @@ Require-Bundle: org.junit;bundle-version="4.0.0",
  org.eclipse.tracecompass.lttng2.control.ui,
  org.eclipse.tracecompass.tmf.remote.core,
  org.eclipse.tracecompass.tmf.remote.core.tests,
- org.eclipse.tracecompass.tmf.remote.ui
+ org.eclipse.tracecompass.tmf.remote.ui,
+ org.eclipse.core.resources
 Export-Package: org.eclipse.tracecompass.internal.lttng2.control.stubs.dialogs;x-friends:="org.eclipse.tracecompass.lttng2.control.ui.swtbot.tests",
  org.eclipse.tracecompass.internal.lttng2.control.stubs.service;x-friends:="org.eclipse.tracecompass.lttng2.control.ui.swtbot.tests",
  org.eclipse.tracecompass.internal.lttng2.control.stubs.shells;x-friends:="org.eclipse.tracecompass.lttng2.control.ui.swtbot.tests",
index afdf2243ec5532a0444856e823f712df1827e835..676675923e215ffd14b464761ce127a9fc8f1521 100644 (file)
@@ -31,6 +31,8 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.tracecompass.internal.tmf.remote.core.stubs.shells.TestCommandShell;
@@ -62,15 +64,23 @@ public class LTTngToolsFileShell extends TestCommandShell {
     private final static String LTTNG_LIST_PROVIDER_MI_PATTERN = "lttng\\s+--mi xml\\s+list\\s+(-u|-k)";
 
     private final static String LTTNG_USER_HOME_PATTERN = "\\$\\{userhome\\}";
-
+    private final static String LTTNG_WORKSPACE_PATTERN = "\\$\\{workspace\\}";
     private final static String SESSION_NAME_PATTERN = "\\$\\{sessionname\\}";
 
     private final static String USER_HOME = System.getProperty("user.home");
+    private final static String WORKSPACE_HOME;
 
     private final static Pattern LTTNG_SAVE_MI_PATTERN = Pattern.compile("lttng\\s+--mi xml\\s+save\\s+-f");
 
     private final static String PROFILE_PATH_STRING = USER_HOME + '/' + ".lttng" + '/' + "sessions";
 
+    static {
+        IWorkspace workspace = ResourcesPlugin.getWorkspace();
+        //get location of workspace (java.io.File)
+        File workspaceDirectory = workspace.getRoot().getLocation().toFile();
+        WORKSPACE_HOME = workspaceDirectory.toString();
+    }
+
     // ------------------------------------------------------------------------
     // Attributes
     // ------------------------------------------------------------------------
@@ -190,9 +200,12 @@ public class LTTngToolsFileShell extends TestCommandShell {
                             // Read command
                             input = strLine;
 
-                            // Update
+                            // Update userhome
                             input = input.replaceAll(LTTNG_USER_HOME_PATTERN, USER_HOME);
 
+                            // Update workspace
+                            input = input.replaceAll(LTTNG_WORKSPACE_PATTERN, WORKSPACE_HOME);
+
                             // Update session variable
                             if (fSessionName != null) {
                                 input = input.replaceAll(SESSION_NAME_PATTERN, fSessionName);
@@ -243,6 +256,12 @@ public class LTTngToolsFileShell extends TestCommandShell {
                                 strLine = br.readLine();
                             }
 
+                            // Update userhome
+                            strLine = strLine.replaceAll(LTTNG_USER_HOME_PATTERN, USER_HOME);
+
+                            // Update workspace
+                            strLine = strLine.replaceAll(LTTNG_WORKSPACE_PATTERN, WORKSPACE_HOME);
+
                             // Update session variable
                             if (fSessionName != null) {
                                 strLine = strLine.replaceAll(SESSION_NAME_PATTERN, fSessionName);
This page took 0.039158 seconds and 5 git commands to generate.