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:
parent
8e837f668d
commit
8668ed1c97
5 changed files with 31 additions and 14 deletions
|
@ -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);
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue