1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-05 07:15:39 +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 { private void waitForIndexer() throws InterruptedException {
final IIndexManager indexManager = CCorePlugin.getIndexManager(); final IIndexManager indexManager = CCorePlugin.getIndexManager();
assertTrue(indexManager.joinIndexer(INDEX_WAIT_TIME, NPM));
long waitms= 1; long waitms= 1;
while (waitms < 2000 && indexManager.isIndexerSetupPostponed(fCProject)) { while (waitms < 2000 && indexManager.isIndexerSetupPostponed(fCProject)) {
Thread.sleep(waitms); Thread.sleep(waitms);

View file

@ -15,6 +15,7 @@ import java.io.IOException;
import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.dom.IPDOMManager; 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.model.ICProject;
import org.eclipse.cdt.core.testplugin.CProjectHelper; import org.eclipse.cdt.core.testplugin.CProjectHelper;
import org.eclipse.cdt.core.testplugin.CTestPlugin; import org.eclipse.cdt.core.testplugin.CTestPlugin;
@ -63,4 +64,15 @@ public class IndexTestBase extends BaseTestCase {
return TestSourceReader.getContentsForTest( return TestSourceReader.getContentsForTest(
CTestPlugin.getDefault().getBundle(), "parser", getClass(), getName(), blocks); 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); super(name);
} }
@Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
fProjects.clear(); fProjects.clear();
} }
@Override
protected void tearDown() throws Exception { protected void tearDown() throws Exception {
for (Iterator iterator = fProjects.iterator(); iterator.hasNext();) { for (Iterator iterator = fProjects.iterator(); iterator.hasNext();) {
ICProject project = (ICProject) iterator.next(); ICProject project = (ICProject) iterator.next();
@ -109,8 +111,9 @@ public class TeamSharedIndexTest extends IndexTestBase {
} finally { } finally {
pj.dispose(); pj.dispose();
} }
fPDOMManager.joinIndexer(INDEXER_WAIT_TIME, NPM); ICProject result= CoreModel.getDefault().create(workspace.getRoot().getProject(prjName));
return CoreModel.getDefault().create(workspace.getRoot().getProject(prjName)); waitForIndexer(result);
return result;
} }
private void checkVariable(ICProject prj, String var, int expectedCount) 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 { protected void waitForIndexer(IIndex index, IFile file, int maxmillis) throws Exception {
boolean firstTime= true; boolean firstTime= true;
long endTime= System.currentTimeMillis() + maxmillis; long endTime= System.currentTimeMillis() + maxmillis;
long sleep= 1;
while (firstTime || System.currentTimeMillis() < endTime) { while (firstTime || System.currentTimeMillis() < endTime) {
if (!firstTime) if (!firstTime) {
Thread.sleep(50); Thread.sleep(sleep);
sleep= Math.min(250, sleep*2);
}
firstTime= false; firstTime= false;
if (CCorePlugin.getIndexManager().isIndexerSetupPostponed(CoreModel.getDefault().create(file.getProject()))) if (CCorePlugin.getIndexManager().isIndexerSetupPostponed(CoreModel.getDefault().create(file.getProject())))
@ -220,10 +223,9 @@ public class BaseUITestCase extends BaseTestCase {
protected void closeAllEditors() { protected void closeAllEditors() {
IWorkbenchWindow[] windows= PlatformUI.getWorkbench().getWorkbenchWindows(); IWorkbenchWindow[] windows= PlatformUI.getWorkbench().getWorkbenchWindows();
for (int i= 0; i < windows.length; i++) { for (IWorkbenchWindow window : windows) {
IWorkbenchPage[] pages= windows[i].getPages(); IWorkbenchPage[] pages= window.getPages();
for (int j= 0; j < pages.length; j++) { for (IWorkbenchPage page : pages) {
IWorkbenchPage page= pages[j];
page.closeAllEditors(false); page.closeAllEditors(false);
} }
} }
@ -235,13 +237,11 @@ public class BaseUITestCase extends BaseTestCase {
runEventQueue(0); runEventQueue(0);
IViewReference[] viewRefs= page.getViewReferences(); IViewReference[] viewRefs= page.getViewReferences();
for (int i = 0; i < viewRefs.length; i++) { for (IViewReference ref : viewRefs) {
IViewReference ref = viewRefs[i];
page.setPartState(ref, IWorkbenchPage.STATE_RESTORED); page.setPartState(ref, IWorkbenchPage.STATE_RESTORED);
} }
IEditorReference[] editorRefs= page.getEditorReferences(); IEditorReference[] editorRefs= page.getEditorReferences();
for (int i = 0; i < editorRefs.length; i++) { for (IEditorReference ref : editorRefs) {
IEditorReference ref = editorRefs[i];
page.setPartState(ref, IWorkbenchPage.STATE_RESTORED); page.setPartState(ref, IWorkbenchPage.STATE_RESTORED);
} }
runEventQueue(0); runEventQueue(0);
@ -273,8 +273,8 @@ public class BaseUITestCase extends BaseTestCase {
if (w instanceof Composite) { if (w instanceof Composite) {
Composite comp= (Composite) w; Composite comp= (Composite) w;
Control[] children= comp.getChildren(); Control[] children= comp.getChildren();
for (int i = 0; i < children.length; i++) { for (Control element : children) {
findControls(children[i], clazz, result); findControls(element, clazz, result);
} }
} }
} }

View file

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