From 4bec9af75da9098a3423840708ac4b585db9d6df Mon Sep 17 00:00:00 2001 From: Markus Schorn Date: Tue, 9 Feb 2010 13:37:33 +0000 Subject: [PATCH] Fix JUnit tests. --- .../internal/index/tests/IndexTestBase.java | 12 ------------ .../cdt/core/testplugin/util/BaseTestCase.java | 18 ++++++++++++++++-- .../cdt/internal/core/pdom/PDOMManager.java | 1 + .../internal/core/pdom/WaitForRefreshJobs.java | 4 ++++ 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexTestBase.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexTestBase.java index 75a5929afdc..e4fd5e32830 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexTestBase.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexTestBase.java @@ -15,7 +15,6 @@ 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; @@ -64,15 +63,4 @@ 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)); - } } diff --git a/core/org.eclipse.cdt.core.tests/suite/org/eclipse/cdt/core/testplugin/util/BaseTestCase.java b/core/org.eclipse.cdt.core.tests/suite/org/eclipse/cdt/core/testplugin/util/BaseTestCase.java index bf17c4953bf..2d200ed7937 100644 --- a/core/org.eclipse.cdt.core.tests/suite/org/eclipse/cdt/core/testplugin/util/BaseTestCase.java +++ b/core/org.eclipse.cdt.core.tests/suite/org/eclipse/cdt/core/testplugin/util/BaseTestCase.java @@ -29,9 +29,12 @@ import junit.framework.TestSuite; import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.model.ElementChangedEvent; +import org.eclipse.cdt.core.model.ICProject; import org.eclipse.cdt.core.model.IElementChangedListener; 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.PDOMManager; import org.eclipse.core.resources.IResourceStatus; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.ILogListener; @@ -85,8 +88,8 @@ public class BaseTestCase extends TestCase { Class superClass= clazz; while (Test.class.isAssignableFrom(superClass) && !TestCase.class.equals(superClass)) { Method[] methods= superClass.getDeclaredMethods(); - for (int i= 0; i < methods.length; i++) { - addFailingMethod(suite, methods[i], names, clazz, prefix); + for (Method method : methods) { + addFailingMethod(suite, method, names, clazz, prefix); } superClass= superClass.getSuperclass(); } @@ -275,4 +278,15 @@ public class BaseTestCase extends TestCase { } } } + + protected void waitForIndexer(ICProject project) throws InterruptedException { + final PDOMManager indexManager = CCoreInternals.getPDOMManager(); + assertTrue(indexManager.joinIndexer(10000, NPM)); + long waitms= 1; + while (waitms < 2000 && !indexManager.isProjectRegistered(project)) { + Thread.sleep(waitms); + waitms *= 2; + } + assertTrue(indexManager.joinIndexer(10000, NPM)); + } } \ No newline at end of file diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMManager.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMManager.java index 960e2c9190c..c991ab8fead 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMManager.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMManager.java @@ -203,6 +203,7 @@ public class PDOMManager implements IWritableIndexManager, IListener { } public Job startup() { + fInShutDown= false; Job postStartupJob= new Job(CCorePlugin.getResourceString("CCorePlugin.startupJob")) { //$NON-NLS-1$ @Override protected IStatus run(IProgressMonitor monitor) { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/WaitForRefreshJobs.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/WaitForRefreshJobs.java index afe40b42b9b..784d8bd5ef9 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/WaitForRefreshJobs.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/WaitForRefreshJobs.java @@ -96,6 +96,10 @@ public class WaitForRefreshJobs extends IndexerSetupParticipant { for (Job j : refreshJobs) { if (fRefreshJobs.add(j)) { j.addJobChangeListener(fJobListener); + // In case the job has finished in the meantime + if (j.getState() == Job.NONE) { + fRefreshJobs.remove(j); + } } } }