diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexBugsTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexBugsTests.java index 733a182d082..293cbc8ae73 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexBugsTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexBugsTests.java @@ -289,6 +289,17 @@ public class IndexBugsTests extends BaseTestCase { return TestSourceReader.createFile(container, new Path(fileName), contents); } + private IIndexFile getIndexFile(IFile file) throws CoreException { + return getIndexFile(fIndex, file); + } + + private IIndexFile getIndexFile(IIndex index, IFile file) throws CoreException { + IIndexFile[] files = index.getFiles(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(file)); + assertTrue("Can't find " + file.getLocation(), files.length > 0); + assertEquals("Found " + files.length + " files for " + file.getLocation() + " instead of one", 1, files.length); + return files[0]; + } + private void waitForIndexer() throws InterruptedException { final IIndexManager indexManager = CCorePlugin.getIndexManager(); assertTrue(indexManager.joinIndexer(INDEX_WAIT_TIME, npm())); @@ -459,8 +470,7 @@ public class IndexBugsTests extends BaseTestCase { fIndex.acquireReadLock(); try { - IIndexFile ifile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(file)); - assertNotNull(ifile); + IIndexFile ifile= getIndexFile(file); IIndexInclude[] includes= ifile.getIncludes(); assertEquals(1, includes.length); IIndexInclude i= includes[0]; @@ -484,8 +494,7 @@ public class IndexBugsTests extends BaseTestCase { fIndex.acquireReadLock(); try { - IIndexFile ifile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(file)); - assertNotNull(ifile); + IIndexFile ifile= getIndexFile(file); IIndexInclude[] includes= ifile.getIncludes(); assertEquals(1, includes.length); IIndexInclude i= includes[0]; @@ -561,8 +570,7 @@ public class IndexBugsTests extends BaseTestCase { fIndex.acquireReadLock(); try { - IIndexFile ifile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(file)); - assertNotNull(ifile); + IIndexFile ifile= getIndexFile(file); IIndexInclude[] includes= ifile.getIncludes(); assertEquals(1, includes.length); IIndexInclude i= includes[0]; @@ -585,8 +593,7 @@ public class IndexBugsTests extends BaseTestCase { fIndex.acquireReadLock(); try { - IIndexFile ifile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(file)); - assertNotNull(ifile); + IIndexFile ifile= getIndexFile(file); IIndexInclude[] includes= ifile.getIncludes(); assertEquals(1, includes.length); IIndexInclude i= includes[0]; @@ -612,8 +619,7 @@ public class IndexBugsTests extends BaseTestCase { fIndex.acquireReadLock(); try { - IIndexFile ifile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(file)); - assertNotNull(ifile); + IIndexFile ifile= getIndexFile(file); IIndexMacro[] macros= ifile.getMacros(); assertEquals(3, macros.length); IIndexMacro m= macros[0]; @@ -1660,11 +1666,11 @@ public class IndexBugsTests extends BaseTestCase { waitForIndexer(); fIndex.acquireReadLock(); try { - IIndexFile f= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(f1)); + IIndexFile f= getIndexFile(f1); IIndexInclude i= f.getIncludes()[0]; assertTrue(i.isResolvedByHeuristics()); - f= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(f2)); + f= getIndexFile(f2); i= f.getIncludes()[0]; assertFalse(i.isResolvedByHeuristics()); } finally { @@ -1685,7 +1691,7 @@ public class IndexBugsTests extends BaseTestCase { waitForIndexer(); fIndex.acquireReadLock(); try { - IIndexFile f= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(f1)); + IIndexFile f= getIndexFile(f1); IIndexInclude[] is= f.getIncludes(); assertFalse(is[0].isResolved()); assertTrue(is[1].isResolvedByHeuristics()); @@ -2127,7 +2133,7 @@ public class IndexBugsTests extends BaseTestCase { IIndex index= indexManager.getIndex(fCProject); index.acquireReadLock(); try { - IIndexFile file= index.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(f)); + IIndexFile file= getIndexFile(index, f); // check order of includes IIndexInclude[] incs = file.getIncludes(); assertEquals(2, incs.length); @@ -2159,7 +2165,7 @@ public class IndexBugsTests extends BaseTestCase { IIndex index= indexManager.getIndex(fCProject); index.acquireReadLock(); try { - IIndexFile file= index.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(f)); + IIndexFile file= getIndexFile(index, f); int idx= testData.indexOf("f("); IIndexName[] names = file.findNames(idx, idx+1); assertEquals(1, names.length); diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexIncludeTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexIncludeTest.java index 2fda9e95f00..f869b52fc01 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexIncludeTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexIncludeTest.java @@ -122,8 +122,7 @@ public class IndexIncludeTest extends IndexTestBase { TestSourceReader.waitUntilFileIsIndexed(fIndex, file, 4000); fIndex.acquireReadLock(); try { - IIndexFile ifile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(file)); - assertNotNull("Can't find " + file.getLocation(), ifile); + IIndexFile ifile= getIndexFile(file); assertTrue("timestamp not ok", ifile.getTimestamp() >= timestamp); IIndexBinding[] result= fIndex.findBindings(Pattern.compile("testInclude_cpp"), true, IndexFilter.ALL, npm()); @@ -134,6 +133,13 @@ public class IndexIncludeTest extends IndexTestBase { } finally { fIndex.releaseReadLock(); } + } + + private IIndexFile getIndexFile(IFile file) throws CoreException { + IIndexFile[] files = fIndex.getFiles(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(file)); + assertTrue("Can't find " + file.getLocation(), files.length > 0); + assertEquals("Found " + files.length + " files for " + file.getLocation() + " instead of one", 1, files.length); + return files[0]; } // {source20061107} @@ -150,8 +156,7 @@ public class IndexIncludeTest extends IndexTestBase { fIndex.acquireReadLock(); try { - IIndexFile ifile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(file)); - assertNotNull(ifile); + IIndexFile ifile= getIndexFile(file); IIndexInclude[] includes= ifile.getIncludes(); assertEquals(2, includes.length); @@ -174,8 +179,7 @@ public class IndexIncludeTest extends IndexTestBase { fIndex.acquireReadLock(); try { - IIndexFile ifile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(file)); - assertNotNull(ifile); + IIndexFile ifile= getIndexFile(file); IIndexInclude[] includes= ifile.getIncludes(); assertEquals(1, includes.length); @@ -194,8 +198,7 @@ public class IndexIncludeTest extends IndexTestBase { fIndex.acquireReadLock(); try { - IIndexFile ifile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(file)); - assertNotNull(ifile); + IIndexFile ifile= getIndexFile(file); IIndexInclude[] includes= ifile.getIncludes(); assertEquals(1, includes.length); @@ -215,8 +218,7 @@ public class IndexIncludeTest extends IndexTestBase { fIndex.acquireReadLock(); try { - IIndexFile ifile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(file)); - assertNotNull(ifile); + IIndexFile ifile= getIndexFile(file); IIndexInclude[] includes= ifile.getIncludes(); assertEquals(1, includes.length); @@ -238,7 +240,10 @@ public class IndexIncludeTest extends IndexTestBase { public void testUpdateOfIncluded() throws Exception { String content1 = "int CONTEXT_20070404(x);\n"; String content2 = "int CONTEXT_20070404(y);\n"; - String content3 = "#define CONTEXT_20070404(x) ctx_20070404##x\n #include \"included_20070404.h\"\n int source_20070404;\n"; + String content3 = + "#define CONTEXT_20070404(x) ctx_20070404##x\n" + + "#include \"included_20070404.h\"\n" + + "int source_20070404;\n"; TestSourceReader.createFile(fProject.getProject(), "included_20070404.h", content1); TestSourceReader.createFile(fProject.getProject(), "notIncluded_20070404.h", "int notIncluded_20070404\n;"); TestSourceReader.createFile(fProject.getProject(), "includer_20070404.cpp", content3); @@ -332,8 +337,7 @@ public class IndexIncludeTest extends IndexTestBase { fIndex.acquireReadLock(); try { - IIndexFile ifile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(header)); - assertNotNull(ifile); + IIndexFile ifile= getIndexFile(header); IIndexInclude[] includes= fIndex.findIncludedBy(ifile); assertEquals(2, includes.length); @@ -352,8 +356,7 @@ public class IndexIncludeTest extends IndexTestBase { fIndex.acquireReadLock(); try { assertEquals(1, fIndex.findBindings("a20070426".toCharArray(), IndexFilter.ALL_DECLARED, npm()).length); - IIndexFile ifile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(header)); - assertNotNull(ifile); + IIndexFile ifile= getIndexFile(header); IIndexInclude[] includes= fIndex.findIncludedBy(ifile); assertEquals(2, includes.length); assertEquals(s1.getFullPath().toString(), includes[0].getIncludedByLocation().getFullPath()); @@ -370,8 +373,7 @@ public class IndexIncludeTest extends IndexTestBase { fIndex.acquireReadLock(); try { assertEquals(1, fIndex.findBindings("b20070426".toCharArray(), IndexFilter.ALL_DECLARED, npm()).length); - IIndexFile ifile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(header)); - assertNotNull(ifile); + IIndexFile ifile= getIndexFile(header); IIndexInclude[] includes= fIndex.findIncludedBy(ifile); assertEquals(2, includes.length); assertEquals(s1.getFullPath().toString(), includes[0].getIncludedByLocation().getFullPath()); @@ -453,9 +455,8 @@ public class IndexIncludeTest extends IndexTestBase { try { assertEquals(1, fIndex.findBindings(tag.toCharArray(), IndexFilter.ALL_DECLARED, npm()).length); - IIndexFile ifile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(header)); - IIndexFile sfile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(s1)); - assertNotNull(ifile); + IIndexFile ifile= getIndexFile(header); + IIndexFile sfile= getIndexFile(s1); IIndexInclude[] includes= fIndex.findIncludedBy(ifile); assertEquals(1, includes.length); assertEquals(s1.getFullPath().toString(), includes[0].getIncludedByLocation().getFullPath()); @@ -464,7 +465,6 @@ public class IndexIncludeTest extends IndexTestBase { assertTrue(includes[0].isResolved()); assertFalse(includes[0].isSystemInclude()); - assertNotNull(sfile); includes= fIndex.findIncludes(sfile); assertEquals(3, includes.length); assertEquals(header.getFullPath().toString(), includes[0].getIncludesLocation().getFullPath()); @@ -494,13 +494,11 @@ public class IndexIncludeTest extends IndexTestBase { try { assertEquals(1, fIndex.findBindings(tag.toCharArray(), IndexFilter.ALL_DECLARED, npm()).length); - IIndexFile ifile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(header)); - IIndexFile sfile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(s1)); - assertNotNull(ifile); + IIndexFile ifile= getIndexFile(header); + IIndexFile sfile= getIndexFile(s1); IIndexInclude[] includes= fIndex.findIncludedBy(ifile); assertEquals(0, includes.length); - assertNotNull(sfile); includes= fIndex.findIncludes(sfile); assertEquals(2, includes.length); @@ -525,9 +523,8 @@ public class IndexIncludeTest extends IndexTestBase { try { assertEquals(1, fIndex.findBindings(tag.toCharArray(), IndexFilter.ALL_DECLARED, npm()).length); - IIndexFile ifile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(header)); - IIndexFile sfile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(s1)); - assertNotNull(ifile); + IIndexFile ifile= getIndexFile(header); + IIndexFile sfile= getIndexFile(s1); IIndexInclude[] includes= fIndex.findIncludedBy(ifile); assertEquals(1, includes.length); assertEquals(s1.getFullPath().toString(), includes[0].getIncludedByLocation().getFullPath()); @@ -536,7 +533,6 @@ public class IndexIncludeTest extends IndexTestBase { assertTrue(includes[0].isResolved()); assertTrue(includes[0].isSystemInclude()); - assertNotNull(sfile); includes= fIndex.findIncludes(sfile); assertEquals(2, includes.length); assertEquals(header.getFullPath().toString(), includes[0].getIncludesLocation().getFullPath()); @@ -560,9 +556,8 @@ public class IndexIncludeTest extends IndexTestBase { try { assertEquals(1, fIndex.findBindings(tag.toCharArray(), IndexFilter.ALL_DECLARED, npm()).length); - IIndexFile ifile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(header)); - IIndexFile sfile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(s1)); - assertNotNull(ifile); + IIndexFile ifile= getIndexFile(header); + IIndexFile sfile= getIndexFile(s1); IIndexInclude[] includes= fIndex.findIncludedBy(ifile); assertEquals(1, includes.length); assertEquals(s1.getFullPath().toString(), includes[0].getIncludedByLocation().getFullPath()); @@ -571,7 +566,6 @@ public class IndexIncludeTest extends IndexTestBase { assertTrue(includes[0].isResolved()); assertFalse(includes[0].isSystemInclude()); - assertNotNull(sfile); includes= fIndex.findIncludes(sfile); assertEquals(2, includes.length); assertEquals(header.getFullPath().toString(), includes[0].getIncludesLocation().getFullPath()); diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexNamesTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexNamesTests.java index 123318398e4..69ae8c4a08d 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexNamesTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexNamesTests.java @@ -88,6 +88,13 @@ public class IndexNamesTests extends BaseTestCase { return result; } + private IIndexFile getIndexFile(int linkageID, IFile file) throws CoreException { + IIndexFile[] files = fIndex.getFiles(linkageID, IndexLocationFactory.getWorkspaceIFL(file)); + assertTrue("Can't find " + file.getLocation(), files.length > 0); + assertEquals("Found " + files.length + " files for " + file.getLocation() + " instead of one", 1, files.length); + return files[0]; + } + protected void waitUntilFileIsIndexed(IFile file, int time) throws Exception { TestSourceReader.waitUntilFileIsIndexed(fIndex, file, time); } @@ -263,7 +270,7 @@ public class IndexNamesTests extends BaseTestCase { fIndex.acquireReadLock(); try { - IIndexFile ifile= fIndex.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(file)); + IIndexFile ifile= getIndexFile(ILinkage.CPP_LINKAGE_ID, file); IIndexName[] names= ifile.findNames(0, content.length()); int j= 0; for (IIndexName indexName : names) { @@ -321,7 +328,7 @@ public class IndexNamesTests extends BaseTestCase { CoreException { fIndex.acquireReadLock(); try { - IIndexFile ifile= fIndex.getFile(linkageID, IndexLocationFactory.getWorkspaceIFL(file)); + IIndexFile ifile= getIndexFile(linkageID, file); IIndexName[] names= ifile.findNames(0, Integer.MAX_VALUE); int j= 0; for (IIndexName indexName : names) { diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/IncludesTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/IncludesTests.java index 5f72bcb7994..be8784315ae 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/IncludesTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/IncludesTests.java @@ -22,6 +22,7 @@ import org.eclipse.cdt.core.index.IndexLocationFactory; import org.eclipse.cdt.core.model.ICProject; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IResource; +import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.Path; /** @@ -47,26 +48,30 @@ public class IncludesTests extends PDOMTestBase { index.releaseReadLock(); } + private IIndexFile getIndexFile(IFile file) throws CoreException { + IIndexFile[] files = index.getFiles(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL(file)); + assertTrue("Can't find " + file.getLocation(), files.length > 0); + assertEquals("Found " + files.length + " files for " + file.getLocation() + " instead of one", 1, files.length); + return files[0]; + } + public void testIncludedBy() throws Exception { IResource loc = project.getProject().findMember("I2.h"); - IIndexFile file = index.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL((IFile) loc)); - assertNotNull(file); + IIndexFile file = getIndexFile((IFile) loc); IIndexInclude[] allIncludedBy = index.findIncludedBy(file, -1); assertEquals(9, allIncludedBy.length); // i.e. all of them } - + public void testIncludes() throws Exception { IResource loc = project.getProject().findMember("I1.cpp"); - IIndexFile file = index.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL((IFile) loc)); - assertNotNull(file); + IIndexFile file = getIndexFile((IFile) loc); IIndexInclude[] allIncludesTo= index.findIncludes(file, -1); assertEquals(2, allIncludesTo.length); // i.e. I1.h, I2.h } public void testIncludeName() throws Exception { IResource loc = project.getProject().findMember("a/b/I6.h"); - IIndexFile file = index.getFile(ILinkage.CPP_LINKAGE_ID, IndexLocationFactory.getWorkspaceIFL((IFile) loc)); - assertNotNull(file); + IIndexFile file = getIndexFile((IFile) loc); IIndexInclude[] allIncludedBy = index.findIncludedBy(file, -1); assertEquals(2, allIncludedBy.length); for (IIndexInclude include : allIncludedBy) {