1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Fix intermittent test failures.

This commit is contained in:
Markus Schorn 2012-11-08 14:29:07 -08:00 committed by Sergey Prigogin
parent 6b971d2cac
commit 46b4d35b0b
54 changed files with 252 additions and 307 deletions

View file

@ -148,7 +148,7 @@ public class CheckerTestCase extends CodanTestCase {
public void runOnProject() { public void runOnProject() {
try { try {
indexFiles(); indexFiles();
} catch (CoreException e) { } catch (Exception e) {
fail(e.getMessage()); fail(e.getMessage());
} }
runCodan(); runCodan();

View file

@ -127,7 +127,7 @@ public class CodanTestCase extends BaseTestCase {
return cprojects[0]; return cprojects[0];
} }
protected void indexFiles() throws CoreException { protected void indexFiles() throws CoreException, InterruptedException {
final IWorkspace workspace = ResourcesPlugin.getWorkspace(); final IWorkspace workspace = ResourcesPlugin.getWorkspace();
workspace.run(new IWorkspaceRunnable() { workspace.run(new IWorkspaceRunnable() {
public void run(IProgressMonitor monitor) throws CoreException { public void run(IProgressMonitor monitor) throws CoreException {
@ -138,9 +138,7 @@ public class CodanTestCase extends BaseTestCase {
CCorePlugin.getIndexManager().setIndexerId(cproject, IPDOMManager.ID_FAST_INDEXER); CCorePlugin.getIndexManager().setIndexerId(cproject, IPDOMManager.ID_FAST_INDEXER);
CCorePlugin.getIndexManager().reindex(cproject); CCorePlugin.getIndexManager().reindex(cproject);
// wait until the indexer is done // wait until the indexer is done
assertTrue(CCorePlugin.getIndexManager().joinIndexer(1000 * 60, // 1 min waitForIndexer(cproject);
new NullProgressMonitor()));
return;
} }
/** /**

View file

@ -113,7 +113,7 @@ public class ASTCacheTests extends BaseTestCase {
assertNotNull(fTU1); assertNotNull(fTU1);
fTU2= (ITranslationUnit) CoreModel.getDefault().create(file2); fTU2= (ITranslationUnit) CoreModel.getDefault().create(file2);
assertNotNull(fTU2); assertNotNull(fTU2);
CCorePlugin.getIndexManager().joinIndexer(5000, npm); waitForIndexer(fProject);
fIndex= CCorePlugin.getIndexManager().getIndex(fProject); fIndex= CCorePlugin.getIndexManager().getIndex(fProject);
fIndex.acquireReadLock(); fIndex.acquireReadLock();
} }

View file

@ -15,10 +15,8 @@ import java.io.FileNotFoundException;
import java.util.List; import java.util.List;
import junit.framework.Test; import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite; import junit.framework.TestSuite;
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.model.CModelException; import org.eclipse.cdt.core.model.CModelException;
import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.model.CoreModel;
@ -48,12 +46,13 @@ import org.eclipse.cdt.core.model.IVariableDeclaration;
import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility; import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
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;
import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Path;
public class CModelElementsTests extends TestCase { public class CModelElementsTests extends BaseTestCase {
private ICProject fCProject; private ICProject fCProject;
private IFile headerFile; private IFile headerFile;
private IFile includedFile; private IFile includedFile;
@ -90,7 +89,7 @@ public class CModelElementsTests extends TestCase {
} }
} }
// make sure the index is up-to-date // make sure the index is up-to-date
assertTrue(CCorePlugin.getIndexManager().joinIndexer(10000, new NullProgressMonitor())); waitForIndexer(fCProject);
} }

View file

@ -18,7 +18,6 @@ import java.util.List;
import junit.framework.Test; import junit.framework.Test;
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.model.CoreModel; import org.eclipse.cdt.core.model.CoreModel;
import org.eclipse.cdt.core.model.ICElement; import org.eclipse.cdt.core.model.ICElement;
@ -67,7 +66,7 @@ public class CModelIdentifierTests extends BaseTestCase {
e.printStackTrace(); e.printStackTrace();
} }
} }
CCorePlugin.getIndexManager().joinIndexer(10000, new NullProgressMonitor()); waitForIndexer(fCProject);
} }
@Override @Override

View file

@ -17,8 +17,6 @@ package org.eclipse.cdt.core.model.tests;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import junit.framework.TestCase;
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.model.CModelException; import org.eclipse.cdt.core.model.CModelException;
@ -27,6 +25,7 @@ import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.core.model.ITranslationUnit; import org.eclipse.cdt.core.model.ITranslationUnit;
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;
import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor;
@ -36,7 +35,7 @@ import org.eclipse.core.runtime.Path;
* @author bnicolle * @author bnicolle
* *
*/ */
public abstract class IntegratedCModelTest extends TestCase { public abstract class IntegratedCModelTest extends BaseTestCase {
private ICProject fCProject; private ICProject fCProject;
private IFile sourceFile; private IFile sourceFile;
@ -84,7 +83,7 @@ public abstract class IntegratedCModelTest extends TestCase {
e.printStackTrace(); e.printStackTrace();
} }
} }
CCorePlugin.getIndexManager().joinIndexer(2000, new NullProgressMonitor()); waitForIndexer(fCProject);
} }
@Override @Override

View file

@ -15,7 +15,6 @@ import java.io.FileNotFoundException;
import java.util.List; import java.util.List;
import junit.framework.Test; import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite; import junit.framework.TestSuite;
import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.CCorePlugin;
@ -48,12 +47,13 @@ import org.eclipse.cdt.core.model.IVariableDeclaration;
import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility; import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
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;
import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Path;
public class StructuralCModelElementsTests extends TestCase { public class StructuralCModelElementsTests extends BaseTestCase {
private ICProject fCProject; private ICProject fCProject;
private IFile headerFile; private IFile headerFile;
private IFile includedFile; private IFile includedFile;
@ -89,7 +89,7 @@ public class StructuralCModelElementsTests extends TestCase {
e.printStackTrace(); e.printStackTrace();
} }
} }
CCorePlugin.getIndexManager().joinIndexer(10000, new NullProgressMonitor()); waitForIndexer(fCProject);
} }

View file

@ -59,8 +59,7 @@ public abstract class ChangeGeneratorTest extends BaseTestFramework {
ResourcesPlugin.getWorkspace().build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor()); ResourcesPlugin.getWorkspace().build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor());
boolean joined = CCorePlugin.getIndexManager().joinIndexer(20000, new NullProgressMonitor()); waitForIndexer(cproject);
assertTrue("The indexing operation of the test CProject has not finished jet. This should not happen...", joined);
IASTTranslationUnit unit = CoreModelUtil.findTranslationUnit(testFile).getAST(); IASTTranslationUnit unit = CoreModelUtil.findTranslationUnit(testFile).getAST();
final ChangeGenerator changeGenerator = final ChangeGenerator changeGenerator =

View file

@ -151,7 +151,7 @@ public class Bug246129 extends IndexTestBase {
fFalseFriendsAccepted = falseFriendDirectory.exists(); fFalseFriendsAccepted = falseFriendDirectory.exists();
CCorePlugin.getIndexManager().reindex(fProject); CCorePlugin.getIndexManager().reindex(fProject);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(10000, npm())); waitForIndexer(fProject);
fIndex = CCorePlugin.getIndexManager().getIndex(fProject); fIndex = CCorePlugin.getIndexManager().getIndex(fProject);
} }
} }

View file

