mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-04 23:05:47 +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 {
|
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);
|
||||||
|
|
|
@ -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));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Add table
Reference in a new issue