1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-24 09:25:31 +02:00

Fixes occasional JUnit failures.

This commit is contained in:
Markus Schorn 2010-02-01 13:32:20 +00:00
parent 8e837f668d
commit 8668ed1c97
5 changed files with 31 additions and 14 deletions

View file

@ -273,6 +273,7 @@ public class IndexBugsTests extends BaseTestCase {
private void waitForIndexer() throws InterruptedException {
final IIndexManager indexManager = CCorePlugin.getIndexManager();
assertTrue(indexManager.joinIndexer(INDEX_WAIT_TIME, NPM));
long waitms= 1;
while (waitms < 2000 && indexManager.isIndexerSetupPostponed(fCProject)) {
Thread.sleep(waitms);

View file

@ -15,6 +15,7 @@ import java.io.IOException;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.dom.IPDOMManager;
import org.eclipse.cdt.core.index.IIndexManager;
import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.core.testplugin.CProjectHelper;
import org.eclipse.cdt.core.testplugin.CTestPlugin;
@ -63,4 +64,15 @@ public class IndexTestBase extends BaseTestCase {
return TestSourceReader.getContentsForTest(
CTestPlugin.getDefault().getBundle(), "parser", getClass(), getName(), blocks);
}
protected void waitForIndexer(ICProject project) throws InterruptedException {
final IIndexManager indexManager = CCorePlugin.getIndexManager();
assertTrue(indexManager.joinIndexer(INDEXER_WAIT_TIME, NPM));
long waitms= 1;
while (waitms < 2000 && indexManager.isIndexerSetupPostponed(project)) {
Thread.sleep(waitms);
waitms *= 2;
}
assertTrue(indexManager.joinIndexer(INDEXER_WAIT_TIME, NPM));
}
}

View file

@ -55,11 +55,13 @@ public class TeamSharedIndexTest extends IndexTestBase {
super(name);
}
@Override
protected void setUp() throws Exception {
super.setUp();
fProjects.clear();
}
@Override
protected void tearDown() throws Exception {
for (Iterator iterator = fProjects.iterator(); iterator.hasNext();) {
ICProject project = (ICProject) iterator.next();
@ -109,8 +111,9 @@ public class TeamSharedIndexTest extends IndexTestBase {
} finally {
pj.dispose();
}
fPDOMManager.joinIndexer(INDEXER_WAIT_TIME, NPM);
return CoreModel.getDefault().create(workspace.getRoot().getProject(prjName));
ICProject result= CoreModel.getDefault().create(workspace.getRoot().getProject(prjName));
waitForIndexer(result);
return result;
}
private void checkVariable(ICProject prj, String var, int expectedCount)

View file

@ -116,9 +116,12 @@ public class BaseUITestCase extends BaseTestCase {
protected void waitForIndexer(IIndex index, IFile file, int maxmillis) throws Exception {
boolean firstTime= true;
long endTime= System.currentTimeMillis() + maxmillis;
long sleep= 1;
while (firstTime || System.currentTimeMillis() < endTime) {
if (!firstTime)
Thread.sleep(50);
if (!firstTime) {
Thread.sleep(sleep);
sleep= Math.min(250, sleep*2);
}
firstTime= false;
if (CCorePlugin.getIndexManager().isIndexerSetupPostponed(CoreModel.getDefault().create(file.getProject())))
@ -220,10 +223,9 @@ public class BaseUITestCase extends BaseTestCase {
protected void closeAllEditors() {
IWorkbenchWindow[] windows= PlatformUI.getWorkbench().getWorkbenchWindows();
for (int i= 0; i < windows.length; i++) {
IWorkbenchPage[] pages= windows[i].getPages();
for (int j= 0; j < pages.length; j++) {
IWorkbenchPage page= pages[j];
for (IWorkbenchWindow window : windows) {
IWorkbenchPage[] pages= window.getPages();
for (IWorkbenchPage page : pages) {
page.closeAllEditors(false);
}
}
@ -235,13 +237,11 @@ public class BaseUITestCase extends BaseTestCase {
runEventQueue(0);
IViewReference[] viewRefs= page.getViewReferences();
for (int i = 0; i < viewRefs.length; i++) {
IViewReference ref = viewRefs[i];
for (IViewReference ref : viewRefs) {
page.setPartState(ref, IWorkbenchPage.STATE_RESTORED);
}
IEditorReference[] editorRefs= page.getEditorReferences();
for (int i = 0; i < editorRefs.length; i++) {
IEditorReference ref = editorRefs[i];
for (IEditorReference ref : editorRefs) {
page.setPartState(ref, IWorkbenchPage.STATE_RESTORED);
}
runEventQueue(0);
@ -273,8 +273,8 @@ public class BaseUITestCase extends BaseTestCase {
if (w instanceof Composite) {
Composite comp= (Composite) w;
Control[] children= comp.getChildren();
for (int i = 0; i < children.length; i++) {
findControls(children[i], clazz, result);
for (Control element : children) {
findControls(element, clazz, result);
}
}
}

View file

@ -143,6 +143,7 @@ public class RenameTests extends RefactoringTests {
protected void waitForIndexer() throws InterruptedException {
final IIndexManager im = CCorePlugin.getIndexManager();
assertTrue(im.joinIndexer(10000, NPM));
int sleep= 1;
while (im.isIndexerSetupPostponed(cproject)) {
Thread.sleep(sleep);