mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-24 01:15:29 +02:00
Bug 431684 - Intermittent test failures in IndexBugsTest
Improved reliability of BaseTestCase.waitForIndexer method. Change-Id: Ifcfb4e90a1595e6cc2bc90856daad6cd265b6247 Signed-off-by: Lukas Felber <l.felber@gmx.ch> Reviewed-on: https://git.eclipse.org/r/24080 Tested-by: Hudson CI Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com> IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com> Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
This commit is contained in:
parent
f65493131c
commit
8c3ba9ec2d
2 changed files with 2 additions and 12 deletions
|
@ -38,7 +38,6 @@ import org.eclipse.cdt.core.testplugin.TestScannerProvider;
|
|||
import org.eclipse.cdt.internal.core.CCoreInternals;
|
||||
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTNameBase;
|
||||
import org.eclipse.cdt.internal.core.pdom.CModelListener;
|
||||
import org.eclipse.cdt.internal.core.pdom.PDOMManager;
|
||||
import org.eclipse.core.resources.IFile;
|
||||
import org.eclipse.core.resources.IResourceStatus;
|
||||
import org.eclipse.core.resources.ResourcesPlugin;
|
||||
|
@ -305,16 +304,7 @@ public class BaseTestCase extends TestCase {
|
|||
|
||||
public static void waitForIndexer(ICProject project) throws InterruptedException {
|
||||
Job.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_REFRESH, null);
|
||||
|
||||
final PDOMManager indexManager = CCoreInternals.getPDOMManager();
|
||||
assertTrue(indexManager.joinIndexer(INDEXER_TIMEOUT_SEC * 1000, npm()));
|
||||
long waitms= 1;
|
||||
while (waitms < 2000 && !indexManager.isProjectRegistered(project)) {
|
||||
Thread.sleep(waitms);
|
||||
waitms *= 2;
|
||||
}
|
||||
assertTrue(indexManager.isProjectRegistered(project));
|
||||
assertTrue(indexManager.joinIndexer(INDEXER_TIMEOUT_SEC * 1000, npm()));
|
||||
assertTrue(CCoreInternals.getPDOMManager().joinIndexer(INDEXER_TIMEOUT_SEC * 1000, npm()));
|
||||
}
|
||||
|
||||
public static void waitUntilFileIsIndexed(IIndex index, IFile file) throws Exception {
|
||||
|
|
|
@ -730,7 +730,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
@Override
|
||||
public boolean isIndexerIdle() {
|
||||
synchronized (fTaskQueue) {
|
||||
return Job.getJobManager().find(this).length == 0;
|
||||
return Job.getJobManager().find(this).length == 0 && fTaskQueue.isEmpty();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue