Skip to main content
summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorDoug Schaefer2006-09-22 16:51:48 +0000
committerDoug Schaefer2006-09-22 16:51:48 +0000
commit85c7eb6dd8f8efb05635ca6f45c71858c5da646c (patch)
treef9d30befcc0b142252017361ce8efcf1fec9f13d /core
parent66fcf51f5ecfafd7d24ef361e6e7391e6f66faae (diff)
downloadorg.eclipse.cdt-85c7eb6dd8f8efb05635ca6f45c71858c5da646c.tar.gz
org.eclipse.cdt-85c7eb6dd8f8efb05635ca6f45c71858c5da646c.tar.xz
org.eclipse.cdt-85c7eb6dd8f8efb05635ca6f45c71858c5da646c.zip
Bug 157992 - Fixed up the PDOM tests to be more deterministic.
Diffstat (limited to 'core')
-rw-r--r--core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/ClassTests.java20
-rw-r--r--core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/EnumerationTests.java16
-rw-r--r--core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/IncludesTests.java3
-rw-r--r--core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/PDOMTestBase.java15
-rw-r--r--core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/PDOMTests.java1
-rw-r--r--core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/TypesTests.java19
6 files changed, 49 insertions, 25 deletions
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/ClassTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/ClassTests.java
index 8146d86a7de..2328da97817 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/ClassTests.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/ClassTests.java
@@ -31,15 +31,21 @@ import org.eclipse.core.runtime.NullProgressMonitor;
*/
public class ClassTests extends PDOMTestBase {
- protected ICProject project;
-
+ protected PDOM pdom;
+
protected void setUp() throws Exception {
- project = createProject("classTests");
+ if (pdom == null) {
+ ICProject project = createProject("classTests");
+ pdom = (PDOM)CCorePlugin.getPDOMManager().getPDOM(project);
+ }
+ pdom.acquireReadLock();
}
+ protected void tearDown() throws Exception {
+ pdom.releaseReadLock();
+ }
+
public void test1() throws Exception {
- PDOM pdom = (PDOM)CCorePlugin.getPDOMManager().getPDOM(project);
-
IBinding[] Bs = pdom.findBindings(Pattern.compile("B"), new NullProgressMonitor());
assertEquals(1, Bs.length);
ICPPClassType B = (ICPPClassType)Bs[0];
@@ -54,8 +60,6 @@ public class ClassTests extends PDOMTestBase {
}
public void testNested() throws Exception {
- PDOM pdom = (PDOM)CCorePlugin.getPDOMManager().getPDOM(project);
-
IBinding[] bindings = pdom.findBindings(Pattern.compile("NestedA"), new NullProgressMonitor());
assertEquals(1, bindings.length);
ICPPClassType NestedA = (ICPPClassType)bindings[0];
@@ -79,8 +83,6 @@ public class ClassTests extends PDOMTestBase {
}
public void failedTest147903() throws Exception {
- PDOM pdom = (PDOM)CCorePlugin.getPDOMManager().getPDOM(project);
-
IBinding[] bindings = pdom.findBindings(Pattern.compile("pr147903"), new NullProgressMonitor());
assertEquals(1, bindings.length);
ICPPNamespaceScope ns = ((ICPPNamespace)bindings[0]).getNamespaceScope();
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/EnumerationTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/EnumerationTests.java
index 7373fcdb671..c795b199969 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/EnumerationTests.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/EnumerationTests.java
@@ -28,15 +28,22 @@ import org.eclipse.core.runtime.NullProgressMonitor;
*/
public class EnumerationTests extends PDOMTestBase {
- protected ICProject project;
-
+ protected PDOM pdom;
+
protected void setUp() throws Exception {
- project = createProject("enumerationTests");
+ if (pdom == null) {
+ ICProject project = createProject("enumerationTests");
+ pdom = (PDOM)CCorePlugin.getPDOMManager().getPDOM(project);
+ }
+ pdom.acquireReadLock();
+ }
+
+ protected void tearDown() throws Exception {
+ pdom.releaseReadLock();
}
public void testC() throws Exception {
// Check bindings
- PDOM pdom = (PDOM)CCorePlugin.getPDOMManager().getPDOM(project);
Pattern pattern = Pattern.compile("TestCEnum");
IBinding[] bindings = pdom.findBindings(pattern, new NullProgressMonitor());
assertEquals(1, bindings.length);
@@ -69,7 +76,6 @@ public class EnumerationTests extends PDOMTestBase {
public void testCPP() throws Exception {
// Check bindings
- PDOM pdom = (PDOM)CCorePlugin.getPDOMManager().getPDOM(project);
Pattern pattern = Pattern.compile("TestCPPEnum");
IBinding[] bindings = pdom.findBindings(pattern, new NullProgressMonitor());
assertEquals(1, bindings.length);
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 b54f40bcd87..efefe12bd46 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
@@ -10,9 +10,6 @@
*******************************************************************************/
package org.eclipse.cdt.internal.pdom.tests;
-import java.util.HashSet;
-import java.util.Set;
-
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.internal.core.pdom.PDOM;
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/PDOMTestBase.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/PDOMTestBase.java
index 9f82dd1fa0d..a806acbeed8 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/PDOMTestBase.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/PDOMTestBase.java
@@ -17,10 +17,12 @@ import junit.framework.TestCase;
import org.eclipse.cdt.core.CCProjectNature;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.CProjectNature;
+import org.eclipse.cdt.core.dom.IPDOMManager;
import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.core.testplugin.CTestPlugin;
import org.eclipse.cdt.internal.core.pdom.indexer.fast.PDOMFastIndexer;
import org.eclipse.cdt.internal.core.pdom.indexer.fast.PDOMFastReindex;
+import org.eclipse.cdt.internal.core.pdom.indexer.nulli.PDOMNullIndexer;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectDescription;
import org.eclipse.core.resources.IWorkspace;
@@ -53,6 +55,15 @@ public class PDOMTestBase extends TestCase {
final ICProject cprojects[] = new ICProject[1];
workspace.run(new IWorkspaceRunnable() {
public void run(IProgressMonitor monitor) throws CoreException {
+ IPDOMManager manager = CCorePlugin.getPDOMManager();
+ // Make sure the default is no indexer
+ String oldDefault = manager.getDefaultIndexerId();
+ if (!PDOMNullIndexer.ID.equals(oldDefault))
+ manager.setDefaultIndexerId(PDOMNullIndexer.ID);
+ else
+ oldDefault = null;
+
+ // Create the project
IProject project = workspace.getRoot().getProject(projectName);
project.create(monitor);
project.open(monitor);
@@ -89,6 +100,10 @@ public class PDOMTestBase extends TestCase {
indexer.setProject(cproject);
PDOMFastReindex reindex = new PDOMFastReindex(indexer);
reindex.run(monitor);
+
+ // Set the default indexer back
+ if (oldDefault != null)
+ manager.setDefaultIndexerId(oldDefault);
cprojects[0] = cproject;
}
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/PDOMTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/PDOMTests.java
index 505ad628476..49b43b9406b 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/PDOMTests.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/PDOMTests.java
@@ -25,6 +25,7 @@ public class PDOMTests extends TestSuite {
suite.addTestSuite(EnumerationTests.class);
suite.addTestSuite(ClassTests.class);
suite.addTestSuite(TypesTests.class);
+ suite.addTestSuite(IncludesTests.class);
return suite;
}
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/TypesTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/TypesTests.java
index 4c3672b3855..4e3eeb7c432 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/TypesTests.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/TypesTests.java
@@ -31,15 +31,21 @@ import org.eclipse.core.runtime.NullProgressMonitor;
*/
public class TypesTests extends PDOMTestBase {
- protected ICProject project;
-
+ protected PDOM pdom;
+
protected void setUp() throws Exception {
- project = createProject("types");
+ if (pdom == null) {
+ ICProject project = createProject("types");
+ pdom = (PDOM)CCorePlugin.getPDOMManager().getPDOM(project);
+ }
+ pdom.acquireReadLock();
}
+ protected void tearDown() throws Exception {
+ pdom.releaseReadLock();
+ }
+
public void testC() throws Exception {
- PDOM pdom = (PDOM)CCorePlugin.getPDOMManager().getPDOM(project);
-
// Get the binding for A::f
IBinding [] CAs = pdom.findBindings(Pattern.compile("CA"), new NullProgressMonitor());
assertEquals(1, CAs.length);
@@ -57,8 +63,6 @@ public class TypesTests extends PDOMTestBase {
}
public void testCPP() throws Exception {
- PDOM pdom = (PDOM)CCorePlugin.getPDOMManager().getPDOM(project);
-
// Get the binding for A::f
IBinding [] As = pdom.findBindings(Pattern.compile("A"), new NullProgressMonitor());
assertEquals(1, As.length);
@@ -76,7 +80,6 @@ public class TypesTests extends PDOMTestBase {
}
public void test145351() throws Exception {
- PDOM pdom = (PDOM)CCorePlugin.getPDOMManager().getPDOM(project);
IBinding [] bindings = pdom.findBindings(Pattern.compile("spinlock_t"), new NullProgressMonitor());
assertEquals(1, bindings.length);
ITypedef spinlock_t = (ITypedef)bindings[0];

Back to the top