use of org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager in project tracecompass by tracecompass.
the class NewCounterViewPinAndCloneTest method testCloneSingleTrace.
/**
* Test the cloning feature.
*/
@Test
public void testCloneSingleTrace() {
SWTBotView originalViewBot = getSWTBotView();
SWTBotMenu cloneMenu = originalViewBot.viewMenu().menu(NEW_COUNTER_STACK_MENU);
/*
* Assert that the original editor was not renamed and that the cloned one
* exists and is pinned to the kernel_vm trace.
*/
cloneMenu.menu(PINNED_TO_PREFIX + getTestTrace().getName()).click();
assertOriginalViewTitle(COUNTERS_VIEW_TITLE);
SWTBotView clonedView = fBot.viewByTitle(PINNED_TO_TRACE_COUNTERS_VIEW_TITLE);
assertEquals("Should not have created a new instance", 1, fBot.editors().size());
clonedView.close();
// Assert that a new instance is created.
cloneMenu.menu(PINNED_TO_PREFIX + getTestTrace().getName() + " | new instance").click();
assertOriginalViewTitle(COUNTERS_VIEW_TITLE);
clonedView = fBot.viewByTitle(CLONED_VIEW_TITLE_NAME);
assertEquals("Should have created a new instance", 2, fBot.editors().size());
SWTBotEditor cloneEditor = fBot.editorByTitle(getTestTrace().getName() + CLONED_TRACE_SUFFIX);
// Get the window range of the cloned trace
TmfTraceManager traceManager = TmfTraceManager.getInstance();
ITmfTrace cloneTrace = traceManager.getActiveTrace();
assertNotNull(cloneTrace);
// Go back to original trace, pin it
SWTBotUtils.activateEditor(fBot, getTestTrace().getName());
originalViewBot.toolbarButton(PIN_VIEW_BUTTON_NAME).click();
// Assert that the cloned trace's window range did not change
SWTBotUtils.activateEditor(fBot, cloneTrace.getName() + CLONED_TRACE_SUFFIX);
IViewPart viewPart = clonedView.getViewReference().getView(false);
assertTrue(viewPart instanceof TmfChartView);
final TmfCommonXAxisChartViewer chartViewer = (TmfCommonXAxisChartViewer) getChartViewer(viewPart);
assertNotNull(chartViewer);
fBot.waitUntil(ConditionHelpers.xyViewerIsReadyCondition(chartViewer));
TmfSignalManager.dispatchSignal(new TmfWindowRangeUpdatedSignal(this, RANGE, getTestTrace()));
fBot.waitUntil(ConditionHelpers.xyViewerIsReadyCondition(chartViewer));
SWTBotUtils.waitUntil(v -> (v.getWindowStartTime() == KERNEL_START && v.getWindowEndTime() == KERNEL_INITIAL_END), chartViewer, "Range of cloned view changed");
cloneEditor.close();
}
use of org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager in project tracecompass by tracecompass.
the class NewCounterViewPinAndCloneTest method testPinTwoTraces.
/**
* Test the behavior with two traces.
*/
@Test
public void testPinTwoTraces() {
SWTBotView originalViewBot = getSWTBotView();
ITmfTrace activeTrace = TmfTraceManager.getInstance().getActiveTrace();
assertNotNull(activeTrace);
ITmfTrace kernelTestTrace = CtfTmfTestTraceUtils.getTrace(CtfTestTrace.CONTEXT_SWITCHES_KERNEL);
SWTBotUtils.openTrace(TRACE_PROJECT_NAME, kernelTestTrace.getPath(), TRACETYPE_ID);
// / Finish waiting for the trace to index
WaitUtils.waitForJobs();
// wait for the editor to be ready.
fBot.editorByTitle(kernelTestTrace.getName());
// Assert that the pin to drop down menuItems are present for both traces.
fBot.waitUntil(new DefaultCondition() {
WidgetNotFoundException fException;
@Override
public boolean test() throws Exception {
try {
SWTBotToolbarDropDownButton toolbarDropDownButton = originalViewBot.toolbarDropDownButton(PIN_VIEW_BUTTON_NAME);
toolbarDropDownButton.menuItem(PIN_TO_PREFIX + kernelTestTrace.getName());
toolbarDropDownButton.menuItem(PIN_TO_PREFIX + getTestTrace().getName()).click();
return true;
} catch (WidgetNotFoundException e) {
fException = e;
return false;
}
}
@Override
public String getFailureMessage() {
return "Traces not available in toolbar drop down menu: " + fException;
}
});
/*
* Assert that the pinned view is the kernel_vm trace despite the active trace being
* the context-switch trace.
*/
assertOriginalViewTitle(PINNED_TO_TRACE_COUNTERS_VIEW_TITLE);
activeTrace = TmfTraceManager.getInstance().getActiveTrace();
assertNotNull("There should be an active trace", activeTrace);
assertEquals("context-switches-kernel should be the active trace", kernelTestTrace.getName(), activeTrace.getName());
// Get the window range of the kernel trace
TmfTraceManager traceManager = TmfTraceManager.getInstance();
ITmfTrace kernelTrace = traceManager.getActiveTrace();
assertNotNull(kernelTrace);
// Switch back and forth
SWTBotUtils.activateEditor(fBot, getTestTrace().getName());
assertOriginalViewTitle(PINNED_TO_TRACE_COUNTERS_VIEW_TITLE);
SWTBotUtils.activateEditor(fBot, kernelTestTrace.getName());
assertOriginalViewTitle(PINNED_TO_TRACE_COUNTERS_VIEW_TITLE);
IViewPart viewPart = originalViewBot.getViewReference().getView(false);
assertTrue(viewPart instanceof TmfChartView);
final TmfCommonXAxisChartViewer chartViewer = (TmfCommonXAxisChartViewer) getChartViewer(viewPart);
assertNotNull(chartViewer);
TmfSignalManager.dispatchSignal(new TmfWindowRangeUpdatedSignal(this, RANGE, kernelTrace));
// Assert that the original views trace's window range did not change
SWTBotUtils.activateEditor(fBot, getTestTrace().getName());
SWTBotUtils.waitUntil(v -> (v.getWindowStartTime() == KERNEL_START && v.getWindowEndTime() == KERNEL_TEST_INITIAL_END), chartViewer, "Range of cloned view changed");
// Unpin from active trace
SWTBotUtils.activateEditor(fBot, kernelTrace.getName());
originalViewBot.toolbarButton(UNPIN_VIEW_BUTTON_NAME).click();
assertOriginalViewTitle(COUNTERS_VIEW_TITLE);
originalViewBot.toolbarButton(PIN_VIEW_BUTTON_NAME).click();
assertOriginalViewTitle(PINNED_TO_CTX_SWITCH_VIEW_TITLE);
// Close the pinned trace
SWTBotEditor kernelTable = fBot.editorByTitle(kernelTestTrace.getName());
kernelTable.close();
// Verify that view title is reset
SWTBotUtils.waitUntil(v -> v.getReference().getPartName().equals(COUNTERS_VIEW_TITLE), originalViewBot, "View name didn't change");
kernelTestTrace.dispose();
}
use of org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager in project tracecompass by tracecompass.
the class PinAndCloneTest method testPinTwoTraces.
/**
* Test the behavior with two traces.
*/
@Ignore
@Test
public void testPinTwoTraces() {
ITmfTrace ust = TmfTraceManager.getInstance().getActiveTrace();
assertNotNull(ust);
ITmfTrace kernelTestTrace = CtfTmfTestTraceUtils.getTrace(CtfTestTrace.CONTEXT_SWITCHES_KERNEL);
SWTBotUtils.openTrace(TRACE_PROJECT_NAME, kernelTestTrace.getPath(), TRACETYPE_ID);
/* Finish waiting for the trace to index */
WaitUtils.waitForJobs();
SWTBotEditor kernelEditor = SWTBotUtils.activateEditor(fBot, kernelTestTrace.getName());
// wait for the editor to be ready.
fBot.editorByTitle(kernelTestTrace.getName());
// assert that the pin to drop down menuItems are present for both traces.
fBot.waitUntil(new DefaultCondition() {
WidgetNotFoundException fException;
@Override
public boolean test() throws Exception {
try {
SWTBotToolbarDropDownButton toolbarDropDownButton = fOriginalViewBot.toolbarDropDownButton(PIN_VIEW_BUTTON_NAME);
toolbarDropDownButton.menuItem(PIN_TO_PREFIX + kernelTestTrace.getName());
toolbarDropDownButton.menuItem(PIN_TO_PREFIX + fUstTestTrace.getName()).click();
return true;
} catch (WidgetNotFoundException e) {
fException = e;
return false;
}
}
@Override
public String getFailureMessage() {
return "Traces not available in toolbar drop down menu: " + fException;
}
});
/*
* assert that the pinned view is the UST trace despite the active trace being
* the kernel trace.
*/
assertOriginalViewTitle(PINNED_TO_UST_TIME_GRAPH_VIEW_TITLE);
ITmfTrace activeTrace = TmfTraceManager.getInstance().getActiveTrace();
assertNotNull("There should be an active trace", activeTrace);
assertEquals("context-switches-kernel should be the active trace", kernelTestTrace.getName(), activeTrace.getName());
// Get the window range of the kernel trace
TmfTraceManager traceManager = TmfTraceManager.getInstance();
ITmfTrace kernelTrace = traceManager.getActiveTrace();
assertNotNull(kernelTrace);
// switch back and forth
SWTBotUtils.activateEditor(fBot, fUstTestTrace.getName());
assertOriginalViewTitle(PINNED_TO_UST_TIME_GRAPH_VIEW_TITLE);
SWTBotUtils.activateEditor(fBot, kernelTestTrace.getName());
assertOriginalViewTitle(PINNED_TO_UST_TIME_GRAPH_VIEW_TITLE);
IWorkbenchPart part = fOriginalViewBot.getViewReference().getPart(false);
assertTrue(part instanceof AbstractTimeGraphView);
AbstractTimeGraphView abstractTimeGraphView = (AbstractTimeGraphView) part;
TmfSignalManager.dispatchSignal(new TmfWindowRangeUpdatedSignal(this, RANGE, kernelTrace));
// assert that the ust trace's window range did not change
SWTBotUtils.activateEditor(fBot, fUstTestTrace.getName());
fBot.waitUntil(ConditionHelpers.timeGraphRangeCondition(abstractTimeGraphView, ust, INITIAL_UST_RANGE));
// unpin from another active trace
SWTBotUtils.activateEditor(fBot, kernelTrace.getName());
fOriginalViewBot.toolbarButton(UNPIN_VIEW_BUTTON_NAME).click();
assertOriginalViewTitle(TIME_GRAPH_VIEW_TITLE);
fOriginalViewBot.toolbarButton(PIN_VIEW_BUTTON_NAME).click();
assertOriginalViewTitle(PINNED_TO_KERNEL_TIME_GRAPH_VIEW_TITLE);
SWTBotTable kernelEventTable = kernelEditor.bot().table();
SWTBotTableItem kernelEvent = kernelEventTable.getTableItem(5);
kernelEvent.contextMenu(FOLLOW_TIME_UPDATES_FROM_OTHER_TRACES).click();
TmfTimeRange expectedUstWindowRange = new TmfTimeRange(TmfTimestamp.fromNanos(UST_START + SECOND), TmfTimestamp.fromNanos(UST_END - SECOND));
TmfSignalManager.dispatchSignal(new TmfWindowRangeUpdatedSignal(this, expectedUstWindowRange, ust));
fBot.waitUntil(ConditionHelpers.timeGraphRangeCondition(abstractTimeGraphView, kernelTrace, expectedUstWindowRange));
// close the pinned trace
SWTBotEditor kernelTable = fBot.editorByTitle(kernelTestTrace.getName());
kernelTable.close();
assertOriginalViewTitle(TIME_GRAPH_VIEW_TITLE);
kernelTestTrace.dispose();
}
use of org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager in project tracecompass by tracecompass.
the class TmfTraceManagerTest method testInitialize.
// ------------------------------------------------------------------------
// General tests
// ------------------------------------------------------------------------
/**
* Test that the manager is correctly initialized
*/
@Test
public void testInitialize() {
TmfTraceManager mgr = TmfTraceManager.getInstance();
assertNotNull(mgr);
assertSame(tm, mgr);
}
use of org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager in project tracecompass by tracecompass.
the class CtfTmfExperimentTrimmingTest method setup.
/**
* Test setup
*/
@Before
public void setup() {
WaitUtils.waitForJobs();
SWTBotTreeItem tracesFolder = SWTBotUtils.selectTracesFolder(fBot, PROJECT_NAME);
tracesFolder.contextMenu().menu("Open As Experiment...", "Generic Experiment").click();
SWTBotUtils.activateEditor(fBot, "Experiment");
SWTBotTreeItem project = SWTBotUtils.selectProject(fBot, PROJECT_NAME);
SWTBotTreeItem experimentItem = SWTBotUtils.getTraceProjectItem(fBot, project, "Experiments", "Experiment");
experimentItem.select();
TmfTraceManager traceManager = TmfTraceManager.getInstance();
ITmfTrace trace = traceManager.getActiveTrace();
assertTrue(String.valueOf(trace), trace instanceof TmfExperiment);
TmfExperiment experiment = (TmfExperiment) trace;
assertNotNull(experiment);
ITmfProjectModelElement elem = TmfProjectRegistry.findElement(experiment.getResource(), true);
assertTrue(elem instanceof TmfExperimentElement);
fOriginalExperiment = experiment;
TmfTimeRange traceCutRange = getTraceCutRange(experiment);
assertNotNull(traceCutRange);
fRequestedTraceCutRange = traceCutRange;
ITmfTimestamp requestedTraceCutEnd = traceCutRange.getEndTime();
ITmfTimestamp requestedTraceCutStart = traceCutRange.getStartTime();
assertTrue(experiment.getTimeRange().contains(traceCutRange));
TmfSignalManager.dispatchSignal(new TmfSelectionRangeUpdatedSignal(this, requestedTraceCutStart, requestedTraceCutEnd, experiment));
experimentItem.contextMenu("Export Time Selection as New Trace...").click();
SWTBotShell shell = fBot.shell("Export trace section to...").activate();
SWTBot dialogBot = shell.bot();
assertEquals("Experiment", dialogBot.text().getText());
dialogBot.text().setText("Experiment-trimmed");
dialogBot.button("OK").click();
SWTBotEditor newExperiment = fBot.editorByTitle("Experiment-trimmed");
newExperiment.setFocus();
fNewExperiment = traceManager.getActiveTrace();
assertNotNull("No active trace", fNewExperiment);
assertEquals("Incorrect active trace", "Experiment-trimmed", fNewExperiment.getName());
WaitUtils.waitForJobs();
}
Aggregations