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,
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"
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";
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...";
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() { }
/**
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;
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;
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;
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
*/
/** The target node component */
protected TargetNodeComponent fNode;
-
/** The test file */
protected String fTestFile;
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();
}
SWTBotUtils.waitForJobs();
}
TraceSessionComponent sessionComp = ControlViewSwtBotUtil.getSessionComponent(fNode, getSessionName());
- assertNotNull(sessionComp);
fBot.waitUntil(ControlViewSwtBotUtil.isSessionStateChanged(sessionComp, state));
assertEquals(state, sessionComp.getSessionState());
*/
protected void testDisconnectFromNode() {
SWTBotTreeItem nodeItem = SWTBotUtils.getTreeItem(fBot, fTree, getNodeName());
-
nodeItem.select();
SWTBotMenu menuBot = nodeItem.contextMenu(ControlViewSwtBotUtil.DISCONNECT_MENU_ITEM);
menuBot.click();
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
</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
</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
</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
</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
</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
</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
</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>
</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
</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
</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
</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>
</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
</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
</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>
</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
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
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",
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;
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
// ------------------------------------------------------------------------
// 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);
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);