1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-24 01:15:29 +02:00

turned off codan running on editor reconcile - gets on a way of tests

This commit is contained in:
Alena Laskavaia 2010-07-21 02:25:00 +00:00
parent 42b0b537db
commit 64b3c63063

View file

@ -12,15 +12,21 @@ package org.eclipse.cdt.codan.internal.checkers.ui.quickfix;
import java.io.IOException;
import org.eclipse.cdt.codan.core.PreferenceConstants;
import org.eclipse.cdt.codan.core.test.CheckerTestCase;
import org.eclipse.cdt.codan.core.test.TestUtils;
import org.eclipse.cdt.codan.internal.ui.CodanUIActivator;
import org.eclipse.cdt.codan.ui.AbstractCodanCMarkerResolution;
import org.eclipse.cdt.core.model.CModelException;
import org.eclipse.cdt.internal.ui.util.EditorUtility;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.text.TextSelection;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
@ -29,11 +35,63 @@ import org.eclipse.ui.PlatformUI;
*/
public abstract class QuickFixTestCase extends CheckerTestCase {
AbstractCodanCMarkerResolution quickFix;
Display display;
/**
* Dispatch ui events for at least msec - milliseconds
*
* @param msec -
* milliseconds delay
* @param display -
* display that dispatches events
*/
public void dispatch(int msec) {
long cur = System.currentTimeMillis();
long pass = 0;
while (pass < msec) {
if (!display.readAndDispatch())
display.sleep();
pass = System.currentTimeMillis() - cur;
}
}
public static void closeWelcome() {
try {
IWorkbenchWindow window = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow();
IWorkbenchPage activePage = window.getActivePage();
IWorkbenchPart activePart = activePage.getActivePart();
if (activePart.getTitle().equals("Welcome")) {
//activePage.close();
activePart.dispose();
}
} catch (Exception e) {
// ignore
}
}
@SuppressWarnings("restriction")
@Override
public void setUp() throws Exception {
super.setUp();
quickFix = createQuickFix();
display = PlatformUI.getWorkbench().getDisplay();
closeWelcome();
IPreferenceStore store = CodanUIActivator.getDefault()
.getPreferenceStore(cproject.getProject());
// turn off editor reconsiler
store.setValue(PreferenceConstants.P_RUN_IN_EDITOR, false);
}
@Override
public void tearDown() throws CoreException {
IWorkbenchPage[] pages = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getPages();
for (IWorkbenchPage page : pages) {
page.closeAllEditors(false);
dispatch(200);
}
super.tearDown();
}
/**
@ -60,9 +118,9 @@ public abstract class QuickFixTestCase extends CheckerTestCase {
public String runQuickFixOneFile() {
// need to load before running codan because otherwise marker is lost when doing quick fix 8[]
try {
EditorUtility.openInEditor(currentIFile);
runCodan();
doRunQuickFix();
dispatch(500);
String result = TestUtils.loadFile(currentIFile.getContents());
return result;
} catch (Exception e) {
@ -79,6 +137,7 @@ public abstract class QuickFixTestCase extends CheckerTestCase {
for (int i = 0; i < markers.length; i++) {
IMarker marker = markers[i];
quickFix.run(marker);
dispatch(200);
}
PlatformUI.getWorkbench().saveAllEditors(false);
}