@ -50,7 +50,6 @@ import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectDescription; import org.eclipse.core.resources.IProjectDescription;
import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Path;
import org.osgi.framework.Bundle; import org.osgi.framework.Bundle;
@ -66,7 +65,6 @@ import org.osgi.framework.Bundle;
*/ */
public abstract class IndexBindingResolutionTestBase extends BaseTestCase { public abstract class IndexBindingResolutionTestBase extends BaseTestCase {
private static final boolean DEBUG= false; private static final boolean DEBUG= false;
private static final int INDEXER_TIMEOUT_SEC = 300;
protected ITestStrategy strategy; protected ITestStrategy strategy;
public void setStrategy(ITestStrategy strategy) { public void setStrategy(ITestStrategy strategy) {
@ -339,7 +337,7 @@ public abstract class IndexBindingResolutionTestBase extends BaseTestCase {
return; return;
IFile file = TestSourceReader.createFile(cproject.getProject(), new Path("header.h"), testData[0].toString()); IFile file = TestSourceReader.createFile(cproject.getProject(), new Path("header.h"), testData[0].toString());
CCorePlugin.getIndexManager().setIndexerId(cproject, IPDOMManager.ID_FAST_INDEXER); CCorePlugin.getIndexManager().setIndexerId(cproject, IPDOMManager.ID_FAST_INDEXER);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(INDEXER_TIMEOUT_SEC * 1000, new NullProgressMonitor())); waitForIndexer(cproject);
if (DEBUG) { if (DEBUG) {
System.out.println("Project PDOM: " + getName()); System.out.println("Project PDOM: " + getName());
@ -424,10 +422,10 @@ public abstract class IndexBindingResolutionTestBase extends BaseTestCase {
IFile file = TestSourceReader.createFile(cproject.getProject(), new Path("header.h"), testData[0].toString()); IFile file = TestSourceReader.createFile(cproject.getProject(), new Path("header.h"), testData[0].toString());
CCorePlugin.getIndexManager().setIndexerId(cproject, IPDOMManager.ID_FAST_INDEXER); CCorePlugin.getIndexManager().setIndexerId(cproject, IPDOMManager.ID_FAST_INDEXER);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(INDEXER_TIMEOUT_SEC * 1000, new NullProgressMonitor())); waitForIndexer(cproject);
IFile cppfile= TestSourceReader.createFile(cproject.getProject(), new Path("references.c" + (cpp ? "pp" : "")), testData[1].toString()); IFile cppfile= TestSourceReader.createFile(cproject.getProject(), new Path("references.c" + (cpp ? "pp" : "")), testData[1].toString());
assertTrue(CCorePlugin.getIndexManager().joinIndexer(INDEXER_TIMEOUT_SEC * 1000, new NullProgressMonitor())); waitForIndexer(cproject);
if (DEBUG) { if (DEBUG) {
System.out.println("Project PDOM: " + getName()); System.out.println("Project PDOM: " + getName());
@ -537,7 +535,7 @@ public abstract class IndexBindingResolutionTestBase extends BaseTestCase {
} }
} }
CCorePlugin.getIndexManager().setIndexerId(cproject, IPDOMManager.ID_FAST_INDEXER); CCorePlugin.getIndexManager().setIndexerId(cproject, IPDOMManager.ID_FAST_INDEXER);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(INDEXER_TIMEOUT_SEC * 1000, new NullProgressMonitor())); waitForIndexer(cproject);
if (DEBUG) { if (DEBUG) {
System.out.println("Project PDOM: " + getName()); System.out.println("Project PDOM: " + getName());
@ -621,7 +619,7 @@ public abstract class IndexBindingResolutionTestBase extends BaseTestCase {
IndexerPreferences.set(cproject.getProject(), IndexerPreferences.KEY_INDEXER_ID, IPDOMManager.ID_FAST_INDEXER); IndexerPreferences.set(cproject.getProject(), IndexerPreferences.KEY_INDEXER_ID, IPDOMManager.ID_FAST_INDEXER);
CCorePlugin.getIndexManager().reindex(cproject); CCorePlugin.getIndexManager().reindex(cproject);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(INDEXER_TIMEOUT_SEC * 1000, new NullProgressMonitor())); waitForIndexer(cproject);
if (DEBUG) { if (DEBUG) {
System.out.println("Online: "+getName()); System.out.println("Online: "+getName());
@ -633,7 +631,7 @@ public abstract class IndexBindingResolutionTestBase extends BaseTestCase {
ast= TestSourceReader.createIndexBasedAST(index, cproject, references); ast= TestSourceReader.createIndexBasedAST(index, cproject, references);
} }
protected ICProject createReferencedContent() throws CoreException { private ICProject createReferencedContent() throws Exception {
ICProject referenced = cpp ? ICProject referenced = cpp ?
CProjectHelper.createCCProject("ReferencedContent" + System.currentTimeMillis(), "bin", IPDOMManager.ID_NO_INDEXER) : CProjectHelper.createCCProject("ReferencedContent" + System.currentTimeMillis(), "bin", IPDOMManager.ID_NO_INDEXER) :
CProjectHelper.createCProject("ReferencedContent" + System.currentTimeMillis(), "bin", IPDOMManager.ID_NO_INDEXER); CProjectHelper.createCProject("ReferencedContent" + System.currentTimeMillis(), "bin", IPDOMManager.ID_NO_INDEXER);
@ -643,7 +641,7 @@ public abstract class IndexBindingResolutionTestBase extends BaseTestCase {
IndexerPreferences.set(referenced.getProject(), IndexerPreferences.KEY_INDEXER_ID, IPDOMManager.ID_FAST_INDEXER); IndexerPreferences.set(referenced.getProject(), IndexerPreferences.KEY_INDEXER_ID, IPDOMManager.ID_FAST_INDEXER);
CCorePlugin.getIndexManager().reindex(referenced); CCorePlugin.getIndexManager().reindex(referenced);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(INDEXER_TIMEOUT_SEC * 1000, new NullProgressMonitor())); waitForIndexer(referenced);
if (DEBUG) { if (DEBUG) {
System.out.println("Referenced: "+getName()); System.out.println("Referenced: "+getName());

View file

@ -303,14 +303,7 @@ public class IndexBugsTests extends BaseTestCase {
} }
private void waitForIndexer() throws InterruptedException { private void waitForIndexer() throws InterruptedException {
final IIndexManager indexManager = CCorePlugin.getIndexManager(); waitForIndexer(fCProject);
assertTrue(indexManager.joinIndexer(INDEXER_TIMEOUT_SEC * 1000, npm()));
long waitms= 1;
while (waitms < 2000 && indexManager.isIndexerSetupPostponed(fCProject)) {
Thread.sleep(waitms);
waitms *= 2;
}
assertTrue(indexManager.joinIndexer(INDEXER_TIMEOUT_SEC * 1000, npm()));
} }
protected Pattern[] getPattern(String qname) { protected Pattern[] getPattern(String qname) {
@ -424,7 +417,7 @@ public class IndexBugsTests extends BaseTestCase {
content.append("unsigned int arrayDataSize = sizeof(arrayData);\n"); content.append("unsigned int arrayDataSize = sizeof(arrayData);\n");
int indexOfDecl = content.indexOf(varName); int indexOfDecl = content.indexOf(varName);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(INDEXER_TIMEOUT_SEC * 1000, npm())); waitForIndexer();
IFile file= createFile(getProject(), fileName, content.toString()); IFile file= createFile(getProject(), fileName, content.toString());
// must be done in a reasonable amount of time // must be done in a reasonable amount of time
waitUntilFileIsIndexed(file, INDEXER_TIMEOUT_SEC * 1000); waitUntilFileIsIndexed(file, INDEXER_TIMEOUT_SEC * 1000);

View file

@ -94,8 +94,8 @@ public class IndexIncludeTest extends IndexTestBase {
checkContext(); checkContext();
} }
private void waitForIndexer() { private void waitForIndexer() throws InterruptedException {
assertTrue(CCorePlugin.getIndexManager().joinIndexer(10000, npm())); waitForIndexer(fProject);
} }
private void checkHeader(boolean all) throws Exception { private void checkHeader(boolean all) throws Exception {
@ -564,9 +564,9 @@ public class IndexIncludeTest extends IndexTestBase {
final IFile h1= TestSourceReader.createFile(fProject.getProject(), "h1.h", h1Contents.toString()); final IFile h1= TestSourceReader.createFile(fProject.getProject(), "h1.h", h1Contents.toString());
IFile h2= TestSourceReader.createFile(fProject.getProject(), "h2.h", contents[1].toString()); IFile h2= TestSourceReader.createFile(fProject.getProject(), "h2.h", contents[1].toString());
IFile s1= TestSourceReader.createFile(fProject.getProject(), "s1.cpp", contents[2].toString()); IFile s1= TestSourceReader.createFile(fProject.getProject(), "s1.cpp", contents[2].toString());
waitUntilFileIsIndexed(fIndex, s1);
IFile s2= TestSourceReader.createFile(fProject.getProject(), "s2.cpp", contents[3].toString()); IFile s2= TestSourceReader.createFile(fProject.getProject(), "s2.cpp", contents[3].toString());
TestSourceReader.waitUntilFileIsIndexed(fIndex, s1, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, s2);
TestSourceReader.waitUntilFileIsIndexed(fIndex, s2, INDEXER_WAIT_TIME);
fIndex.acquireReadLock(); fIndex.acquireReadLock();
try { try {

View file

@ -28,7 +28,6 @@ import org.eclipse.cdt.core.testplugin.CProjectHelper;
import org.eclipse.cdt.core.testplugin.util.BaseTestCase; import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
import org.eclipse.cdt.core.testplugin.util.TestSourceReader; import org.eclipse.cdt.core.testplugin.util.TestSourceReader;
import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.NullProgressMonitor;
public class IndexListenerTest extends BaseTestCase { public class IndexListenerTest extends BaseTestCase {
private ICProject fProject1; private ICProject fProject1;
@ -42,7 +41,8 @@ public class IndexListenerTest extends BaseTestCase {
protected void setUp() throws Exception { protected void setUp() throws Exception {
fProject1 = CProjectHelper.createCCProject("testIndexListener1", null, IPDOMManager.ID_FAST_INDEXER); fProject1 = CProjectHelper.createCCProject("testIndexListener1", null, IPDOMManager.ID_FAST_INDEXER);
fProject2 = CProjectHelper.createCCProject("testIndexListener2", null, IPDOMManager.ID_FAST_INDEXER); fProject2 = CProjectHelper.createCCProject("testIndexListener2", null, IPDOMManager.ID_FAST_INDEXER);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(2000, new NullProgressMonitor())); waitForIndexer(fProject1);
waitForIndexer(fProject2);
} }
@Override @Override
@ -55,7 +55,8 @@ public class IndexListenerTest extends BaseTestCase {
final Object mutex= new Object(); final Object mutex= new Object();
final int[] state= new int[] {0, 0, 0}; final int[] state= new int[] {0, 0, 0};
IIndexManager im= CCorePlugin.getIndexManager(); IIndexManager im= CCorePlugin.getIndexManager();
assertTrue(im.joinIndexer(10000, npm())); waitForIndexer(fProject1);
waitForIndexer(fProject2);
IIndexerStateListener listener = new IIndexerStateListener() { IIndexerStateListener listener = new IIndexerStateListener() {
@Override @Override
@ -99,7 +100,8 @@ public class IndexListenerTest extends BaseTestCase {
final List projects= new ArrayList(); final List projects= new ArrayList();
IIndexManager im= CCorePlugin.getIndexManager(); IIndexManager im= CCorePlugin.getIndexManager();
assertTrue(im.joinIndexer(10000, npm())); waitForIndexer(fProject1);
waitForIndexer(fProject2);
IIndexChangeListener listener = new IIndexChangeListener() { IIndexChangeListener listener = new IIndexChangeListener() {
@Override @Override
public void indexChanged(IIndexChangeEvent event) { public void indexChanged(IIndexChangeEvent event) {

View file

@ -98,7 +98,7 @@ public class IndexLocationTest extends BaseTestCase {
IFile file3 = TestSourceReader.createFile(cproject.getProject(), "source.cpp", content); IFile file3 = TestSourceReader.createFile(cproject.getProject(), "source.cpp", content);
CCorePlugin.getIndexManager().reindex(cproject); CCorePlugin.getIndexManager().reindex(cproject);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(10000, new NullProgressMonitor())); waitForIndexer(cproject);
IIndex index = CCorePlugin.getIndexManager().getIndex(cproject); IIndex index = CCorePlugin.getIndexManager().getIndex(cproject);
index.acquireReadLock(); index.acquireReadLock();
@ -166,7 +166,6 @@ public class IndexLocationTest extends BaseTestCase {
IIndex index = CCorePlugin.getIndexManager().getIndex(cproject); IIndex index = CCorePlugin.getIndexManager().getIndex(cproject);
TestSourceReader.waitUntilFileIsIndexed(index, content.getFile("external2.h"), 4000); TestSourceReader.waitUntilFileIsIndexed(index, content.getFile("external2.h"), 4000);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(10000, new NullProgressMonitor()));
index.acquireReadLock(); index.acquireReadLock();
try { try {
IBinding[] bs= index.findBindings("External".toCharArray(), IndexFilter.ALL, npm()); IBinding[] bs= index.findBindings("External".toCharArray(), IndexFilter.ALL, npm());

View file

@ -76,8 +76,8 @@ public class IndexNamesTests extends BaseTestCase {
return TestSourceReader.createFile(container, new Path(fileName), contents); return TestSourceReader.createFile(container, new Path(fileName), contents);
} }
protected void waitForIndexer() { protected void waitForIndexer() throws InterruptedException {
assertTrue(CCorePlugin.getIndexManager().joinIndexer(10000, npm())); waitForIndexer(fCProject);
} }
protected Pattern[] getPattern(String qname) { protected Pattern[] getPattern(String qname) {

View file

@ -238,8 +238,7 @@ public class IndexProviderManagerTest extends IndexTestBase {
return true; return true;
} }
}; };
waitForIndexer(cproject);
CCorePlugin.getIndexManager().joinIndexer(8000, npm()); // ensure IPM is called only once under test conditions
setExpectedNumberOfLoggedNonOKStatusObjects(3); // foo, bar and baz have no compatible fragments available setExpectedNumberOfLoggedNonOKStatusObjects(3); // foo, bar and baz have no compatible fragments available
ipm.reset(VERSION_405); ipm.startup(); ipm.reset(VERSION_405); ipm.startup();
@ -298,7 +297,7 @@ public class IndexProviderManagerTest extends IndexTestBase {
} }
}; };
CCorePlugin.getIndexManager().joinIndexer(8000, npm()); // ensure IPM is called only once under test conditions waitForIndexer(cproject);
setExpectedNumberOfLoggedNonOKStatusObjects(1); // contentA has no compatible fragments available setExpectedNumberOfLoggedNonOKStatusObjects(1); // contentA has no compatible fragments available
ipm.reset(VERSION_502); ipm.startup(); ipm.reset(VERSION_502); ipm.startup();
@ -348,21 +347,21 @@ public class IndexProviderManagerTest extends IndexTestBase {
core.setProjectDescription(project, pd); core.setProjectDescription(project, pd);
index= CCorePlugin.getIndexManager().getIndex(cproject, A_FRAGMENT_OPTION); index= CCorePlugin.getIndexManager().getIndex(cproject, A_FRAGMENT_OPTION);
CCorePlugin.getIndexManager().joinIndexer(8000, npm()); waitForIndexer(cproject);
DPT.reset(DP1); DPT.reset(DP1);
changeConfigRelations(project, ICProjectDescriptionPreferences.CONFIGS_LINK_SETTINGS_AND_ACTIVE); changeConfigRelations(cproject, ICProjectDescriptionPreferences.CONFIGS_LINK_SETTINGS_AND_ACTIVE);
assertEquals(0, DPT.getProjectsTrace(DP1).size()); assertEquals(0, DPT.getProjectsTrace(DP1).size());
assertEquals(0, DPT.getCfgsTrace(DP1).size()); assertEquals(0, DPT.getCfgsTrace(DP1).size());
changeActiveConfiguration(project, cfg1); changeActiveConfiguration(cproject, cfg1);
DPT.reset(DP1); DPT.reset(DP1);
index= CCorePlugin.getIndexManager().getIndex(cproject, A_FRAGMENT_OPTION); index= CCorePlugin.getIndexManager().getIndex(cproject, A_FRAGMENT_OPTION);
assertEquals(0, DPT.getProjectsTrace(DP1).size()); assertEquals(0, DPT.getProjectsTrace(DP1).size());
assertEquals(1, DPT.getCfgsTrace(DP1).size()); assertEquals(1, DPT.getCfgsTrace(DP1).size());
assertEquals("project.config1", ((ICConfigurationDescription)DPT.getCfgsTrace(DP1).get(0)).getId()); assertEquals("project.config1", ((ICConfigurationDescription)DPT.getCfgsTrace(DP1).get(0)).getId());
changeActiveConfiguration(project, cfg2); changeActiveConfiguration(cproject, cfg2);
DPT.reset(DP1); DPT.reset(DP1);
index= CCorePlugin.getIndexManager().getIndex(cproject, A_FRAGMENT_OPTION); index= CCorePlugin.getIndexManager().getIndex(cproject, A_FRAGMENT_OPTION);
assertEquals(0, DPT.getProjectsTrace(DP1).size()); assertEquals(0, DPT.getProjectsTrace(DP1).size());
@ -370,11 +369,11 @@ public class IndexProviderManagerTest extends IndexTestBase {
assertEquals("project.config2", ((ICConfigurationDescription)DPT.getCfgsTrace(DP1).get(0)).getId()); assertEquals("project.config2", ((ICConfigurationDescription)DPT.getCfgsTrace(DP1).get(0)).getId());
DPT.reset(DP1); DPT.reset(DP1);
changeConfigRelations(project, ICProjectDescriptionPreferences.CONFIGS_INDEPENDENT); changeConfigRelations(cproject, ICProjectDescriptionPreferences.CONFIGS_INDEPENDENT);
assertEquals(0, DPT.getProjectsTrace(DP1).size()); assertEquals(0, DPT.getProjectsTrace(DP1).size());
assertEquals(0, DPT.getCfgsTrace(DP1).size()); assertEquals(0, DPT.getCfgsTrace(DP1).size());
changeActiveConfiguration(project, cfg1); changeActiveConfiguration(cproject, cfg1);
DPT.reset(DP1); DPT.reset(DP1);
index= CCorePlugin.getIndexManager().getIndex(cproject, A_FRAGMENT_OPTION); index= CCorePlugin.getIndexManager().getIndex(cproject, A_FRAGMENT_OPTION);
assertEquals(0, DPT.getProjectsTrace(DP1).size()); assertEquals(0, DPT.getProjectsTrace(DP1).size());
@ -382,7 +381,7 @@ public class IndexProviderManagerTest extends IndexTestBase {
// should still be config2, as the change in active configuration does not matter // should still be config2, as the change in active configuration does not matter
assertEquals("project.config2", ((ICConfigurationDescription)DPT.getCfgsTrace(DP1).get(0)).getId()); assertEquals("project.config2", ((ICConfigurationDescription)DPT.getCfgsTrace(DP1).get(0)).getId());
changeActiveConfiguration(project, cfg2); changeActiveConfiguration(cproject, cfg2);
DPT.reset(DP1); DPT.reset(DP1);
index= CCorePlugin.getIndexManager().getIndex(cproject, A_FRAGMENT_OPTION); index= CCorePlugin.getIndexManager().getIndex(cproject, A_FRAGMENT_OPTION);
assertEquals(0, DPT.getProjectsTrace(DP1).size()); assertEquals(0, DPT.getProjectsTrace(DP1).size());
@ -556,18 +555,18 @@ public class IndexProviderManagerTest extends IndexTestBase {
return des.createConfiguration(CCorePlugin.DEFAULT_PROVIDER_ID, data); return des.createConfiguration(CCorePlugin.DEFAULT_PROVIDER_ID, data);
} }
private void changeActiveConfiguration(IProject project, ICConfigurationDescription cfg) throws CoreException { private void changeActiveConfiguration(ICProject cproject, ICConfigurationDescription cfg) throws CoreException, InterruptedException {
ICProjectDescription pd= core.getProjectDescription(project); ICProjectDescription pd= core.getProjectDescription(cproject.getProject());
pd.setActiveConfiguration(pd.getConfigurationById(cfg.getId())); pd.setActiveConfiguration(pd.getConfigurationById(cfg.getId()));
core.setProjectDescription(project, pd); core.setProjectDescription(cproject.getProject(), pd);
CCorePlugin.getIndexManager().joinIndexer(8000, npm()); waitForIndexer(cproject);
} }
private void changeConfigRelations(IProject project, int option) throws CoreException { private void changeConfigRelations(ICProject cproject, int option) throws CoreException, InterruptedException {
ICProjectDescription pd= core.getProjectDescription(project); ICProjectDescription pd= core.getProjectDescription(cproject.getProject());
pd.setConfigurationRelations(option); pd.setConfigurationRelations(option);
core.setProjectDescription(project, pd); core.setProjectDescription(cproject.getProject(), pd);
CCorePlugin.getIndexManager().joinIndexer(8000, npm()); waitForIndexer(cproject);
} }
} }
@ -830,7 +829,7 @@ class MockState {
public static final String DBG_V2_ID = "dbg_v2"; public static final String DBG_V2_ID = "dbg_v2";
public static final List states = new ArrayList(Arrays.asList(new String[]{REL_V1_ID, REL_V2_ID, DBG_V1_ID, DBG_V2_ID})); public static final List states = new ArrayList(Arrays.asList(new String[]{REL_V1_ID, REL_V2_ID, DBG_V1_ID, DBG_V2_ID}));
private IProject project; private final IProject project;
private String currentConfig; private String currentConfig;
public MockState(ICProject cproject) { public MockState(ICProject cproject) {

View file

@ -25,7 +25,6 @@ import org.eclipse.core.resources.IWorkspaceRunnable;
import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
public class IndexTestBase extends BaseTestCase { public class IndexTestBase extends BaseTestCase {
protected static int INDEXER_WAIT_TIME= 8000; protected static int INDEXER_WAIT_TIME= 8000;
@ -34,7 +33,7 @@ public class IndexTestBase extends BaseTestCase {
super(name); super(name);
} }
protected ICProject createProject(final boolean useCpp, final String importSource) throws CoreException { protected ICProject createProject(final boolean useCpp, final String importSource) throws CoreException, InterruptedException {
// Create the project // Create the project
final ICProject[] result= new ICProject[] {null}; final ICProject[] result= new ICProject[] {null};
final IWorkspace workspace = ResourcesPlugin.getWorkspace(); final IWorkspace workspace = ResourcesPlugin.getWorkspace();
@ -52,7 +51,7 @@ public class IndexTestBase extends BaseTestCase {
}, null); }, null);
CCorePlugin.getIndexManager().setIndexerId(result[0], IPDOMManager.ID_FAST_INDEXER); CCorePlugin.getIndexManager().setIndexerId(result[0], IPDOMManager.ID_FAST_INDEXER);
// wait until the indexer is done // wait until the indexer is done
assertTrue(CCorePlugin.getIndexManager().joinIndexer(10000, new NullProgressMonitor())); waitForIndexer(result[0]);
return result[0]; return result[0];
} }

View file

@ -102,7 +102,8 @@ public class IndexUpdateTests extends IndexTestBase {
if (fCProject == null) { if (fCProject == null) {
fCProject= CProjectHelper.createCProject("indexUpdateTestsC", null, IPDOMManager.ID_FAST_INDEXER); fCProject= CProjectHelper.createCProject("indexUpdateTestsC", null, IPDOMManager.ID_FAST_INDEXER);
} }
CCorePlugin.getIndexManager().joinIndexer(INDEXER_WAIT_TIME, npm()); waitForIndexer(fCppProject);
waitForIndexer(fCProject);
fIndex= CCorePlugin.getIndexManager().getIndex(new ICProject[] {fCProject, fCppProject}); fIndex= CCorePlugin.getIndexManager().getIndex(new ICProject[] {fCProject, fCppProject});
} }
@ -113,7 +114,8 @@ public class IndexUpdateTests extends IndexTestBase {
} }
IProject project= cpp ? fCppProject.getProject() : fCProject.getProject(); IProject project= cpp ? fCppProject.getProject() : fCProject.getProject();
fHeader= TestSourceReader.createFile(project, "header.h", fContents[++fContentUsed].toString()); fHeader= TestSourceReader.createFile(project, "header.h", fContents[++fContentUsed].toString());
assertTrue(CCorePlugin.getIndexManager().joinIndexer(INDEXER_WAIT_TIME, npm())); waitForIndexer(fCppProject);
waitForIndexer(fCProject);
} }
private void updateHeader() throws Exception { private void updateHeader() throws Exception {
@ -122,7 +124,7 @@ public class IndexUpdateTests extends IndexTestBase {
IProject project= fHeader.getProject(); IProject project= fHeader.getProject();
fHeader= TestSourceReader.createFile(project, "header.h", fHeader= TestSourceReader.createFile(project, "header.h",
fContents[++fContentUsed].toString() + "\n// " + fContentUsed); fContents[++fContentUsed].toString() + "\n// " + fContentUsed);
TestSourceReader.waitUntilFileIsIndexed(fIndex, fHeader, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, fHeader);
} }
private void setupFile(int totalFileVersions, boolean cpp) throws Exception { private void setupFile(int totalFileVersions, boolean cpp) throws Exception {
@ -130,10 +132,10 @@ public class IndexUpdateTests extends IndexTestBase {
fContents= getContentsForTest(totalFileVersions); fContents= getContentsForTest(totalFileVersions);
fContentUsed= -1; fContentUsed= -1;
} }
IProject project= cpp ? fCppProject.getProject() : fCProject.getProject(); ICProject cproject= cpp ? fCppProject : fCProject;
fFile= TestSourceReader.createFile(project, "file" + (cpp ? ".cpp" : ".c"), fContents[++fContentUsed].toString()); fFile= TestSourceReader.createFile(cproject.getProject(), "file" + (cpp ? ".cpp" : ".c"), fContents[++fContentUsed].toString());
TestSourceReader.waitUntilFileIsIndexed(fIndex, fFile, INDEXER_WAIT_TIME); TestSourceReader.waitUntilFileIsIndexed(fIndex, fFile, INDEXER_WAIT_TIME);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(INDEXER_WAIT_TIME, npm())); waitForIndexer(cproject);
} }
private void updateFile() throws Exception { private void updateFile() throws Exception {
@ -141,7 +143,7 @@ public class IndexUpdateTests extends IndexTestBase {
// Indexer would not reindex the file if its contents remain the same. // Indexer would not reindex the file if its contents remain the same.
fFile= TestSourceReader.createFile(fFile.getParent(), fFile.getName(), fFile= TestSourceReader.createFile(fFile.getParent(), fFile.getName(),
fContents[++fContentUsed].toString() + "\n// " + fContentUsed); fContents[++fContentUsed].toString() + "\n// " + fContentUsed);
TestSourceReader.waitUntilFileIsIndexed(fIndex, fFile, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, fFile);
} }
@Override @Override
@ -153,7 +155,6 @@ public class IndexUpdateTests extends IndexTestBase {
if (fHeader != null) { if (fHeader != null) {
fHeader.delete(true, npm()); fHeader.delete(true, npm());
} }
CCorePlugin.getIndexManager().joinIndexer(INDEXER_WAIT_TIME, npm());
super.tearDown(); super.tearDown();
} }
@ -945,8 +946,7 @@ public class IndexUpdateTests extends IndexTestBase {
} }
fHeader= TestSourceReader.createFile(fHeader.getParent(), fHeader.getName(), fContents[0].toString().replaceAll("globalVar", "newVar")); fHeader= TestSourceReader.createFile(fHeader.getParent(), fHeader.getName(), fContents[0].toString().replaceAll("globalVar", "newVar"));
TestSourceReader.waitUntilFileIsIndexed(fIndex, fHeader, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, fHeader);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(INDEXER_WAIT_TIME, npm()));
fIndex.acquireReadLock(); fIndex.acquireReadLock();
try { try {

View file

@ -48,7 +48,7 @@ public class TeamSharedIndexTest extends IndexTestBase {
return suite(TeamSharedIndexTest.class); return suite(TeamSharedIndexTest.class);
} }
private Collection fProjects= new LinkedList(); private final Collection fProjects= new LinkedList();
private static final IIndexManager fPDOMManager = CCorePlugin.getIndexManager(); private static final IIndexManager fPDOMManager = CCorePlugin.getIndexManager();
public TeamSharedIndexTest(String name) { public TeamSharedIndexTest(String name) {
@ -77,7 +77,7 @@ public class TeamSharedIndexTest extends IndexTestBase {
fProjects.remove(prj); fProjects.remove(prj);
} }
private ICProject createProject(String name) throws CoreException { private ICProject createProject(String name) throws CoreException, InterruptedException {
ModelJoiner mj= new ModelJoiner(); ModelJoiner mj= new ModelJoiner();
try { try {
ICProject project= CProjectHelper.createCCProject(name, null, IPDOMManager.ID_NO_INDEXER); ICProject project= CProjectHelper.createCCProject(name, null, IPDOMManager.ID_NO_INDEXER);
@ -88,7 +88,7 @@ public class TeamSharedIndexTest extends IndexTestBase {
mj.join(); // in order we are sure the indexer task has been scheduled before joining the indexer mj.join(); // in order we are sure the indexer task has been scheduled before joining the indexer
fPDOMManager.setIndexerId(project, IPDOMManager.ID_FAST_INDEXER); fPDOMManager.setIndexerId(project, IPDOMManager.ID_FAST_INDEXER);
assertTrue(fPDOMManager.joinIndexer(INDEXER_WAIT_TIME, npm())); waitForIndexer(project);
return project; return project;
} finally { } finally {
mj.dispose(); mj.dispose();
@ -151,7 +151,7 @@ public class TeamSharedIndexTest extends IndexTestBase {
fPDOMManager.setIndexerId(prj, FakeIndexer.ID); fPDOMManager.setIndexerId(prj, FakeIndexer.ID);
IndexerPreferences.setScope(prj.getProject(), IndexerPreferences.SCOPE_PROJECT_SHARED); IndexerPreferences.setScope(prj.getProject(), IndexerPreferences.SCOPE_PROJECT_SHARED);
new ProjectScope(prj.getProject()).getNode(CCorePlugin.PLUGIN_ID).flush(); new ProjectScope(prj.getProject()).getNode(CCorePlugin.PLUGIN_ID).flush();
fPDOMManager.joinIndexer(INDEXER_WAIT_TIME, npm()); waitForIndexer(prj);
checkVariable(prj, "a", 0); checkVariable(prj, "a", 0);
checkVariable(prj, "b", 0); checkVariable(prj, "b", 0);
checkVariable(prj, "c", 0); checkVariable(prj, "c", 0);
@ -182,7 +182,7 @@ public class TeamSharedIndexTest extends IndexTestBase {
IndexerPreferences.setScope(prj.getProject(), IndexerPreferences.SCOPE_PROJECT_SHARED); IndexerPreferences.setScope(prj.getProject(), IndexerPreferences.SCOPE_PROJECT_SHARED);
new ProjectScope(prj.getProject()).getNode(CCorePlugin.PLUGIN_ID).flush(); new ProjectScope(prj.getProject()).getNode(CCorePlugin.PLUGIN_ID).flush();
fPDOMManager.export(prj, loc, 0, npm()); fPDOMManager.export(prj, loc, 0, npm());
fPDOMManager.joinIndexer(INDEXER_WAIT_TIME, npm()); waitForIndexer(prj);
// change file // change file
changeFile(prj); changeFile(prj);
@ -228,13 +228,13 @@ public class TeamSharedIndexTest extends IndexTestBase {
// export the project. // export the project.
fPDOMManager.export(prj, loc, 0, npm()); fPDOMManager.export(prj, loc, 0, npm());
fPDOMManager.joinIndexer(INDEXER_WAIT_TIME, npm()); waitForIndexer(prj);
// set indexer to the fake one. // set indexer to the fake one.
fPDOMManager.setIndexerId(prj, FakeIndexer.ID); fPDOMManager.setIndexerId(prj, FakeIndexer.ID);
IndexerPreferences.setScope(prj.getProject(), IndexerPreferences.SCOPE_PROJECT_SHARED); IndexerPreferences.setScope(prj.getProject(), IndexerPreferences.SCOPE_PROJECT_SHARED);
new ProjectScope(prj.getProject()).getNode(CCorePlugin.PLUGIN_ID).flush(); new ProjectScope(prj.getProject()).getNode(CCorePlugin.PLUGIN_ID).flush();
fPDOMManager.joinIndexer(INDEXER_WAIT_TIME, npm()); waitForIndexer(prj);
checkVariable(prj, "a", 0); checkVariable(prj, "a", 0);
checkVariable(prj, "b", 0); checkVariable(prj, "b", 0);
checkVariable(prj, "c", 0); checkVariable(prj, "c", 0);
@ -264,7 +264,7 @@ public class TeamSharedIndexTest extends IndexTestBase {
IndexerPreferences.setScope(prj.getProject(), IndexerPreferences.SCOPE_PROJECT_SHARED); IndexerPreferences.setScope(prj.getProject(), IndexerPreferences.SCOPE_PROJECT_SHARED);
new ProjectScope(prj.getProject()).getNode(CCorePlugin.PLUGIN_ID).flush(); new ProjectScope(prj.getProject()).getNode(CCorePlugin.PLUGIN_ID).flush();
fPDOMManager.export(prj, loc, 0, npm()); fPDOMManager.export(prj, loc, 0, npm());
fPDOMManager.joinIndexer(INDEXER_WAIT_TIME, npm()); waitForIndexer(prj);
// add file // add file
TestSourceReader.createFile(prj.getProject(), "d.cpp", "int d;"); TestSourceReader.createFile(prj.getProject(), "d.cpp", "int d;");
@ -290,13 +290,13 @@ public class TeamSharedIndexTest extends IndexTestBase {
// export the project. // export the project.
fPDOMManager.export(prj, loc, 0, npm()); fPDOMManager.export(prj, loc, 0, npm());
fPDOMManager.joinIndexer(INDEXER_WAIT_TIME, npm()); waitForIndexer(prj);
// set indexer to the fake one. // set indexer to the fake one.
fPDOMManager.setIndexerId(prj, FakeIndexer.ID); fPDOMManager.setIndexerId(prj, FakeIndexer.ID);
IndexerPreferences.setScope(prj.getProject(), IndexerPreferences.SCOPE_PROJECT_SHARED); IndexerPreferences.setScope(prj.getProject(), IndexerPreferences.SCOPE_PROJECT_SHARED);
new ProjectScope(prj.getProject()).getNode(CCorePlugin.PLUGIN_ID).flush(); new ProjectScope(prj.getProject()).getNode(CCorePlugin.PLUGIN_ID).flush();
fPDOMManager.joinIndexer(INDEXER_WAIT_TIME, npm()); waitForIndexer(prj);
checkVariable(prj, "a", 0); checkVariable(prj, "a", 0);
checkVariable(prj, "b", 0); checkVariable(prj, "b", 0);
checkVariable(prj, "c", 0); checkVariable(prj, "c", 0);
@ -327,7 +327,7 @@ public class TeamSharedIndexTest extends IndexTestBase {
IndexerPreferences.setScope(prj.getProject(), IndexerPreferences.SCOPE_PROJECT_SHARED); IndexerPreferences.setScope(prj.getProject(), IndexerPreferences.SCOPE_PROJECT_SHARED);
new ProjectScope(prj.getProject()).getNode(CCorePlugin.PLUGIN_ID).flush(); new ProjectScope(prj.getProject()).getNode(CCorePlugin.PLUGIN_ID).flush();
fPDOMManager.export(prj, loc, 0, npm()); fPDOMManager.export(prj, loc, 0, npm());
fPDOMManager.joinIndexer(INDEXER_WAIT_TIME, npm()); waitForIndexer(prj);
// delete file // delete file
prj.getProject().getFile("a.cpp").delete(true, npm()); prj.getProject().getFile("a.cpp").delete(true, npm());
@ -352,13 +352,13 @@ public class TeamSharedIndexTest extends IndexTestBase {
// export the project. // export the project.
fPDOMManager.export(prj, loc, 0, npm()); fPDOMManager.export(prj, loc, 0, npm());
fPDOMManager.joinIndexer(INDEXER_WAIT_TIME, npm()); waitForIndexer(prj);
// set indexer to the fake one. // set indexer to the fake one.
fPDOMManager.setIndexerId(prj, FakeIndexer.ID); fPDOMManager.setIndexerId(prj, FakeIndexer.ID);
IndexerPreferences.setScope(prj.getProject(), IndexerPreferences.SCOPE_PROJECT_SHARED); IndexerPreferences.setScope(prj.getProject(), IndexerPreferences.SCOPE_PROJECT_SHARED);
new ProjectScope(prj.getProject()).getNode(CCorePlugin.PLUGIN_ID).flush(); new ProjectScope(prj.getProject()).getNode(CCorePlugin.PLUGIN_ID).flush();
fPDOMManager.joinIndexer(INDEXER_WAIT_TIME, npm()); waitForIndexer(prj);
checkVariable(prj, "a", 0); checkVariable(prj, "a", 0);
checkVariable(prj, "b", 0); checkVariable(prj, "b", 0);
checkVariable(prj, "c", 0); checkVariable(prj, "c", 0);

View file

@ -55,14 +55,14 @@ public class TrilogyPerformanceTest extends IndexTestBase {
} }
// you must have the Windows SDK installed and the INETSDK env var setup // you must have the Windows SDK installed and the INETSDK env var setup
public void testIndexTrilogyPerformanceTimes() throws CoreException { public void testIndexTrilogyPerformanceTimes() throws CoreException, InterruptedException {
if(Platform.getOS().equals(Platform.OS_WIN32)) { if(Platform.getOS().equals(Platform.OS_WIN32)) {
assertTrue(CCorePlugin.getIndexManager().joinIndexer(360000, new NullProgressMonitor())); waitForIndexer(cproject);
TestScannerProvider.sIncludes = new String[]{EnvironmentReader.getEnvVar("INETSDK")+"\\Include"}; TestScannerProvider.sIncludes = new String[]{EnvironmentReader.getEnvVar("INETSDK")+"\\Include"};
IndexerPreferences.set(cproject.getProject(), IndexerPreferences.KEY_INDEX_UNUSED_HEADERS_WITH_DEFAULT_LANG, "true"); IndexerPreferences.set(cproject.getProject(), IndexerPreferences.KEY_INDEX_UNUSED_HEADERS_WITH_DEFAULT_LANG, "true");
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
CCorePlugin.getIndexManager().reindex(cproject); CCorePlugin.getIndexManager().reindex(cproject);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(360000, new NullProgressMonitor())); waitForIndexer(cproject);
System.out.println("Took: "+(System.currentTimeMillis() - start)); System.out.println("Took: "+(System.currentTimeMillis() - start));
IIndex index= CCorePlugin.getIndexManager().getIndex(cproject); IIndex index= CCorePlugin.getIndexManager().getIndex(cproject);
IBinding[] binding = index.findBindings(Pattern.compile("IXMLElementCollection"), false, IndexFilter.ALL, new NullProgressMonitor()); IBinding[] binding = index.findBindings(Pattern.compile("IXMLElementCollection"), false, IndexFilter.ALL, new NullProgressMonitor());

View file

@ -14,7 +14,6 @@ import java.util.Arrays;
import junit.framework.Test; import junit.framework.Test;
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.dom.ast.IBasicType; import org.eclipse.cdt.core.dom.ast.IBasicType;
import org.eclipse.cdt.core.dom.ast.IBinding; import org.eclipse.cdt.core.dom.ast.IBinding;
@ -40,7 +39,6 @@ import org.eclipse.cdt.internal.core.index.IIndexFragmentBinding;
import org.eclipse.cdt.internal.core.pdom.PDOM; import org.eclipse.cdt.internal.core.pdom.PDOM;
import org.eclipse.cdt.internal.core.pdom.indexer.IndexerPreferences; import org.eclipse.cdt.internal.core.pdom.indexer.IndexerPreferences;
import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Path;
/** /**
@ -67,11 +65,7 @@ public class CPPClassTemplateTests extends PDOMTestBase {
IFile file= TestSourceReader.createFile(cproject.getProject(), new Path("refs.cpp"), content.toString()); IFile file= TestSourceReader.createFile(cproject.getProject(), new Path("refs.cpp"), content.toString());
} }
IndexerPreferences.set(cproject.getProject(), IndexerPreferences.KEY_INDEXER_ID, IPDOMManager.ID_FAST_INDEXER); IndexerPreferences.set(cproject.getProject(), IndexerPreferences.KEY_INDEXER_ID, IPDOMManager.ID_FAST_INDEXER);
for(int i=0; i<5 && !CCoreInternals.getPDOMManager().isProjectRegistered(cproject); i++) { waitForIndexer(cproject);
Thread.sleep(200);
}
assertTrue(CCoreInternals.getPDOMManager().isProjectRegistered(cproject));
assertTrue(CCorePlugin.getIndexManager().joinIndexer(360000, new NullProgressMonitor()));
pdom= (PDOM) CCoreInternals.getPDOMManager().getPDOM(cproject); pdom= (PDOM) CCoreInternals.getPDOMManager().getPDOM(cproject);
pdom.acquireReadLock(); pdom.acquireReadLock();
} }

View file

@ -43,11 +43,11 @@ public class ChangeConfigurationTests extends PDOMTestBase {
return suite(ChangeConfigurationTests.class); return suite(ChangeConfigurationTests.class);
} }
private void changeConfigRelations(IProject project, int option) throws CoreException { private void changeConfigRelations(ICProject project, int option) throws CoreException, InterruptedException {
ICProjectDescription pd= CCorePlugin.getDefault().getProjectDescription(project); ICProjectDescription pd= CCorePlugin.getDefault().getProjectDescription(project.getProject());
pd.setConfigurationRelations(option); pd.setConfigurationRelations(option);
CCorePlugin.getDefault().setProjectDescription(project, pd); CCorePlugin.getDefault().setProjectDescription(project.getProject(), pd);
CCorePlugin.getIndexManager().joinIndexer(8000, npm()); waitForIndexer(project);
} }
// Emulates ChangeConfigAction // Emulates ChangeConfigAction
@ -79,7 +79,7 @@ public class ChangeConfigurationTests extends PDOMTestBase {
IFile file= TestSourceReader.createFile(cProject.getProject(), new Path("test.c"), contents[0].toString()); IFile file= TestSourceReader.createFile(cProject.getProject(), new Path("test.c"), contents[0].toString());
mj.join(); mj.join();
mj.dispose(); mj.dispose();
changeConfigRelations(cProject.getProject(), ICProjectDescriptionPreferences.CONFIGS_LINK_SETTINGS_AND_ACTIVE); changeConfigRelations(cProject, ICProjectDescriptionPreferences.CONFIGS_LINK_SETTINGS_AND_ACTIVE);
ICProjectDescription prjd = CCorePlugin.getDefault().getProjectDescriptionManager().getProjectDescription(project); ICProjectDescription prjd = CCorePlugin.getDefault().getProjectDescriptionManager().getProjectDescription(project);
ICConfigurationDescription configuration1 = prjd.getConfigurations()[0]; ICConfigurationDescription configuration1 = prjd.getConfigurations()[0];

View file

@ -64,7 +64,7 @@ public class FilesOnReindexTests extends PDOMTestBase {
CCoreInternals.getPDOMManager().reindex(project); CCoreInternals.getPDOMManager().reindex(project);
// wait until the indexer is done // wait until the indexer is done
assertTrue(CCorePlugin.getIndexManager().joinIndexer(360000, new NullProgressMonitor())); waitForIndexer(project);
pdom.acquireReadLock(); pdom.acquireReadLock();
performAssertions(file); performAssertions(file);
} }

View file

@ -58,7 +58,7 @@ public class PDOMCBugsTest extends BaseTestCase {
IFile file = TestSourceReader.createFile(cproject.getProject(), new Path("header.h"), testData[0].toString()); IFile file = TestSourceReader.createFile(cproject.getProject(), new Path("header.h"), testData[0].toString());
CCorePlugin.getIndexManager().setIndexerId(cproject, IPDOMManager.ID_FAST_INDEXER); CCorePlugin.getIndexManager().setIndexerId(cproject, IPDOMManager.ID_FAST_INDEXER);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(360000, new NullProgressMonitor())); waitForIndexer(cproject);
pdom= (PDOM) CCoreInternals.getPDOMManager().getPDOM(cproject); pdom= (PDOM) CCoreInternals.getPDOMManager().getPDOM(cproject);
super.setUp(); super.setUp();

View file

@ -58,7 +58,7 @@ public class PDOMCPPBugsTest extends BaseTestCase {
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
cproject= CProjectHelper.createCCProject("PDOMBugsTest"+System.currentTimeMillis(), "bin", IPDOMManager.ID_FAST_INDEXER); cproject= CProjectHelper.createCCProject("PDOMBugsTest"+System.currentTimeMillis(), "bin", IPDOMManager.ID_FAST_INDEXER);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(8000, npm())); waitForIndexer(cproject);
} }
@Override @Override
@ -122,7 +122,7 @@ public class PDOMCPPBugsTest extends BaseTestCase {
assertFalse("Project pdom ID equals export PDOM id", id2.equals(id)); assertFalse("Project pdom ID equals export PDOM id", id2.equals(id));
pdomManager.reindex(cproject); pdomManager.reindex(cproject);
assertTrue(pdomManager.joinIndexer(4000, new NullProgressMonitor())); waitForIndexer(cproject);
String id3= pdom.getProperty(IIndexFragment.PROPERTY_FRAGMENT_ID); String id3= pdom.getProperty(IIndexFragment.PROPERTY_FRAGMENT_ID);
assertNotNull("Exported pdom ID is null after project reindex", id3); assertNotNull("Exported pdom ID is null after project reindex", id3);
@ -217,7 +217,7 @@ public class PDOMCPPBugsTest extends BaseTestCase {
IndexerPreferences.set(project, IndexerPreferences.KEY_INDEXER_ID, IPDOMManager.ID_FAST_INDEXER); IndexerPreferences.set(project, IndexerPreferences.KEY_INDEXER_ID, IPDOMManager.ID_FAST_INDEXER);
CCorePlugin.getIndexManager().reindex(cproject); CCorePlugin.getIndexManager().reindex(cproject);
CCorePlugin.getIndexManager().joinIndexer(10000, npm()); waitForIndexer(cproject);
final PDOM pdom= (PDOM) CCoreInternals.getPDOMManager().getPDOM(cproject); final PDOM pdom= (PDOM) CCoreInternals.getPDOMManager().getPDOM(cproject);
pdom.acquireReadLock(); pdom.acquireReadLock();

View file

@ -57,7 +57,7 @@ public class PDOMProviderTests extends PDOMTestBase {
{ {
ICProject cproject= CProjectHelper.createCCProject("foo" + System.currentTimeMillis(), null, IPDOMManager.ID_FAST_INDEXER); ICProject cproject= CProjectHelper.createCCProject("foo" + System.currentTimeMillis(), null, IPDOMManager.ID_FAST_INDEXER);
TestSourceReader.createFile(cproject.getProject(), new Path("/this.h"), "class A {};\n\n"); TestSourceReader.createFile(cproject.getProject(), new Path("/this.h"), "class A {};\n\n");
CCorePlugin.getIndexManager().joinIndexer(INDEXER_TIMEOUT_SEC * 1000, npm()); waitForIndexer(cproject);
IIndex index= CCorePlugin.getIndexManager().getIndex(cproject, A_FRAGMENT_OPTIONS); IIndex index= CCorePlugin.getIndexManager().getIndex(cproject, A_FRAGMENT_OPTIONS);
index.acquireReadLock(); index.acquireReadLock();
@ -78,7 +78,7 @@ public class PDOMProviderTests extends PDOMTestBase {
final URI baseURI= new File("c:/ExternalSDK/").toURI(); final URI baseURI= new File("c:/ExternalSDK/").toURI();
final ICProject cproject2= CProjectHelper.createCCProject("bar" + System.currentTimeMillis(), null, IPDOMManager.ID_FAST_INDEXER); final ICProject cproject2= CProjectHelper.createCCProject("bar" + System.currentTimeMillis(), null, IPDOMManager.ID_FAST_INDEXER);
TestSourceReader.createFile(cproject2.getProject(), new Path("/source.cpp"), "namespace X { class A {}; }\n\n"); TestSourceReader.createFile(cproject2.getProject(), new Path("/source.cpp"), "namespace X { class A {}; }\n\n");
CCorePlugin.getIndexManager().joinIndexer(INDEXER_TIMEOUT_SEC * 1000, npm()); waitForIndexer(cproject2);
IndexProviderManager ipm= CCoreInternals.getPDOMManager().getIndexProviderManager(); IndexProviderManager ipm= CCoreInternals.getPDOMManager().getIndexProviderManager();
ipm.addIndexProvider(new ReadOnlyPDOMProviderBridge( ipm.addIndexProvider(new ReadOnlyPDOMProviderBridge(
@ -129,7 +129,7 @@ public class PDOMProviderTests extends PDOMTestBase {
{ {
ICProject cproject= CProjectHelper.createCCProject("foo" + System.currentTimeMillis(), null, IPDOMManager.ID_FAST_INDEXER); ICProject cproject= CProjectHelper.createCCProject("foo" + System.currentTimeMillis(), null, IPDOMManager.ID_FAST_INDEXER);
TestSourceReader.createFile(cproject.getProject(), new Path("/this.h"), "class A {};\n\n"); TestSourceReader.createFile(cproject.getProject(), new Path("/this.h"), "class A {};\n\n");
CCorePlugin.getIndexManager().joinIndexer(INDEXER_TIMEOUT_SEC * 1000, npm()); waitForIndexer(cproject);
IIndex index= CCorePlugin.getIndexManager().getIndex(cproject, A_FRAGMENT_OPTIONS); IIndex index= CCorePlugin.getIndexManager().getIndex(cproject, A_FRAGMENT_OPTIONS);
index.acquireReadLock(); index.acquireReadLock();
@ -149,12 +149,12 @@ public class PDOMProviderTests extends PDOMTestBase {
final ICProject cproject3= CProjectHelper.createCCProject("bar" + System.currentTimeMillis(), null, IPDOMManager.ID_FAST_INDEXER); final ICProject cproject3= CProjectHelper.createCCProject("bar" + System.currentTimeMillis(), null, IPDOMManager.ID_FAST_INDEXER);
TestSourceReader.createFile(cproject3.getProject(), new Path("/source.cpp"), "namespace Y { class A {}; }\n\n"); TestSourceReader.createFile(cproject3.getProject(), new Path("/source.cpp"), "namespace Y { class A {}; }\n\n");
CCorePlugin.getIndexManager().joinIndexer(INDEXER_TIMEOUT_SEC * 1000, npm()); waitForIndexer(cproject3);
final URI baseURI= new File("c:/ExternalSDK/").toURI(); final URI baseURI= new File("c:/ExternalSDK/").toURI();
final ICProject cproject2= CProjectHelper.createCCProject("baz" + System.currentTimeMillis(), null, IPDOMManager.ID_FAST_INDEXER); final ICProject cproject2= CProjectHelper.createCCProject("baz" + System.currentTimeMillis(), null, IPDOMManager.ID_FAST_INDEXER);
TestSourceReader.createFile(cproject2.getProject(), new Path("/source.cpp"), "namespace X { class A {}; }\n\n"); TestSourceReader.createFile(cproject2.getProject(), new Path("/source.cpp"), "namespace X { class A {}; }\n\n");
CCorePlugin.getIndexManager().joinIndexer(INDEXER_TIMEOUT_SEC * 1000, npm()); waitForIndexer(cproject2);
IndexProviderManager ipm= CCoreInternals.getPDOMManager().getIndexProviderManager(); IndexProviderManager ipm= CCoreInternals.getPDOMManager().getIndexProviderManager();
ipm.addIndexProvider(new ReadOnlyPDOMProviderBridge( ipm.addIndexProvider(new ReadOnlyPDOMProviderBridge(
@ -247,7 +247,7 @@ public class PDOMProviderTests extends PDOMTestBase {
{ {
ICProject cproject= CProjectHelper.createCCProject("foo" + System.currentTimeMillis(), null, IPDOMManager.ID_FAST_INDEXER); ICProject cproject= CProjectHelper.createCCProject("foo" + System.currentTimeMillis(), null, IPDOMManager.ID_FAST_INDEXER);
TestSourceReader.createFile(cproject.getProject(), new Path("/this.h"), "class A {};\n\n"); TestSourceReader.createFile(cproject.getProject(), new Path("/this.h"), "class A {};\n\n");
CCorePlugin.getIndexManager().joinIndexer(INDEXER_TIMEOUT_SEC * 1000, npm()); waitForIndexer(cproject);
ResourceContainerRelativeLocationConverter cvr= new ResourceContainerRelativeLocationConverter(cproject.getProject()); ResourceContainerRelativeLocationConverter cvr= new ResourceContainerRelativeLocationConverter(cproject.getProject());
CCoreInternals.getPDOMManager().exportProjectPDOM(cproject, tempPDOM, cvr); CCoreInternals.getPDOMManager().exportProjectPDOM(cproject, tempPDOM, cvr);
CProjectHelper.delete(cproject); CProjectHelper.delete(cproject);
@ -266,7 +266,7 @@ public class PDOMProviderTests extends PDOMTestBase {
final URI baseURI= new File("c:/ExternalSDK/").toURI(); final URI baseURI= new File("c:/ExternalSDK/").toURI();
final ICProject cproject2= CProjectHelper.createCCProject("baz" + System.currentTimeMillis(), null, IPDOMManager.ID_FAST_INDEXER); final ICProject cproject2= CProjectHelper.createCCProject("baz" + System.currentTimeMillis(), null, IPDOMManager.ID_FAST_INDEXER);
TestSourceReader.createFile(cproject2.getProject(), new Path("/source.cpp"), "namespace X { class A {}; }\n\n"); TestSourceReader.createFile(cproject2.getProject(), new Path("/source.cpp"), "namespace X { class A {}; }\n\n");
CCorePlugin.getIndexManager().joinIndexer(INDEXER_TIMEOUT_SEC * 1000, npm()); waitForIndexer(cproject2);
IndexProviderManager ipm= CCoreInternals.getPDOMManager().getIndexProviderManager(); IndexProviderManager ipm= CCoreInternals.getPDOMManager().getIndexProviderManager();
ipm.addIndexProvider(new ReadOnlyPDOMProviderBridge( ipm.addIndexProvider(new ReadOnlyPDOMProviderBridge(

View file

@ -18,13 +18,12 @@ package org.eclipse.cdt.core.tests;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.InputStream; import java.io.InputStream;
import junit.framework.TestCase;
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.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.FileManager; import org.eclipse.cdt.core.testplugin.FileManager;
import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProject;
@ -38,7 +37,7 @@ import org.eclipse.core.runtime.NullProgressMonitor;
/** /**
* @author aniefer * @author aniefer
*/ */
abstract public class BaseTestFramework extends TestCase { abstract public class BaseTestFramework extends BaseTestCase {
static protected NullProgressMonitor monitor; static protected NullProgressMonitor monitor;
static protected IWorkspace workspace; static protected IWorkspace workspace;
static protected IProject project; static protected IProject project;
@ -109,13 +108,13 @@ abstract public class BaseTestFramework extends TestCase {
return; return;
IResource [] members = project.members(); IResource [] members = project.members();
for (int i = 0; i < members.length; i++) { for (IResource member : members) {
if (members[i].getName().equals(".project") || members[i].getName().equals(".cproject")) //$NON-NLS-1$ //$NON-NLS-2$ if (member.getName().equals(".project") || member.getName().equals(".cproject")) //$NON-NLS-1$ //$NON-NLS-2$
continue; continue;
if (members[i].getName().equals(".settings")) if (member.getName().equals(".settings"))
continue; continue;
try { try {
members[i].delete(false, monitor); member.delete(false, monitor);
} catch (Throwable e) { } catch (Throwable e) {
/*boo*/ /*boo*/
} }

View file

@ -27,6 +27,7 @@ import junit.framework.TestResult;
import junit.framework.TestSuite; import junit.framework.TestSuite;
import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.index.IIndex;
import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.model.CoreModel;
import org.eclipse.cdt.core.model.ElementChangedEvent; import org.eclipse.cdt.core.model.ElementChangedEvent;
import org.eclipse.cdt.core.model.ICProject; import org.eclipse.cdt.core.model.ICProject;
@ -37,12 +38,15 @@ import org.eclipse.cdt.internal.core.CCoreInternals;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTNameBase; 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.CModelListener;
import org.eclipse.cdt.internal.core.pdom.PDOMManager; 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.IResourceStatus;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.ILogListener; import org.eclipse.core.runtime.ILogListener;
import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.MultiStatus; import org.eclipse.core.runtime.MultiStatus;
import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.jobs.Job;
public class BaseTestCase extends TestCase { public class BaseTestCase extends TestCase {
protected static final int INDEXER_TIMEOUT_SEC = 10; protected static final int INDEXER_TIMEOUT_SEC = 10;
@ -247,7 +251,7 @@ public class BaseTestCase extends TestCase {
* is a very basic means of doing that. * is a very basic means of doing that.
*/ */
static protected class ModelJoiner implements IElementChangedListener { static protected class ModelJoiner implements IElementChangedListener {
private boolean[] changed= new boolean[1]; private final boolean[] changed= new boolean[1];
public ModelJoiner() { public ModelJoiner() {
CoreModel.getDefault().addElementChangedListener(this); CoreModel.getDefault().addElementChangedListener(this);
@ -290,6 +294,8 @@ public class BaseTestCase extends TestCase {
} }
public static void waitForIndexer(ICProject project) throws InterruptedException { public static void waitForIndexer(ICProject project) throws InterruptedException {
Job.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_REFRESH, null);
final PDOMManager indexManager = CCoreInternals.getPDOMManager(); final PDOMManager indexManager = CCoreInternals.getPDOMManager();
assertTrue(indexManager.joinIndexer(INDEXER_TIMEOUT_SEC * 1000, npm())); assertTrue(indexManager.joinIndexer(INDEXER_TIMEOUT_SEC * 1000, npm()));
long waitms= 1; long waitms= 1;
@ -297,6 +303,11 @@ public class BaseTestCase extends TestCase {
Thread.sleep(waitms); Thread.sleep(waitms);
waitms *= 2; waitms *= 2;
} }
assertTrue(indexManager.isProjectRegistered(project));
assertTrue(indexManager.joinIndexer(INDEXER_TIMEOUT_SEC * 1000, npm())); assertTrue(indexManager.joinIndexer(INDEXER_TIMEOUT_SEC * 1000, npm()));
} }
public static void waitUntilFileIsIndexed(IIndex index, IFile file) throws Exception {
TestSourceReader.waitUntilFileIsIndexed(index, file, INDEXER_TIMEOUT_SEC * 1000);
}
} }

View file

@ -327,10 +327,12 @@ public class TestSourceReader {
try { try {
IIndexFile[] files= index.getFiles(ILinkage.CPP_LINKAGE_ID, indexFileLocation); IIndexFile[] files= index.getFiles(ILinkage.CPP_LINKAGE_ID, indexFileLocation);
if (files.length > 0 && areAllFilesNotOlderThan(files, fileTimestamp)) { if (files.length > 0 && areAllFilesNotOlderThan(files, fileTimestamp)) {
Assert.assertTrue(CCorePlugin.getIndexManager().joinIndexer(timeLeft, new NullProgressMonitor()));
return; return;
} }
files= index.getFiles(ILinkage.C_LINKAGE_ID, indexFileLocation); files= index.getFiles(ILinkage.C_LINKAGE_ID, indexFileLocation);
if (files.length > 0 && areAllFilesNotOlderThan(files, fileTimestamp)) { if (files.length > 0 && areAllFilesNotOlderThan(files, fileTimestamp)) {
Assert.assertTrue(CCorePlugin.getIndexManager().joinIndexer(timeLeft, new NullProgressMonitor()));
return; return;
} }
} finally { } finally {

View file

@ -59,7 +59,7 @@ public class BasicCallHierarchyTest extends CallHierarchyBaseTest {
private void doTestFunctions(String filename) throws IOException, Exception, PartInitException { private void doTestFunctions(String filename) throws IOException, Exception, PartInitException {
String content = readTaggedComment("testFunctions"); String content = readTaggedComment("testFunctions");
IFile file= createFile(getProject(), filename, content); IFile file= createFile(getProject(), filename, content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
editor.selectAndReveal(content.indexOf("proto"), 5); editor.selectAndReveal(content.indexOf("proto"), 5);
@ -103,7 +103,7 @@ public class BasicCallHierarchyTest extends CallHierarchyBaseTest {
private void doTestVariables(String filename) throws Exception { private void doTestVariables(String filename) throws Exception {
String content = readTaggedComment("testVariables"); String content = readTaggedComment("testVariables");
IFile file= createFile(getProject(), filename, content); IFile file= createFile(getProject(), filename, content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
editor.selectAndReveal(content.indexOf("extern_var"), 0); editor.selectAndReveal(content.indexOf("extern_var"), 0);
@ -158,7 +158,7 @@ public class BasicCallHierarchyTest extends CallHierarchyBaseTest {
private void doTestEnumerator(String filename, String contentTag) throws Exception { private void doTestEnumerator(String filename, String contentTag) throws Exception {
String content = readTaggedComment(contentTag); String content = readTaggedComment(contentTag);
IFile file= createFile(getProject(), filename, content); IFile file= createFile(getProject(), filename, content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
editor.selectAndReveal(content.indexOf("enumerator"), 0); editor.selectAndReveal(content.indexOf("enumerator"), 0);
@ -213,7 +213,7 @@ public class BasicCallHierarchyTest extends CallHierarchyBaseTest {
public void testStructMembersC() throws Exception { public void testStructMembersC() throws Exception {
String content = readTaggedComment("testStructMembers"); String content = readTaggedComment("testStructMembers");
IFile file= createFile(getProject(), "struct_member.c", content); IFile file= createFile(getProject(), "struct_member.c", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
editor.selectAndReveal(content.indexOf("mem1"), 0); editor.selectAndReveal(content.indexOf("mem1"), 0);
@ -259,7 +259,7 @@ public class BasicCallHierarchyTest extends CallHierarchyBaseTest {
public void testStructMembersCpp() throws Exception { public void testStructMembersCpp() throws Exception {
String content = readTaggedComment("testStructMembers"); String content = readTaggedComment("testStructMembers");
IFile file= createFile(getProject(), "struct_member.cpp", content); IFile file= createFile(getProject(), "struct_member.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
editor.selectAndReveal(content.indexOf("mem1"), 0); editor.selectAndReveal(content.indexOf("mem1"), 0);
@ -305,7 +305,7 @@ public class BasicCallHierarchyTest extends CallHierarchyBaseTest {
public void testAnonymousStructMembersC_156671() throws Exception { public void testAnonymousStructMembersC_156671() throws Exception {
String content = readTaggedComment("testStructMembers"); String content = readTaggedComment("testStructMembers");
IFile file= createFile(getProject(), "anon_struct_member.c", content); IFile file= createFile(getProject(), "anon_struct_member.c", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
editor.selectAndReveal(content.indexOf("mem3"), 0); editor.selectAndReveal(content.indexOf("mem3"), 0);
@ -333,7 +333,7 @@ public class BasicCallHierarchyTest extends CallHierarchyBaseTest {
public void testAnonymousStructMembersCpp_156671() throws Exception { public void testAnonymousStructMembersCpp_156671() throws Exception {
String content = readTaggedComment("testStructMembers"); String content = readTaggedComment("testStructMembers");
IFile file= createFile(getProject(), "anon_struct_member.cpp", content); IFile file= createFile(getProject(), "anon_struct_member.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
editor.selectAndReveal(content.indexOf("mem3"), 0); editor.selectAndReveal(content.indexOf("mem3"), 0);
@ -395,7 +395,7 @@ public class BasicCallHierarchyTest extends CallHierarchyBaseTest {
public void testUnionMembersC() throws Exception { public void testUnionMembersC() throws Exception {
String content = readTaggedComment("testUnionMembers"); String content = readTaggedComment("testUnionMembers");
IFile file= createFile(getProject(), "union_member.c", content); IFile file= createFile(getProject(), "union_member.c", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
editor.selectAndReveal(content.indexOf("mem1"), 0); editor.selectAndReveal(content.indexOf("mem1"), 0);
@ -441,7 +441,7 @@ public class BasicCallHierarchyTest extends CallHierarchyBaseTest {
public void testUnionMembersCpp() throws Exception { public void testUnionMembersCpp() throws Exception {
String content = readTaggedComment("testUnionMembers"); String content = readTaggedComment("testUnionMembers");
IFile file= createFile(getProject(), "union_member.cpp", content); IFile file= createFile(getProject(), "union_member.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
editor.selectAndReveal(content.indexOf("mem1"), 0); editor.selectAndReveal(content.indexOf("mem1"), 0);
@ -487,7 +487,7 @@ public class BasicCallHierarchyTest extends CallHierarchyBaseTest {
public void testAnonymousUnionMembersC_156671() throws Exception { public void testAnonymousUnionMembersC_156671() throws Exception {
String content = readTaggedComment("testUnionMembers"); String content = readTaggedComment("testUnionMembers");
IFile file= createFile(getProject(), "anon_union_member.c", content); IFile file= createFile(getProject(), "anon_union_member.c", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
editor.selectAndReveal(content.indexOf("mem3"), 0); editor.selectAndReveal(content.indexOf("mem3"), 0);
@ -515,7 +515,7 @@ public class BasicCallHierarchyTest extends CallHierarchyBaseTest {
public void testAnonymousUnionMembersCpp_156671() throws Exception { public void testAnonymousUnionMembersCpp_156671() throws Exception {
String content = readTaggedComment("testUnionMembers"); String content = readTaggedComment("testUnionMembers");
IFile file= createFile(getProject(), "anon_union_member.cpp", content); IFile file= createFile(getProject(), "anon_union_member.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
editor.selectAndReveal(content.indexOf("mem3"), 0); editor.selectAndReveal(content.indexOf("mem3"), 0);
@ -556,8 +556,8 @@ public class BasicCallHierarchyTest extends CallHierarchyBaseTest {
String content1= content2 + sbs[1].toString(); String content1= content2 + sbs[1].toString();
IFile file1= createFile(getProject(), "staticFunc1.c", content1); IFile file1= createFile(getProject(), "staticFunc1.c", content1);
IFile file2= createFile(getProject(), "staticFunc2.c", content2); IFile file2= createFile(getProject(), "staticFunc2.c", content2);
waitForIndexer(fIndex, file1, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file1);
waitForIndexer(fIndex, file2, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file2);
TreeItem i1, i2, i3, i4, i5, i6; TreeItem i1, i2, i3, i4, i5, i6;
Tree tree; Tree tree;
@ -625,8 +625,8 @@ public class BasicCallHierarchyTest extends CallHierarchyBaseTest {
String content1= content2 + sbs[1].toString(); String content1= content2 + sbs[1].toString();
IFile file1= createFile(getProject(), "staticFunc1.cpp", content1); IFile file1= createFile(getProject(), "staticFunc1.cpp", content1);
IFile file2= createFile(getProject(), "staticFunc2.cpp", content2); IFile file2= createFile(getProject(), "staticFunc2.cpp", content2);
waitForIndexer(fIndex, file1, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file1);
waitForIndexer(fIndex, file2, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file2);
TreeItem i0, i1, i2, i3, i4, i5, i6; TreeItem i0, i1, i2, i3, i4, i5, i6;
Tree tree; Tree tree;
@ -701,7 +701,7 @@ public class BasicCallHierarchyTest extends CallHierarchyBaseTest {
try { try {
String content = readTaggedComment("testFunctionsWithParams"); String content = readTaggedComment("testFunctionsWithParams");
IFile file= createFile(getProject(), filename, content); IFile file= createFile(getProject(), filename, content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
editor.selectAndReveal(content.indexOf("proto"), 5); editor.selectAndReveal(content.indexOf("proto"), 5);

View file

@ -51,7 +51,7 @@ public class BasicCppCallHierarchyTest extends CallHierarchyBaseTest {
public void testMethods() throws Exception { public void testMethods() throws Exception {
String content = readTaggedComment("testMethods"); String content = readTaggedComment("testMethods");
IFile file= createFile(getProject(), "testMethods.cpp", content); IFile file= createFile(getProject(), "testMethods.cpp", content);
waitForIndexer(fIndex, file, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
editor.selectAndReveal(content.indexOf("method"), 2); editor.selectAndReveal(content.indexOf("method"), 2);
@ -134,7 +134,7 @@ public class BasicCppCallHierarchyTest extends CallHierarchyBaseTest {
public void testStaticMethods() throws Exception { public void testStaticMethods() throws Exception {
String content = readTaggedComment("testStaticMethods"); String content = readTaggedComment("testStaticMethods");
IFile file= createFile(getProject(), "testStaticMethods.cpp", content); IFile file= createFile(getProject(), "testStaticMethods.cpp", content);
waitForIndexer(fIndex, file, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
editor.selectAndReveal(content.indexOf("method"), 2); editor.selectAndReveal(content.indexOf("method"), 2);
@ -222,7 +222,7 @@ public class BasicCppCallHierarchyTest extends CallHierarchyBaseTest {
public void testFields() throws Exception { public void testFields() throws Exception {
String content = readTaggedComment("testFields"); String content = readTaggedComment("testFields");
IFile file= createFile(getProject(), "testFields.cpp", content); IFile file= createFile(getProject(), "testFields.cpp", content);
waitForIndexer(fIndex, file, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
editor.selectAndReveal(content.indexOf("field"), 2); editor.selectAndReveal(content.indexOf("field"), 2);
@ -296,7 +296,7 @@ public class BasicCppCallHierarchyTest extends CallHierarchyBaseTest {
public void testAutomaticConstructor_156668() throws Exception { public void testAutomaticConstructor_156668() throws Exception {
String content = readTaggedComment("testAutomaticConstructor"); String content = readTaggedComment("testAutomaticConstructor");
IFile file= createFile(getProject(), "testConstructor.cpp", content); IFile file= createFile(getProject(), "testConstructor.cpp", content);
waitForIndexer(fIndex, file, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
editor.selectAndReveal(content.indexOf("MyClass()"), 2); editor.selectAndReveal(content.indexOf("MyClass()"), 2);
@ -309,7 +309,7 @@ public class BasicCppCallHierarchyTest extends CallHierarchyBaseTest {
public void _testAutomaticDestructor_156668() throws Exception { public void _testAutomaticDestructor_156668() throws Exception {
String content = readTaggedComment("testAutomaticConstructor"); String content = readTaggedComment("testAutomaticConstructor");
IFile file= createFile(getProject(), "testConstructor.cpp", content); IFile file= createFile(getProject(), "testConstructor.cpp", content);
waitForIndexer(fIndex, file, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
openCallHierarchy(editor); openCallHierarchy(editor);
Tree tree = getCHTreeViewer().getTree(); Tree tree = getCHTreeViewer().getTree();
@ -334,7 +334,7 @@ public class BasicCppCallHierarchyTest extends CallHierarchyBaseTest {
public void testConstructor() throws Exception { public void testConstructor() throws Exception {
String content = readTaggedComment("testConstructor"); String content = readTaggedComment("testConstructor");
IFile file= createFile(getProject(), "testConstructor.cpp", content); IFile file= createFile(getProject(), "testConstructor.cpp", content);
waitForIndexer(fIndex, file, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
editor.selectAndReveal(content.indexOf("MyClass()"), 2); editor.selectAndReveal(content.indexOf("MyClass()"), 2);
@ -347,7 +347,7 @@ public class BasicCppCallHierarchyTest extends CallHierarchyBaseTest {
public void testDestructor_156669() throws Exception { public void testDestructor_156669() throws Exception {
String content = readTaggedComment("testConstructor"); String content = readTaggedComment("testConstructor");
IFile file= createFile(getProject(), "testConstructor.cpp", content); IFile file= createFile(getProject(), "testConstructor.cpp", content);
waitForIndexer(fIndex, file, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
editor.selectAndReveal(content.indexOf("~MyClass()"), 2); editor.selectAndReveal(content.indexOf("~MyClass()"), 2);
@ -382,7 +382,7 @@ public class BasicCppCallHierarchyTest extends CallHierarchyBaseTest {
public void testNamespace() throws Exception { public void testNamespace() throws Exception {
String content = readTaggedComment("testNamespace"); String content = readTaggedComment("testNamespace");
IFile file= createFile(getProject(), "testNamespace.cpp", content); IFile file= createFile(getProject(), "testNamespace.cpp", content);
waitForIndexer(fIndex, file, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
editor.selectAndReveal(content.indexOf("var"), 2); editor.selectAndReveal(content.indexOf("var"), 2);
@ -439,7 +439,7 @@ public class BasicCppCallHierarchyTest extends CallHierarchyBaseTest {
public void testNamespacePart2_156519() throws Exception { public void testNamespacePart2_156519() throws Exception {
String content = readTaggedComment("testNamespace"); String content = readTaggedComment("testNamespace");
IFile file= createFile(getProject(), "testNamespace.cpp", content); IFile file= createFile(getProject(), "testNamespace.cpp", content);
waitForIndexer(fIndex, file, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
editor.selectAndReveal(content.indexOf("var; // r1"), 2); editor.selectAndReveal(content.indexOf("var; // r1"), 2);

View file

@ -46,7 +46,7 @@ public class CallHierarchyAcrossProjectsTest extends CallHierarchyBaseTest {
fCProject2= CProjectHelper.createCCProject("__chTest_2__", "bin", IPDOMManager.ID_NO_INDEXER); fCProject2= CProjectHelper.createCCProject("__chTest_2__", "bin", IPDOMManager.ID_NO_INDEXER);
CCorePlugin.getIndexManager().setIndexerId(fCProject2, IPDOMManager.ID_FAST_INDEXER); CCorePlugin.getIndexManager().setIndexerId(fCProject2, IPDOMManager.ID_FAST_INDEXER);
CCorePlugin.getIndexManager().joinIndexer(INDEXER_WAIT_TIME, npm()); waitForIndexer(fCProject2);
fIndex= CCorePlugin.getIndexManager().getIndex(new ICProject[] {fCProject, fCProject2}); fIndex= CCorePlugin.getIndexManager().getIndex(new ICProject[] {fCProject, fCProject2});
TestScannerProvider.sIncludes= new String[]{fCProject.getProject().getLocation().toOSString(), fCProject2.getProject().getLocation().toOSString()}; TestScannerProvider.sIncludes= new String[]{fCProject.getProject().getLocation().toOSString(), fCProject2.getProject().getLocation().toOSString()};
} }
@ -86,9 +86,9 @@ public class CallHierarchyAcrossProjectsTest extends CallHierarchyBaseTest {
String header= content[0].toString(); String header= content[0].toString();
String source = content[1].toString(); String source = content[1].toString();
IFile headerFile= createFile(fCProject.getProject(), "testMethods.h", header); IFile headerFile= createFile(fCProject.getProject(), "testMethods.h", header);
waitForIndexer(fIndex, headerFile, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, headerFile);
IFile sourceFile= createFile(fCProject2.getProject(), "testMethods.cpp", source); IFile sourceFile= createFile(fCProject2.getProject(), "testMethods.cpp", source);
waitForIndexer(fIndex, sourceFile, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, sourceFile);
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
CEditor editor= openEditor(sourceFile); CEditor editor= openEditor(sourceFile);
@ -164,7 +164,7 @@ public class CallHierarchyAcrossProjectsTest extends CallHierarchyBaseTest {
IFile sourceFile2= createFile(fCProject2.getProject(), "testMethods2.cpp", source2); IFile sourceFile2= createFile(fCProject2.getProject(), "testMethods2.cpp", source2);
CEditor editor= openEditor(sourceFile1); CEditor editor= openEditor(sourceFile1);
waitForIndexer(fIndex, sourceFile2, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, sourceFile2);
editor.selectAndReveal(source1.indexOf("method3"), 2); editor.selectAndReveal(source1.indexOf("method3"), 2);
openCallHierarchy(editor); openCallHierarchy(editor);
@ -214,8 +214,8 @@ public class CallHierarchyAcrossProjectsTest extends CallHierarchyBaseTest {
IFile sourceFile2= createFile(getProject(), "testMethods2.cpp", source2); IFile sourceFile2= createFile(getProject(), "testMethods2.cpp", source2);
CEditor editor= openEditor(sourceFile1); CEditor editor= openEditor(sourceFile1);
waitForIndexer(fIndex, sourceFile1, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, sourceFile1);
waitForIndexer(fIndex, sourceFile2, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, sourceFile2);
editor.selectAndReveal(source1.indexOf("method3"), 2); editor.selectAndReveal(source1.indexOf("method3"), 2);
openCallHierarchy(editor); openCallHierarchy(editor);
@ -275,7 +275,7 @@ public class CallHierarchyAcrossProjectsTest extends CallHierarchyBaseTest {
IFile sourceFile2= createFile(getProject(), "testMethods2.cpp", source2); IFile sourceFile2= createFile(getProject(), "testMethods2.cpp", source2);
CEditor editor= openEditor(sourceFile2); CEditor editor= openEditor(sourceFile2);
waitForIndexer(fIndex, sourceFile2, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, sourceFile2);
editor.selectAndReveal(source2.indexOf("main"), 2); editor.selectAndReveal(source2.indexOf("main"), 2);
openCallHierarchy(editor, false); openCallHierarchy(editor, false);

View file

@ -53,7 +53,7 @@ public class CallHierarchyBaseTest extends BaseUITestCase {
CallHierarchyUI.setIsJUnitTest(true); CallHierarchyUI.setIsJUnitTest(true);
String prjName= "chTest"+sProjectCounter++; String prjName= "chTest"+sProjectCounter++;
fCProject= CProjectHelper.createCCProject(prjName, "bin", IPDOMManager.ID_FAST_INDEXER); fCProject= CProjectHelper.createCCProject(prjName, "bin", IPDOMManager.ID_FAST_INDEXER);
CCorePlugin.getIndexManager().joinIndexer(INDEXER_WAIT_TIME, npm()); waitForIndexer(fCProject);
fIndex= CCorePlugin.getIndexManager().getIndex(fCProject); fIndex= CCorePlugin.getIndexManager().getIndex(fCProject);
IWorkbenchPage page= PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); IWorkbenchPage page= PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IViewReference[] refs= page.getViewReferences(); IViewReference[] refs= page.getViewReferences();

View file

@ -57,7 +57,7 @@ public class CallHierarchyBugs extends CallHierarchyBaseTest {
StringBuilder[] contents = getContentsForTest(2); StringBuilder[] contents = getContentsForTest(2);
IFile file1= createFile(getProject(), "SomeClass.h", contents[0].toString()); IFile file1= createFile(getProject(), "SomeClass.h", contents[0].toString());
IFile file2= createFile(getProject(), "SomeClass.cpp", contents[1].toString()); IFile file2= createFile(getProject(), "SomeClass.cpp", contents[1].toString());
waitForIndexer(fIndex, file2, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file2);
final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY); final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY);
final IViewPart outline= activateView(IPageLayout.ID_OUTLINE); final IViewPart outline= activateView(IPageLayout.ID_OUTLINE);
@ -98,7 +98,7 @@ public class CallHierarchyBugs extends CallHierarchyBaseTest {
StringBuilder[] contents = getContentsForTest(2); StringBuilder[] contents = getContentsForTest(2);
IFile file1= createFile(getProject(), "SomeClass.h", contents[0].toString()); IFile file1= createFile(getProject(), "SomeClass.h", contents[0].toString());
IFile file2= createFile(getProject(), "SomeClass.cpp", contents[1].toString()); IFile file2= createFile(getProject(), "SomeClass.cpp", contents[1].toString());
waitForIndexer(fIndex, file2, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file2);
final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY); final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY);
final IViewPart outline= activateView(IPageLayout.ID_OUTLINE); final IViewPart outline= activateView(IPageLayout.ID_OUTLINE);
@ -161,7 +161,7 @@ public class CallHierarchyBugs extends CallHierarchyBaseTest {
public void testPolyMorphicMethodCalls_156689() throws Exception { public void testPolyMorphicMethodCalls_156689() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "SomeClass.cpp", content); IFile file= createFile(getProject(), "SomeClass.cpp", content);
waitForIndexer(fIndex, file, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY); final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY);
final IWorkbenchWindow workbenchWindow = ch.getSite().getWorkbenchWindow(); final IWorkbenchWindow workbenchWindow = ch.getSite().getWorkbenchWindow();
@ -217,7 +217,7 @@ public class CallHierarchyBugs extends CallHierarchyBaseTest {
public void testReversePolyMorphicMethodCalls_156689() throws Exception { public void testReversePolyMorphicMethodCalls_156689() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "SomeClass.cpp", content); IFile file= createFile(getProject(), "SomeClass.cpp", content);
waitForIndexer(fIndex, file, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY); final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY);
final IWorkbenchWindow workbenchWindow = ch.getSite().getWorkbenchWindow(); final IWorkbenchWindow workbenchWindow = ch.getSite().getWorkbenchWindow();
@ -253,7 +253,7 @@ public class CallHierarchyBugs extends CallHierarchyBaseTest {
public void testMethodInstance_Bug240599() throws Exception { public void testMethodInstance_Bug240599() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "CSome.cpp", content); IFile file= createFile(getProject(), "CSome.cpp", content);
waitForIndexer(fIndex, file, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY); final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY);
final IWorkbenchWindow workbenchWindow = ch.getSite().getWorkbenchWindow(); final IWorkbenchWindow workbenchWindow = ch.getSite().getWorkbenchWindow();
@ -293,7 +293,7 @@ public class CallHierarchyBugs extends CallHierarchyBaseTest {
public void testMultiplePolyMorphicMethodCalls_244987() throws Exception { public void testMultiplePolyMorphicMethodCalls_244987() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "SomeClass244987.cpp", content); IFile file= createFile(getProject(), "SomeClass244987.cpp", content);
waitForIndexer(fIndex, file, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY); final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY);
final IWorkbenchWindow workbenchWindow = ch.getSite().getWorkbenchWindow(); final IWorkbenchWindow workbenchWindow = ch.getSite().getWorkbenchWindow();
@ -335,7 +335,7 @@ public class CallHierarchyBugs extends CallHierarchyBaseTest {
public void testMacrosHidingCall_249801() throws Exception { public void testMacrosHidingCall_249801() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "file249801.cpp", content); IFile file= createFile(getProject(), "file249801.cpp", content);
waitForIndexer(fIndex, file, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY); final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY);
@ -370,7 +370,7 @@ public class CallHierarchyBugs extends CallHierarchyBaseTest {
IFile header= createFile(getProject(), "260262.h", hcontent); IFile header= createFile(getProject(), "260262.h", hcontent);
IFile f1= createFile(getProject(), "260262.c", content_full); IFile f1= createFile(getProject(), "260262.c", content_full);
IFile f2= createFile(getProject(), "260262.cpp", content_inc); IFile f2= createFile(getProject(), "260262.cpp", content_inc);
waitForIndexer(fIndex, f2, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, f2);
final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY); final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY);
@ -400,7 +400,7 @@ public class CallHierarchyBugs extends CallHierarchyBaseTest {
IFile header= createFile(getProject(), "260262.h", hcontent); IFile header= createFile(getProject(), "260262.h", hcontent);
IFile f1= createFile(getProject(), "260262.c", content_full); IFile f1= createFile(getProject(), "260262.c", content_full);
IFile f2= createFile(getProject(), "260262.cpp", content_inc); IFile f2= createFile(getProject(), "260262.cpp", content_inc);
waitForIndexer(fIndex, f2, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, f2);
final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY); final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY);
@ -428,7 +428,7 @@ public class CallHierarchyBugs extends CallHierarchyBaseTest {
final StringBuilder[] contents = getContentsForTest(1); final StringBuilder[] contents = getContentsForTest(1);
final String content = contents[0].toString(); final String content = contents[0].toString();
IFile f2= createFile(getProject(), "testUnnamedNamespace_283679.cpp", content); IFile f2= createFile(getProject(), "testUnnamedNamespace_283679.cpp", content);
waitForIndexer(fIndex, f2, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, f2);
final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY); final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY);
@ -463,7 +463,7 @@ public class CallHierarchyBugs extends CallHierarchyBaseTest {
final StringBuilder[] contents = getContentsForTest(1); final StringBuilder[] contents = getContentsForTest(1);
final String content = contents[0].toString(); final String content = contents[0].toString();
IFile f2= createFile(getProject(), "testCallsToFromVirtualMethod_246064.cpp", content); IFile f2= createFile(getProject(), "testCallsToFromVirtualMethod_246064.cpp", content);
waitForIndexer(fIndex, f2, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, f2);
final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY); final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY);
@ -491,7 +491,7 @@ public class CallHierarchyBugs extends CallHierarchyBaseTest {
public void testCallsToInstanceofSpecializedTemplate_361999() throws Exception { public void testCallsToInstanceofSpecializedTemplate_361999() throws Exception {
final String content = getAboveComment(); final String content = getAboveComment();
IFile f2= createFile(getProject(), "testCallsToInstanceofSpecializedTemplate_361999.cpp", content); IFile f2= createFile(getProject(), "testCallsToInstanceofSpecializedTemplate_361999.cpp", content);
waitForIndexer(fIndex, f2, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, f2);
final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY); final CHViewPart ch= (CHViewPart) activateView(CUIPlugin.ID_CALL_HIERARCHY);

View file

@ -19,8 +19,6 @@ import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PlatformUI; import org.eclipse.ui.PlatformUI;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.internal.ui.editor.CEditor; import org.eclipse.cdt.internal.ui.editor.CEditor;
@ -62,7 +60,7 @@ public class CppCallHierarchyTest extends CallHierarchyBaseTest {
String source = content[1].toString(); String source = content[1].toString();
IFile headerFile= createFile(getProject(), "testMethods.h", header); IFile headerFile= createFile(getProject(), "testMethods.h", header);
IFile sourceFile= createFile(getProject(), "testMethods.cpp", source); IFile sourceFile= createFile(getProject(), "testMethods.cpp", source);
waitForIndexer(fIndex, sourceFile, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, sourceFile);
CEditor editor= openEditor(sourceFile); CEditor editor= openEditor(sourceFile);
editor.selectAndReveal(source.indexOf("method"), 2); editor.selectAndReveal(source.indexOf("method"), 2);
@ -136,7 +134,7 @@ public class CppCallHierarchyTest extends CallHierarchyBaseTest {
IFile sourceFile2= createFile(getProject(), "testMethods2.cpp", source2); IFile sourceFile2= createFile(getProject(), "testMethods2.cpp", source2);
CEditor editor= openEditor(sourceFile1); CEditor editor= openEditor(sourceFile1);
waitForIndexer(fIndex, sourceFile2, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, sourceFile2);
editor.selectAndReveal(source1.indexOf("method3"), 2); editor.selectAndReveal(source1.indexOf("method3"), 2);
openCallHierarchy(editor); openCallHierarchy(editor);
@ -185,7 +183,7 @@ public class CppCallHierarchyTest extends CallHierarchyBaseTest {
IFile sourceFile1= createFile(getProject(), "testMethods1.cpp", source1); IFile sourceFile1= createFile(getProject(), "testMethods1.cpp", source1);
IFile sourceFile2= createFile(getProject(), "testMethods2.cpp", source2); IFile sourceFile2= createFile(getProject(), "testMethods2.cpp", source2);
waitForIndexer(fIndex, sourceFile2, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, sourceFile2);
CEditor editor= openEditor(sourceFile1); CEditor editor= openEditor(sourceFile1);
editor.selectAndReveal(source1.indexOf("method3"), 2); editor.selectAndReveal(source1.indexOf("method3"), 2);
@ -246,7 +244,7 @@ public class CppCallHierarchyTest extends CallHierarchyBaseTest {
IFile sourceFile2= createFile(getProject(), "testMethods2.cpp", source2); IFile sourceFile2= createFile(getProject(), "testMethods2.cpp", source2);
CEditor editor= openEditor(sourceFile2); CEditor editor= openEditor(sourceFile2);
waitForIndexer(fIndex, sourceFile2, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, sourceFile2);
editor.selectAndReveal(source2.indexOf("main"), 2); editor.selectAndReveal(source2.indexOf("main"), 2);
openCallHierarchy(editor, false); openCallHierarchy(editor, false);
@ -300,8 +298,7 @@ public class CppCallHierarchyTest extends CallHierarchyBaseTest {
IFile cFile= createFile(getProject(), "s.c", cSource); IFile cFile= createFile(getProject(), "s.c", cSource);
IFile cppFile= createFile(getProject(), "s.cpp", cppSource); IFile cppFile= createFile(getProject(), "s.cpp", cppSource);
CEditor editor= openEditor(cFile); CEditor editor= openEditor(cFile);
waitForIndexer(fIndex, cppFile, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, cppFile);
CCorePlugin.getIndexManager().joinIndexer(INDEXER_WAIT_TIME, npm());
editor.selectAndReveal(cSource.indexOf("cfunc"), 2); editor.selectAndReveal(cSource.indexOf("cfunc"), 2);
openCallHierarchy(editor); openCallHierarchy(editor);
@ -346,8 +343,7 @@ public class CppCallHierarchyTest extends CallHierarchyBaseTest {
IFile cppFile= createFile(getProject(), "s.cpp", cppSource); IFile cppFile= createFile(getProject(), "s.cpp", cppSource);
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
CEditor editor= openEditor(cFile); CEditor editor= openEditor(cFile);
waitForIndexer(fIndex, cppFile, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, cppFile);
CCorePlugin.getIndexManager().joinIndexer(INDEXER_WAIT_TIME, npm());
editor.selectAndReveal(cSource.indexOf("cfunc"), 2); editor.selectAndReveal(cSource.indexOf("cfunc"), 2);
openCallHierarchy(editor, false); openCallHierarchy(editor, false);
@ -415,8 +411,7 @@ public class CppCallHierarchyTest extends CallHierarchyBaseTest {
String source = content[0].toString(); String source = content[0].toString();
IFile file= createFile(getProject(), "testTemplates.cpp", source); IFile file= createFile(getProject(), "testTemplates.cpp", source);
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
waitForIndexer(fIndex, file, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CCorePlugin.getIndexManager().joinIndexer(INDEXER_WAIT_TIME, npm());
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
int pos= source.indexOf("f("); int pos= source.indexOf("f(");
@ -479,8 +474,7 @@ public class CppCallHierarchyTest extends CallHierarchyBaseTest {
String source = content[0].toString(); String source = content[0].toString();
IFile file= createFile(getProject(), "testClosures.cpp", source); IFile file= createFile(getProject(), "testClosures.cpp", source);
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
waitForIndexer(fIndex, file, CallHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CCorePlugin.getIndexManager().joinIndexer(INDEXER_WAIT_TIME, npm());
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
int pos= source.indexOf("a("); int pos= source.indexOf("a(");

View file

@ -33,7 +33,7 @@ public class InitializersInCallHierarchyTest extends CallHierarchyBaseTest {
public void testCIntVarInitializer() throws Exception { public void testCIntVarInitializer() throws Exception {
String content = readTaggedComment("intvar"); String content = readTaggedComment("intvar");
IFile file= createFile(getProject(), "intvar.c", content); IFile file= createFile(getProject(), "intvar.c", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor = openEditor(file); CEditor editor = openEditor(file);
editor.selectAndReveal(content.indexOf("a"), 1); editor.selectAndReveal(content.indexOf("a"), 1);

View file

@ -48,7 +48,7 @@ public class BasicIncludeBrowserTest extends IncludeBrowserBaseTest {
IFile user= createFile(project, "user.h", ""); IFile user= createFile(project, "user.h", "");
IFile system= createFile(project, "system.h", ""); IFile system= createFile(project, "system.h", "");
IFile source= createFile(project, "source.cpp", contents[0].toString()); IFile source= createFile(project, "source.cpp", contents[0].toString());
waitForIndexer(fIndex, source, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, source);
openIncludeBrowser(source); openIncludeBrowser(source);
Tree tree = getIBTree(); Tree tree = getIBTree();
@ -83,7 +83,7 @@ public class BasicIncludeBrowserTest extends IncludeBrowserBaseTest {
IFile system= createFile(op.getProject(), "system.h", ""); IFile system= createFile(op.getProject(), "system.h", "");
IFile source= createFile(getProject().getProject(), "source.cpp", contents[0].toString()); IFile source= createFile(getProject().getProject(), "source.cpp", contents[0].toString());
CCorePlugin.getIndexManager().reindex(op); CCorePlugin.getIndexManager().reindex(op);
CCorePlugin.getIndexManager().joinIndexer(INDEXER_WAIT_TIME, NPM); waitForIndexer(op);
openIncludeBrowser(source); openIncludeBrowser(source);
Tree tree = getIBTree(); Tree tree = getIBTree();

View file

@ -78,7 +78,7 @@ public class BasicOutlineTest extends BaseUITestCase {
} }
private void waitForIndexer(IProject project, IFile source) throws Exception, CoreException { private void waitForIndexer(IProject project, IFile source) throws Exception, CoreException {
waitForIndexer(CCorePlugin.getIndexManager().getIndex(fCProject), source, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(CCorePlugin.getIndexManager().getIndex(fCProject), source);
} }
private void checkTreeItems(TreeItem[] items, String... labels) { private void checkTreeItems(TreeItem[] items, String... labels) {

View file

@ -130,8 +130,7 @@ public abstract class RefactoringTestBase extends BaseTestCase {
selectedFile = testFiles.iterator().next(); selectedFile = testFiles.iterator().next();
} }
CCorePlugin.getIndexManager().setIndexerId(cproject, IPDOMManager.ID_FAST_INDEXER); CCorePlugin.getIndexManager().setIndexerId(cproject, IPDOMManager.ID_FAST_INDEXER);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(INDEXER_TIMEOUT_SEC * 1000, waitForIndexer(cproject);
NULL_PROGRESS_MONITOR));
} }
@Override @Override

View file

@ -18,9 +18,6 @@ import org.eclipse.ltk.core.refactoring.Change;
import org.eclipse.ltk.core.refactoring.RefactoringStatus; import org.eclipse.ltk.core.refactoring.RefactoringStatus;
import org.eclipse.ltk.core.refactoring.RefactoringStatusEntry; import org.eclipse.ltk.core.refactoring.RefactoringStatusEntry;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.index.IIndexManager;
import org.eclipse.cdt.internal.ui.refactoring.rename.CRefactoringArgument; import org.eclipse.cdt.internal.ui.refactoring.rename.CRefactoringArgument;
import org.eclipse.cdt.internal.ui.refactoring.rename.CRefactory; import org.eclipse.cdt.internal.ui.refactoring.rename.CRefactory;
import org.eclipse.cdt.internal.ui.refactoring.rename.CRenameProcessor; import org.eclipse.cdt.internal.ui.refactoring.rename.CRenameProcessor;
@ -140,15 +137,7 @@ public class RenameTests extends RefactoringTests {
} }
protected void waitForIndexer() throws InterruptedException { protected void waitForIndexer() throws InterruptedException {
final IIndexManager im = CCorePlugin.getIndexManager(); waitForIndexer(cproject);
assertTrue(im.joinIndexer(10000, NPM));
int sleep= 1;
while (im.isIndexerSetupPostponed(cproject)) {
Thread.sleep(sleep);
sleep *= 2;
assertTrue(sleep < 2000);
}
assertTrue(im.joinIndexer(10000, NPM));
} }
@Override @Override

View file

@ -22,11 +22,8 @@ import junit.framework.TestSuite;
import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.operation.IRunnableContext; import org.eclipse.jface.operation.IRunnableContext;
import org.eclipse.jface.operation.IRunnableWithProgress; import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ILabelProvider;
@ -74,10 +71,10 @@ public class BasicSearchTest extends BaseUITestCase {
IFile file = TestSourceReader.createFile(fCProject.getProject(), new Path("header.h"), testData[0].toString()); IFile file = TestSourceReader.createFile(fCProject.getProject(), new Path("header.h"), testData[0].toString());
CCorePlugin.getIndexManager().setIndexerId(fCProject, IPDOMManager.ID_FAST_INDEXER); CCorePlugin.getIndexManager().setIndexerId(fCProject, IPDOMManager.ID_FAST_INDEXER);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(360000, new NullProgressMonitor())); waitForIndexer(fCProject);
IFile cppfile= TestSourceReader.createFile(fCProject.getProject(), new Path("references.cpp"), testData[1].toString()); IFile cppfile= TestSourceReader.createFile(fCProject.getProject(), new Path("references.cpp"), testData[1].toString());
assertTrue(CCorePlugin.getIndexManager().joinIndexer(360000, new NullProgressMonitor())); waitForIndexer(fCProject);
} }
@Override @Override
@ -106,7 +103,7 @@ public class BasicSearchTest extends BaseUITestCase {
// rebuild the index // rebuild the index
TestScannerProvider.sIncludes= new String[] {dir.getAbsolutePath()}; TestScannerProvider.sIncludes= new String[] {dir.getAbsolutePath()};
CCorePlugin.getIndexManager().reindex(fCProject); CCorePlugin.getIndexManager().reindex(fCProject);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(360000, new NullProgressMonitor())); waitForIndexer(fCProject);
// open a query // open a query
CSearchQuery query= makeProjectQuery("foo"); CSearchQuery query= makeProjectQuery("foo");
@ -149,7 +146,7 @@ public class BasicSearchTest extends BaseUITestCase {
// rebuild the index with no indexer // rebuild the index with no indexer
CCorePlugin.getIndexManager().setIndexerId(fCProject, IPDOMManager.ID_NO_INDEXER); CCorePlugin.getIndexManager().setIndexerId(fCProject, IPDOMManager.ID_NO_INDEXER);
CCorePlugin.getIndexManager().reindex(fCProject); CCorePlugin.getIndexManager().reindex(fCProject);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(360000, new NullProgressMonitor())); waitForIndexer(fCProject);
// open a query // open a query
CSearchQuery query= makeProjectQuery("x"); CSearchQuery query= makeProjectQuery("x");
@ -220,7 +217,7 @@ public class BasicSearchTest extends BaseUITestCase {
coreTestIndexerInProgress(false); coreTestIndexerInProgress(false);
// now join and test again to get the full results // now join and test again to get the full results
assertTrue(CCorePlugin.getIndexManager().joinIndexer(360000, new NullProgressMonitor())); waitForIndexer(fCProject);
coreTestIndexerInProgress(true); coreTestIndexerInProgress(true);
} }
@ -322,8 +319,7 @@ public class BasicSearchTest extends BaseUITestCase {
String newContent= "void bar() {}"; String newContent= "void bar() {}";
IFile file = fCProject.getProject().getFile(new Path("references.cpp")); IFile file = fCProject.getProject().getFile(new Path("references.cpp"));
file.setContents(new ByteArrayInputStream(newContent.getBytes()), IResource.FORCE, npm()); file.setContents(new ByteArrayInputStream(newContent.getBytes()), IResource.FORCE, npm());
Job.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_REFRESH, null); waitForIndexer(fCProject);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(360000, new NullProgressMonitor()));
assertOccurrences(query, 1); assertOccurrences(query, 1);
} }
@ -343,14 +339,13 @@ public class BasicSearchTest extends BaseUITestCase {
runEventQueue(1000); runEventQueue(1000);
IIndexManager indexManager = CCorePlugin.getIndexManager(); IIndexManager indexManager = CCorePlugin.getIndexManager();
indexManager.update(new ICElement[] {fCProject}, IIndexManager.UPDATE_ALL); indexManager.update(new ICElement[] {fCProject}, IIndexManager.UPDATE_ALL);
assertTrue(indexManager.joinIndexer(360000, new NullProgressMonitor())); waitForIndexer(fCProject);
assertOccurrences(query, 2); assertOccurrences(query, 2);
String newContent2= "void bar() {foo(); foo();}"; String newContent2= "void bar() {foo(); foo();}";
file.setContents(new ByteArrayInputStream(newContent2.getBytes()), IResource.FORCE, npm()); file.setContents(new ByteArrayInputStream(newContent2.getBytes()), IResource.FORCE, npm());
Job.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_REFRESH, null); waitForIndexer(fCProject);
assertTrue(indexManager.joinIndexer(360000, new NullProgressMonitor()));
assertOccurrences(query, 3); assertOccurrences(query, 3);
} }

View file

@ -15,7 +15,6 @@ import java.util.ListResourceBundle;
import junit.extensions.TestSetup; import junit.extensions.TestSetup;
import junit.framework.Test; import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite; import junit.framework.TestSuite;
import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor;
@ -27,6 +26,7 @@ import org.eclipse.cdt.core.dom.IPDOMManager;
import org.eclipse.cdt.core.model.ICProject; import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.core.model.IWorkingCopy; import org.eclipse.cdt.core.model.IWorkingCopy;
import org.eclipse.cdt.core.testplugin.CProjectHelper; import org.eclipse.cdt.core.testplugin.CProjectHelper;
import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
import org.eclipse.cdt.ui.CUIPlugin; import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.cdt.ui.testplugin.EditorTestHelper; import org.eclipse.cdt.ui.testplugin.EditorTestHelper;
import org.eclipse.cdt.ui.testplugin.ResourceTestHelper; import org.eclipse.cdt.ui.testplugin.ResourceTestHelper;
@ -37,7 +37,7 @@ import org.eclipse.cdt.internal.ui.editor.CEditor;
/** /**
* Tests the AddIncludeOnSelectionAction. * Tests the AddIncludeOnSelectionAction.
*/ */
public class AddIncludeTest extends TestCase { public class AddIncludeTest extends BaseTestCase {
private static final String PROJECT= "AddIncludeTests"; private static final String PROJECT= "AddIncludeTests";
private static final class EmptyBundle extends ListResourceBundle { private static final class EmptyBundle extends ListResourceBundle {
@ -59,8 +59,7 @@ public class AddIncludeTest extends TestCase {
super.setUp(); super.setUp();
fCProject= EditorTestHelper.createCProject(PROJECT, "resources/addInclude"); fCProject= EditorTestHelper.createCProject(PROJECT, "resources/addInclude");
CCorePlugin.getIndexManager().setIndexerId(fCProject, IPDOMManager.ID_FAST_INDEXER); CCorePlugin.getIndexManager().setIndexerId(fCProject, IPDOMManager.ID_FAST_INDEXER);
// Wait until the indexer is done waitForIndexer(fCProject);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(10000, new NullProgressMonitor()));
} }
@Override @Override

View file

@ -31,7 +31,6 @@ import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PlatformUI; import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.part.FileEditorInput; import org.eclipse.ui.part.FileEditorInput;
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.model.CModelException; import org.eclipse.cdt.core.model.CModelException;
import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.model.CoreModel;
@ -51,26 +50,25 @@ import org.eclipse.cdt.internal.ui.text.contentassist.CContentAssistProcessor;
* @author aniefer * @author aniefer
*/ */
public class ContentAssistTests extends BaseUITestCase { public class ContentAssistTests extends BaseUITestCase {
private NullProgressMonitor monitor= new NullProgressMonitor(); private final NullProgressMonitor monitor= new NullProgressMonitor();
static IProject project; static IProject project;
static ICProject cproject;
static boolean disabledHelpContributions = false; static boolean disabledHelpContributions = false;
@Override @Override
public void setUp() { public void setUp() throws InterruptedException {
//(CCorePlugin.getDefault().getCoreModel().getIndexManager()).reset(); //(CCorePlugin.getDefault().getCoreModel().getIndexManager()).reset();
if (project == null) { if (project == null) {
ICProject cPrj;
try { try {
cPrj = CProjectHelper.createCCProject("ContentAssistTestProject", "bin", IPDOMManager.ID_FAST_INDEXER); //$NON-NLS-1$ //$NON-NLS-2$ cproject = CProjectHelper.createCCProject("ContentAssistTestProject", "bin", IPDOMManager.ID_FAST_INDEXER); //$NON-NLS-1$ //$NON-NLS-2$
project = cproject.getProject();
project = cPrj.getProject(); waitForIndexer(cproject);
} catch ( CoreException e ) { } catch ( CoreException e ) {
/*boo*/ /*boo*/
} }
if (project == null) if (project == null)
fail("Unable to create project"); //$NON-NLS-1$ fail("Unable to create project"); //$NON-NLS-1$
assertTrue(CCorePlugin.getIndexManager().joinIndexer(10000, monitor));
} }
} }
public ContentAssistTests() public ContentAssistTests()
@ -125,7 +123,7 @@ public class ContentAssistTests extends BaseUITestCase {
closeAllEditors(); closeAllEditors();
// wait for indexer before deleting project to avoid errors in the log // wait for indexer before deleting project to avoid errors in the log
CCorePlugin.getIndexManager().joinIndexer(10000, monitor); waitForIndexer(cproject);
IResource [] members = project.members(); IResource [] members = project.members();
for (IResource member : members) { for (IResource member : members) {

View file

@ -19,7 +19,6 @@ import java.util.List;
import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.TextUtilities; import org.eclipse.jface.text.TextUtilities;
import org.eclipse.jface.text.contentassist.ContentAssistant; import org.eclipse.jface.text.contentassist.ContentAssistant;
@ -30,7 +29,6 @@ import org.eclipse.jface.text.templates.TemplateProposal;
import org.eclipse.ui.texteditor.AbstractTextEditor; import org.eclipse.ui.texteditor.AbstractTextEditor;
import org.eclipse.ui.texteditor.ITextEditor; import org.eclipse.ui.texteditor.ITextEditor;
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.model.ICProject; import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.core.testplugin.CProjectHelper; import org.eclipse.cdt.core.testplugin.CProjectHelper;
@ -55,7 +53,7 @@ public abstract class AbstractContentAssistTest extends BaseUITestCase {
protected ICProject fCProject; protected ICProject fCProject;
private IFile fCFile; private IFile fCFile;
protected ITextEditor fEditor; protected ITextEditor fEditor;
private boolean fIsCpp; private final boolean fIsCpp;
public AbstractContentAssistTest(String name, boolean isCpp) { public AbstractContentAssistTest(String name, boolean isCpp) {
super(name); super(name);
@ -73,7 +71,7 @@ public abstract class AbstractContentAssistTest extends BaseUITestCase {
} }
fCFile= setUpProjectContent(fCProject.getProject()); fCFile= setUpProjectContent(fCProject.getProject());
assertNotNull(fCFile); assertNotNull(fCFile);
CCorePlugin.getIndexManager().joinIndexer(8000, new NullProgressMonitor()); waitForIndexer(fCProject);
fEditor= (ITextEditor)EditorTestHelper.openInEditor(fCFile, true); fEditor= (ITextEditor)EditorTestHelper.openInEditor(fCFile, true);
assertNotNull(fEditor); assertNotNull(fEditor);
CPPASTNameBase.sAllowNameComputation= true; CPPASTNameBase.sAllowNameComputation= true;
@ -129,22 +127,20 @@ public abstract class AbstractContentAssistTest extends BaseUITestCase {
if (CTestPlugin.getDefault().isDebugging()) { if (CTestPlugin.getDefault().isDebugging()) {
System.out.println("Time (ms): " + (endTime-startTime)); System.out.println("Time (ms): " + (endTime-startTime));
for (int i = 0; i < resultStrings.length; i++) { for (String proposal : resultStrings) {
String proposal = resultStrings[i];
System.out.println("Result: " + proposal); System.out.println("Result: " + proposal);
} }
} }
boolean allFound = true ; // for the time being, let's be optimistic boolean allFound = true ; // for the time being, let's be optimistic
for (int i = 0; i< expected.length; i++){ for (String element : expected) {
boolean found = false; boolean found = false;
for(int j = 0; j< resultStrings.length; j++){ for (String proposal : resultStrings) {
String proposal = resultStrings[j]; if(element.equals(proposal)){
if(expected[i].equals(proposal)){
found = true; found = true;
if (CTestPlugin.getDefault().isDebugging()) { if (CTestPlugin.getDefault().isDebugging()) {
System.out.println("Lookup success for " + expected[i]); System.out.println("Lookup success for " + element);
} }
break; break;
} }
@ -152,7 +148,7 @@ public abstract class AbstractContentAssistTest extends BaseUITestCase {
if (!found) { if (!found) {
allFound = false ; allFound = false ;
if (CTestPlugin.getDefault().isDebugging()) { if (CTestPlugin.getDefault().isDebugging()) {
System.out.println( "Lookup failed for " + expected[i]); //$NON-NLS-1$ System.out.println( "Lookup failed for " + element); //$NON-NLS-1$
} }
} }
} }
@ -177,8 +173,7 @@ public abstract class AbstractContentAssistTest extends BaseUITestCase {
*/ */
private Object[] filterResults(Object[] results, boolean isCodeCompletion) { private Object[] filterResults(Object[] results, boolean isCodeCompletion) {
List<Object> filtered= new ArrayList<Object>(); List<Object> filtered= new ArrayList<Object>();
for (int i = 0; i < results.length; i++) { for (Object result : results) {
Object result = results[i];
if (result instanceof TemplateProposal) { if (result instanceof TemplateProposal) {
continue; continue;
} }
@ -206,8 +201,7 @@ public abstract class AbstractContentAssistTest extends BaseUITestCase {
*/ */
private Object[] filterResultsKeepTemplates(Object[] results) { private Object[] filterResultsKeepTemplates(Object[] results) {
List<Object> filtered= new ArrayList<Object>(); List<Object> filtered= new ArrayList<Object>();
for (int i = 0; i < results.length; i++) { for (Object result : results) {
Object result = results[i];
if (result instanceof TemplateProposal) { if (result instanceof TemplateProposal) {
filtered.add(result); filtered.add(result);
} }
@ -248,8 +242,8 @@ public abstract class AbstractContentAssistTest extends BaseUITestCase {
private String toString(String[] strings) { private String toString(String[] strings) {
StringBuffer buf= new StringBuffer(); StringBuffer buf= new StringBuffer();
for(int i=0; i< strings.length; i++){ for (String string : strings) {
buf.append(strings[i]).append('\n'); buf.append(string).append('\n');
} }
return buf.toString(); return buf.toString();
} }

View file

@ -26,7 +26,6 @@ import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProject;
import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.IDocument;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.testplugin.TestScannerProvider; import org.eclipse.cdt.core.testplugin.TestScannerProvider;
import org.eclipse.cdt.core.testplugin.util.BaseTestCase; import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
@ -862,11 +861,11 @@ public class CompletionTests extends AbstractContentAssistTest {
}; };
String disturbContent= readTaggedComment(DISTURB_FILE_NAME); String disturbContent= readTaggedComment(DISTURB_FILE_NAME);
IFile dfile= createFile(fProject, DISTURB_FILE_NAME, disturbContent); IFile dfile= createFile(fProject, DISTURB_FILE_NAME, disturbContent);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(8000, npm())); waitForIndexer(fCProject);
assertCompletionResults(fCursorOffset, expected, AbstractContentAssistTest.COMPARE_REP_STRINGS); assertCompletionResults(fCursorOffset, expected, AbstractContentAssistTest.COMPARE_REP_STRINGS);
dfile.delete(true, npm()); dfile.delete(true, npm());
assertTrue(CCorePlugin.getIndexManager().joinIndexer(8000, npm())); waitForIndexer(fCProject);
assertCompletionResults(fCursorOffset, expected2, AbstractContentAssistTest.COMPARE_REP_STRINGS); assertCompletionResults(fCursorOffset, expected2, AbstractContentAssistTest.COMPARE_REP_STRINGS);
} }

View file

@ -17,7 +17,6 @@ import junit.framework.Test;
import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.IDocument;
import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.CCorePlugin;
@ -182,7 +181,7 @@ public class CompletionTests_PlainC extends AbstractContentAssistTest {
IFile sourceFile= createFile(project, SOURCE_FILE_NAME, sourceContent.toString()); IFile sourceFile= createFile(project, SOURCE_FILE_NAME, sourceContent.toString());
// re-indexing is necessary to parse the header in context of the source. // re-indexing is necessary to parse the header in context of the source.
CCorePlugin.getIndexManager().reindex(fCProject); CCorePlugin.getIndexManager().reindex(fCProject);
CCorePlugin.getIndexManager().joinIndexer(4000, new NullProgressMonitor()); waitForIndexer(fCProject);
return sourceFile; return sourceFile;
} }
@ -232,11 +231,11 @@ public class CompletionTests_PlainC extends AbstractContentAssistTest {
}; };
String disturbContent= readTaggedComment(DISTURB_FILE_NAME); String disturbContent= readTaggedComment(DISTURB_FILE_NAME);
IFile dfile= createFile(fProject, DISTURB_FILE_NAME, disturbContent); IFile dfile= createFile(fProject, DISTURB_FILE_NAME, disturbContent);
assertTrue(CCorePlugin.getIndexManager().joinIndexer(8000, npm())); waitForIndexer(fCProject);
assertCompletionResults(expected); assertCompletionResults(expected);
dfile.delete(true, npm()); dfile.delete(true, npm());
assertTrue(CCorePlugin.getIndexManager().joinIndexer(8000, npm())); waitForIndexer(fCProject);
assertCompletionResults(expected2); assertCompletionResults(expected2);
} }

View file

@ -43,16 +43,13 @@ import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.part.FileEditorInput; import org.eclipse.ui.part.FileEditorInput;
import org.eclipse.ui.texteditor.AbstractTextEditor; import org.eclipse.ui.texteditor.AbstractTextEditor;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.ast.IASTNode; import org.eclipse.cdt.core.dom.ast.IASTNode;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.index.IIndex;
import org.eclipse.cdt.core.model.ICProject; import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.core.model.ILanguage; import org.eclipse.cdt.core.model.ILanguage;
import org.eclipse.cdt.core.model.ITranslationUnit; import org.eclipse.cdt.core.model.ITranslationUnit;
import org.eclipse.cdt.core.testplugin.FileManager; import org.eclipse.cdt.core.testplugin.FileManager;
import org.eclipse.cdt.core.testplugin.util.TestSourceReader;
import org.eclipse.cdt.ui.testplugin.EditorTestHelper; import org.eclipse.cdt.ui.testplugin.EditorTestHelper;
import org.eclipse.cdt.ui.tests.BaseUITestCase; import org.eclipse.cdt.ui.tests.BaseUITestCase;
@ -89,14 +86,6 @@ public class BaseSelectionTestsIndexer extends BaseUITestCase {
} }
} }
public void waitForIndex(int maxSec) throws Exception {
assertTrue(CCorePlugin.getIndexManager().joinIndexer(maxSec * 1000, new NullProgressMonitor()));
}
protected void waitUntilFileIsIndexed(IIndex index, IFile file) throws Exception {
TestSourceReader.waitUntilFileIsIndexed(index, file, INDEXER_TIMEOUT_SEC * 1000);
}
protected String getMessage(IStatus status) { protected String getMessage(IStatus status) {
StringBuffer message = new StringBuffer("["); //$NON-NLS-1$ StringBuffer message = new StringBuffer("["); //$NON-NLS-1$
message.append(status.getMessage()); message.append(status.getMessage());
@ -123,7 +112,7 @@ public class BaseSelectionTestsIndexer extends BaseUITestCase {
fileManager.addFile(file); fileManager.addFile(file);
waitForIndex(20); // only wait 20 seconds max. waitForIndexer(fCProject);
return file; return file;
} }

View file

@ -834,7 +834,7 @@ public abstract class CPPSelectionTestsAnyIndexer extends BaseSelectionTestsInde
IFile hcppfile = importFile("cpp.h", hcppcode); IFile hcppfile = importFile("cpp.h", hcppcode);
IFile cppfile = importFile("cpp.cpp", cppcode); IFile cppfile = importFile("cpp.cpp", cppcode);
CCorePlugin.getIndexManager().reindex(fCProject); CCorePlugin.getIndexManager().reindex(fCProject);
waitForIndex(INDEXER_TIMEOUT_SEC * 1000); waitForIndexer(fCProject);
IASTNode decl; IASTNode decl;
int offset0, offset1; int offset0, offset1;

View file

@ -108,7 +108,7 @@ public class ResolveBindingTests extends BaseUITestCase {
public void testNamespaceVarBinding() throws Exception { public void testNamespaceVarBinding() throws Exception {
String content = readTaggedComment("namespace-var-test"); String content = readTaggedComment("namespace-var-test");
IFile file= createFile(fCProject.getProject(), "nsvar.cpp", content); IFile file= createFile(fCProject.getProject(), "nsvar.cpp", content);
waitForIndexer(fIndex, file, WAIT_FOR_INDEXER); waitUntilFileIsIndexed(fIndex, file);
IIndex index= CCorePlugin.getIndexManager().getIndex(fCProject); IIndex index= CCorePlugin.getIndexManager().getIndex(fCProject);
index.acquireReadLock(); index.acquireReadLock();
@ -132,7 +132,7 @@ public class ResolveBindingTests extends BaseUITestCase {
public void testNamespaceVarBinding_156519() throws Exception { public void testNamespaceVarBinding_156519() throws Exception {
String content = readTaggedComment("namespace-var-test"); String content = readTaggedComment("namespace-var-test");
IFile file= createFile(fCProject.getProject(), "nsvar.cpp", content); IFile file= createFile(fCProject.getProject(), "nsvar.cpp", content);
waitForIndexer(fIndex, file, WAIT_FOR_INDEXER); waitUntilFileIsIndexed(fIndex, file);
IIndex index= CCorePlugin.getIndexManager().getIndex(fCProject); IIndex index= CCorePlugin.getIndexManager().getIndex(fCProject);
index.acquireReadLock(); index.acquireReadLock();
@ -173,7 +173,7 @@ public class ResolveBindingTests extends BaseUITestCase {
IFile hfile= createFile(fCProject.getProject(), "testMethods.h", content); IFile hfile= createFile(fCProject.getProject(), "testMethods.h", content);
content = readTaggedComment("testMethods.cpp"); content = readTaggedComment("testMethods.cpp");
IFile cppfile= createFile(fCProject.getProject(), "testMethods.cpp", content); IFile cppfile= createFile(fCProject.getProject(), "testMethods.cpp", content);
waitForIndexer(fIndex, hfile, WAIT_FOR_INDEXER); waitUntilFileIsIndexed(fIndex, hfile);
IIndex index= CCorePlugin.getIndexManager().getIndex(fCProject); IIndex index= CCorePlugin.getIndexManager().getIndex(fCProject);
index.acquireReadLock(); index.acquireReadLock();

View file

@ -36,7 +36,7 @@ public class CTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testEnumC() throws Exception { public void testEnumC() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "enum.c", content); IFile file= createFile(getProject(), "enum.c", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
Tree tree; Tree tree;
TreeItem item; TreeItem item;
@ -72,7 +72,7 @@ public class CTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testEnumCFromMember() throws Exception { public void testEnumCFromMember() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "enummem.c", content); IFile file= createFile(getProject(), "enummem.c", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
Tree tree; Tree tree;
TreeItem item; TreeItem item;
@ -108,7 +108,7 @@ public class CTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testEnumCPP() throws Exception { public void testEnumCPP() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "enum.cpp", content); IFile file= createFile(getProject(), "enum.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
Tree tree; Tree tree;
TreeItem item; TreeItem item;
@ -144,7 +144,7 @@ public class CTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testEnumCPPFromMember() throws Exception { public void testEnumCPPFromMember() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "enummem.cpp", content); IFile file= createFile(getProject(), "enummem.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
Tree tree; Tree tree;
TreeItem item; TreeItem item;
@ -188,7 +188,7 @@ public class CTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testStructC() throws Exception { public void testStructC() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "struct.c", content); IFile file= createFile(getProject(), "struct.c", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
editor.selectAndReveal(content.indexOf("S1"), 1); editor.selectAndReveal(content.indexOf("S1"), 1);
@ -242,7 +242,7 @@ public class CTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testStructCFromMember() throws Exception { public void testStructCFromMember() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "structmem.c", content); IFile file= createFile(getProject(), "structmem.c", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
editor.selectAndReveal(content.indexOf("a1"), 1); editor.selectAndReveal(content.indexOf("a1"), 1);
@ -276,7 +276,7 @@ public class CTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testStructCPP() throws Exception { public void testStructCPP() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "struct.cpp", content); IFile file= createFile(getProject(), "struct.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
editor.selectAndReveal(content.indexOf("S1"), 1); editor.selectAndReveal(content.indexOf("S1"), 1);
@ -331,7 +331,7 @@ public class CTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testStructCPPFromMember() throws Exception { public void testStructCPPFromMember() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "structmem.cpp", content); IFile file= createFile(getProject(), "structmem.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
editor.selectAndReveal(content.indexOf("a1"), 1); editor.selectAndReveal(content.indexOf("a1"), 1);
@ -365,7 +365,7 @@ public class CTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testUnionC() throws Exception { public void testUnionC() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "union.c", content); IFile file= createFile(getProject(), "union.c", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
editor.selectAndReveal(content.indexOf("U1"), 1); editor.selectAndReveal(content.indexOf("U1"), 1);
@ -415,7 +415,7 @@ public class CTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testUnionCFromMember() throws Exception { public void testUnionCFromMember() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "unionmem.c", content); IFile file= createFile(getProject(), "unionmem.c", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
editor.selectAndReveal(content.indexOf("a1"), 1); editor.selectAndReveal(content.indexOf("a1"), 1);
@ -441,7 +441,7 @@ public class CTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testUnionCPP() throws Exception { public void testUnionCPP() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "union.cpp", content); IFile file= createFile(getProject(), "union.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
editor.selectAndReveal(content.indexOf("U1"), 1); editor.selectAndReveal(content.indexOf("U1"), 1);
@ -500,7 +500,7 @@ public class CTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testUnionCPPFromMember() throws Exception { public void testUnionCPPFromMember() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "unionmem.cpp", content); IFile file= createFile(getProject(), "unionmem.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
editor.selectAndReveal(content.indexOf("a1"), 1); editor.selectAndReveal(content.indexOf("a1"), 1);

View file

@ -52,7 +52,7 @@ public class CppTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testSimpleInheritance() throws Exception { public void testSimpleInheritance() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "class.cpp", content); IFile file= createFile(getProject(), "class.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
Tree tree; Tree tree;
TreeItem item1, item2, item3, item4; TreeItem item1, item2, item3, item4;
@ -145,7 +145,7 @@ public class CppTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testSimpleInheritanceFromMember() throws Exception { public void testSimpleInheritanceFromMember() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "classmem.cpp", content); IFile file= createFile(getProject(), "classmem.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
Tree tree; Tree tree;
TreeItem item1, item2, item3, item4; TreeItem item1, item2, item3, item4;
@ -238,7 +238,7 @@ public class CppTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testMultipleInheritance() throws Exception { public void testMultipleInheritance() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "multi.cpp", content); IFile file= createFile(getProject(), "multi.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
Tree tree; Tree tree;
@ -349,7 +349,7 @@ public class CppTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testMultipleInheritanceFromMember() throws Exception { public void testMultipleInheritanceFromMember() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "multimem.cpp", content); IFile file= createFile(getProject(), "multimem.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
Tree tree; Tree tree;
@ -460,7 +460,7 @@ public class CppTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testDiamondInheritance() throws Exception { public void testDiamondInheritance() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "diamond.cpp", content); IFile file= createFile(getProject(), "diamond.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
Tree tree; Tree tree;
@ -571,7 +571,7 @@ public class CppTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testDiamondInheritanceFromMember() throws Exception { public void testDiamondInheritanceFromMember() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "diamondmem.cpp", content); IFile file= createFile(getProject(), "diamondmem.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
Tree tree; Tree tree;
@ -679,7 +679,7 @@ public class CppTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testViaTypedefInheritance() throws Exception { public void testViaTypedefInheritance() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "viaTypedef.cpp", content); IFile file= createFile(getProject(), "viaTypedef.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
Tree tree; Tree tree;
@ -770,7 +770,7 @@ public class CppTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testViaTypedefInheritanceFromMember() throws Exception { public void testViaTypedefInheritanceFromMember() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "viaTypedefmem.cpp", content); IFile file= createFile(getProject(), "viaTypedefmem.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
Tree tree; Tree tree;
@ -849,7 +849,7 @@ public class CppTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testTemplatesNoInheritance() throws Exception { public void testTemplatesNoInheritance() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "simpleTemplate.cpp", content); IFile file= createFile(getProject(), "simpleTemplate.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
Tree tree; Tree tree;

View file

@ -53,7 +53,7 @@ public class QuickTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testSimpleInheritance() throws Exception { public void testSimpleInheritance() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "class.cpp", content); IFile file= createFile(getProject(), "class.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
Tree tree; Tree tree;
@ -149,7 +149,7 @@ public class QuickTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testSimpleInheritanceFromMember() throws Exception { public void testSimpleInheritanceFromMember() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "classmem.cpp", content); IFile file= createFile(getProject(), "classmem.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
Tree tree; Tree tree;
@ -231,7 +231,7 @@ public class QuickTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testMultipleInheritance() throws Exception { public void testMultipleInheritance() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "multi.cpp", content); IFile file= createFile(getProject(), "multi.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
Tree tree; Tree tree;
@ -342,7 +342,7 @@ public class QuickTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testMultipleInheritanceFromMember() throws Exception { public void testMultipleInheritanceFromMember() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "multimem.cpp", content); IFile file= createFile(getProject(), "multimem.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
Tree tree; Tree tree;
@ -434,7 +434,7 @@ public class QuickTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testDiamondInheritance() throws Exception { public void testDiamondInheritance() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "diamond.cpp", content); IFile file= createFile(getProject(), "diamond.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
Tree tree; Tree tree;
@ -545,7 +545,7 @@ public class QuickTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testDiamondInheritanceFromMember() throws Exception { public void testDiamondInheritanceFromMember() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "diamondmem.cpp", content); IFile file= createFile(getProject(), "diamondmem.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
Tree tree; Tree tree;
@ -632,7 +632,7 @@ public class QuickTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testViaTypedefInheritance() throws Exception { public void testViaTypedefInheritance() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "viaTypedef.cpp", content); IFile file= createFile(getProject(), "viaTypedef.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
Tree tree; Tree tree;
@ -726,7 +726,7 @@ public class QuickTypeHierarchyTest extends TypeHierarchyBaseTest {
public void testViaTypedefInheritanceFromMember() throws Exception { public void testViaTypedefInheritanceFromMember() throws Exception {
String content= getContentsForTest(1)[0].toString(); String content= getContentsForTest(1)[0].toString();
IFile file= createFile(getProject(), "viaTypedefmem.cpp", content); IFile file= createFile(getProject(), "viaTypedefmem.cpp", content);
waitForIndexer(fIndex, file, INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, file);
CEditor editor= openEditor(file); CEditor editor= openEditor(file);
Tree tree; Tree tree;

View file

@ -90,7 +90,7 @@ public class TypeHierarchyAcrossProjectsTest extends TypeHierarchyBaseTest {
String source = content[1].toString(); String source = content[1].toString();
IFile headerFile= createFile(fCProject.getProject(), "simpleHeader.h", header); IFile headerFile= createFile(fCProject.getProject(), "simpleHeader.h", header);
IFile sourceFile= createFile(fCProject2.getProject(), "simple.cpp", source); IFile sourceFile= createFile(fCProject2.getProject(), "simple.cpp", source);
waitForIndexer(fIndex, sourceFile, TypeHierarchyBaseTest.INDEXER_WAIT_TIME); waitUntilFileIsIndexed(fIndex, sourceFile);
CEditor editor= openEditor(sourceFile); CEditor editor= openEditor(sourceFile);
Tree tree; Tree tree;

View file

@ -56,7 +56,7 @@ public class TypeHierarchyBaseTest extends BaseUITestCase {
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
fCProject= CProjectHelper.createCCProject("__thTest__", "bin", IPDOMManager.ID_FAST_INDEXER); fCProject= CProjectHelper.createCCProject("__thTest__", "bin", IPDOMManager.ID_FAST_INDEXER);
CCorePlugin.getIndexManager().joinIndexer(INDEXER_WAIT_TIME, npm()); waitForIndexer(fCProject);
fIndex= CCorePlugin.getIndexManager().getIndex(fCProject); fIndex= CCorePlugin.getIndexManager().getIndex(fCProject);
} }