Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDoug Schaefer2003-04-09 21:12:09 +0000
committerDoug Schaefer2003-04-09 21:12:09 +0000
commit7e62df880f4271f2585e5e1a1e7758493c3b8573 (patch)
tree92e7bbc8819356c24abb2ece093fd608648e14c6 /core/org.eclipse.cdt.ui.tests
parent663cef492f28489a2302caa2bef28bf8b72e9e29 (diff)
downloadorg.eclipse.cdt-7e62df880f4271f2585e5e1a1e7758493c3b8573.tar.gz
org.eclipse.cdt-7e62df880f4271f2585e5e1a1e7758493c3b8573.tar.xz
org.eclipse.cdt-7e62df880f4271f2585e5e1a1e7758493c3b8573.zip
Patch for John Camelon:
CORE Removed all the old Code Model Builder source that was no longer being used (NewModelBuilder.java, etc.). Moved all the files in parser.util directory to the dom. Organized imports. Fixed bug36250 Parser ignores functions with default parameters that have no name. Fixed bug36240 Parser incorrectly parses operator= Fixed bug36254 Parser doesn't recognize unsigned as a type by itself. TESTS Organized imports. Added DOMTests::testTemplateDeclarationOfMethod(). Added DOMTests::testBug36250(). Added DOMTests::testBug36240(). Added DOMTests::testBug36254().
Diffstat (limited to 'core/org.eclipse.cdt.ui.tests')
-rw-r--r--core/org.eclipse.cdt.ui.tests/ChangeLog9
-rw-r--r--core/org.eclipse.cdt.ui.tests/model/org/eclipse/cdt/core/model/tests/ArchiveTests.java19
-rw-r--r--core/org.eclipse.cdt.ui.tests/model/org/eclipse/cdt/core/model/tests/BinaryTests.java18
-rw-r--r--core/org.eclipse.cdt.ui.tests/model/org/eclipse/cdt/core/model/tests/CModelTests.java17
-rw-r--r--core/org.eclipse.cdt.ui.tests/model/org/eclipse/cdt/core/model/tests/TranslationUnitTests.java21
-rw-r--r--core/org.eclipse.cdt.ui.tests/parser/org/eclipse/cdt/core/parser/tests/DOMTests.java103
-rw-r--r--core/org.eclipse.cdt.ui.tests/parser/org/eclipse/cdt/core/parser/tests/ParserSymbolTableTest.java2
7 files changed, 161 insertions, 28 deletions
diff --git a/core/org.eclipse.cdt.ui.tests/ChangeLog b/core/org.eclipse.cdt.ui.tests/ChangeLog
index 56a4bcdb784..39b8d658164 100644
--- a/core/org.eclipse.cdt.ui.tests/ChangeLog
+++ b/core/org.eclipse.cdt.ui.tests/ChangeLog
@@ -1,4 +1,13 @@
2003-04-09 John Camelon
+ Removed all the old Code Model Builder source that was no longer being used (NewModelBuilder.java, etc.).
+ Moved all the files in parser.util directory to the dom.
+ Organized imports.
+ Added DOMTests::testTemplateDeclarationOfMethod().
+ Added DOMTests::testBug36250().
+ Added DOMTests::testBug36240().
+ Added DOMTests::testBug36254().
+
+2003-04-09 John Camelon
Updated ScannerTest::testBug36045().
Added ScannerTest::testBug36287().
Added DOMTests::testBug36288().
diff --git a/core/org.eclipse.cdt.ui.tests/model/org/eclipse/cdt/core/model/tests/ArchiveTests.java b/core/org.eclipse.cdt.ui.tests/model/org/eclipse/cdt/core/model/tests/ArchiveTests.java
index 53520adb0ae..8338e65bdbf 100644
--- a/core/org.eclipse.cdt.ui.tests/model/org/eclipse/cdt/core/model/tests/ArchiveTests.java
+++ b/core/org.eclipse.cdt.ui.tests/model/org/eclipse/cdt/core/model/tests/ArchiveTests.java
@@ -11,11 +11,20 @@ import java.io.FileNotFoundException;
import junit.framework.TestCase;
import junit.framework.TestSuite;
-import org.eclipse.cdt.testplugin.*;
-import org.eclipse.cdt.testplugin.util.*;
-import org.eclipse.cdt.core.model.*;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
+
+import org.eclipse.cdt.core.model.IArchive;
+import org.eclipse.cdt.core.model.IBinary;
+import org.eclipse.cdt.core.model.ICElement;
+import org.eclipse.cdt.core.model.ICProject;
+import org.eclipse.cdt.testplugin.CProjectHelper;
+import org.eclipse.cdt.testplugin.util.ExpectedStrings;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
diff --git a/core/org.eclipse.cdt.ui.tests/model/org/eclipse/cdt/core/model/tests/BinaryTests.java b/core/org.eclipse.cdt.ui.tests/model/org/eclipse/cdt/core/model/tests/BinaryTests.java
index b5f9af70b83..ac6c775102b 100644
--- a/core/org.eclipse.cdt.ui.tests/model/org/eclipse/cdt/core/model/tests/BinaryTests.java
+++ b/core/org.eclipse.cdt.ui.tests/model/org/eclipse/cdt/core/model/tests/BinaryTests.java
@@ -11,11 +11,19 @@ import java.io.FileNotFoundException;
import junit.framework.TestCase;
import junit.framework.TestSuite;
-import org.eclipse.cdt.testplugin.*;
-import org.eclipse.cdt.testplugin.util.*;
-import org.eclipse.cdt.core.model.*;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
+
+import org.eclipse.cdt.core.model.IBinary;
+import org.eclipse.cdt.core.model.ICElement;
+import org.eclipse.cdt.core.model.ICProject;
+import org.eclipse.cdt.testplugin.CProjectHelper;
+import org.eclipse.cdt.testplugin.util.ExpectedStrings;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
diff --git a/core/org.eclipse.cdt.ui.tests/model/org/eclipse/cdt/core/model/tests/CModelTests.java b/core/org.eclipse.cdt.ui.tests/model/org/eclipse/cdt/core/model/tests/CModelTests.java
index 62b9bdecfbf..262bd28e7cf 100644
--- a/core/org.eclipse.cdt.ui.tests/model/org/eclipse/cdt/core/model/tests/CModelTests.java
+++ b/core/org.eclipse.cdt.ui.tests/model/org/eclipse/cdt/core/model/tests/CModelTests.java
@@ -11,11 +11,20 @@ import java.io.FileNotFoundException;
import junit.framework.TestCase;
import junit.framework.TestSuite;
-import org.eclipse.cdt.testplugin.*;
+
import org.eclipse.cdt.core.CCProjectNature;
-import org.eclipse.cdt.core.model.*;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
+import org.eclipse.cdt.core.model.CoreModel;
+import org.eclipse.cdt.core.model.ICProject;
+import org.eclipse.cdt.testplugin.CProjectHelper;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.IWorkspaceDescription;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
/**
diff --git a/core/org.eclipse.cdt.ui.tests/model/org/eclipse/cdt/core/model/tests/TranslationUnitTests.java b/core/org.eclipse.cdt.ui.tests/model/org/eclipse/cdt/core/model/tests/TranslationUnitTests.java
index 5cf0e56fd72..db8d6d889d5 100644
--- a/core/org.eclipse.cdt.ui.tests/model/org/eclipse/cdt/core/model/tests/TranslationUnitTests.java
+++ b/core/org.eclipse.cdt.ui.tests/model/org/eclipse/cdt/core/model/tests/TranslationUnitTests.java
@@ -12,11 +12,22 @@ import java.util.Stack;
import junit.framework.TestCase;
import junit.framework.TestSuite;
-import org.eclipse.cdt.testplugin.*;
-import org.eclipse.cdt.testplugin.util.*;
-import org.eclipse.cdt.core.model.*;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
+
+import org.eclipse.cdt.core.model.CModelException;
+import org.eclipse.cdt.core.model.ICElement;
+import org.eclipse.cdt.core.model.ICProject;
+import org.eclipse.cdt.core.model.IInclude;
+import org.eclipse.cdt.core.model.ITranslationUnit;
+import org.eclipse.cdt.testplugin.CProjectHelper;
+import org.eclipse.cdt.testplugin.util.ExpectedStrings;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.IWorkspaceDescription;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
diff --git a/core/org.eclipse.cdt.ui.tests/parser/org/eclipse/cdt/core/parser/tests/DOMTests.java b/core/org.eclipse.cdt.ui.tests/parser/org/eclipse/cdt/core/parser/tests/DOMTests.java
index dfc12ecb182..62fe96a3dd4 100644
--- a/core/org.eclipse.cdt.ui.tests/parser/org/eclipse/cdt/core/parser/tests/DOMTests.java
+++ b/core/org.eclipse.cdt.ui.tests/parser/org/eclipse/cdt/core/parser/tests/DOMTests.java
@@ -8,13 +8,16 @@ import java.util.List;
import junit.framework.TestCase;
import org.eclipse.cdt.internal.core.dom.ASMDefinition;
+import org.eclipse.cdt.internal.core.dom.AccessSpecifier;
import org.eclipse.cdt.internal.core.dom.ArrayQualifier;
import org.eclipse.cdt.internal.core.dom.BaseSpecifier;
+import org.eclipse.cdt.internal.core.dom.ClassKey;
import org.eclipse.cdt.internal.core.dom.ClassSpecifier;
import org.eclipse.cdt.internal.core.dom.ConstructorChain;
import org.eclipse.cdt.internal.core.dom.ConstructorChainElement;
import org.eclipse.cdt.internal.core.dom.ConstructorChainElementExpression;
import org.eclipse.cdt.internal.core.dom.DOMBuilder;
+import org.eclipse.cdt.internal.core.dom.DeclSpecifier;
import org.eclipse.cdt.internal.core.dom.Declarator;
import org.eclipse.cdt.internal.core.dom.ElaboratedTypeSpecifier;
import org.eclipse.cdt.internal.core.dom.EnumerationSpecifier;
@@ -25,6 +28,7 @@ import org.eclipse.cdt.internal.core.dom.Expression;
import org.eclipse.cdt.internal.core.dom.Inclusion;
import org.eclipse.cdt.internal.core.dom.LinkageSpecification;
import org.eclipse.cdt.internal.core.dom.Macro;
+import org.eclipse.cdt.internal.core.dom.Name;
import org.eclipse.cdt.internal.core.dom.NamespaceDefinition;
import org.eclipse.cdt.internal.core.dom.ParameterDeclaration;
import org.eclipse.cdt.internal.core.dom.ParameterDeclarationClause;
@@ -38,14 +42,7 @@ import org.eclipse.cdt.internal.core.dom.UsingDirective;
import org.eclipse.cdt.internal.core.parser.Parser;
import org.eclipse.cdt.internal.core.parser.ParserException;
import org.eclipse.cdt.internal.core.parser.Token;
-import org.eclipse.cdt.internal.core.parser.util.AccessSpecifier;
-import org.eclipse.cdt.internal.core.parser.util.ClassKey;
-import org.eclipse.cdt.internal.core.parser.util.DeclSpecifier;
-import org.eclipse.cdt.internal.core.parser.util.Name;
-/**
- * Tests the construction of DOMs for snippets of code
- */
public class DOMTests extends TestCase {
public DOMTests( String arg )
@@ -986,7 +983,35 @@ public class DOMTests extends TestCase {
}
}
- public void testTemplateDeclaration() throws Exception {
+ public void testTemplateDeclarationOfMethod() throws Exception
+ {
+ TranslationUnit tu = parse( "template<class A, typename B=C> A aTemplatedFunction( B bInstance );");
+ assertEquals( tu.getDeclarations().size(), 1 );
+ TemplateDeclaration templateDeclaration = (TemplateDeclaration)tu.getDeclarations().get(0);
+ assertEquals( templateDeclaration.getTemplateParms().getDeclarations().size(), 2 );
+ TemplateParameter templateParameter = (TemplateParameter)templateDeclaration.getTemplateParms().getDeclarations().get(0);
+ assertEquals( templateParameter.getKind(), TemplateParameter.k_class );
+ assertEquals( templateParameter.getName().toString(), "A");
+ templateParameter = (TemplateParameter)templateDeclaration.getTemplateParms().getDeclarations().get(1);
+ assertEquals( templateParameter.getKind(), TemplateParameter.k_typename );
+ assertEquals( templateParameter.getName().toString(), "B");
+ assertEquals( templateParameter.getTypeId().toString(), "C");
+ assertEquals( templateDeclaration.getDeclarations().size(), 1 );
+ SimpleDeclaration methodDeclaration = (SimpleDeclaration) templateDeclaration.getDeclarations().get(0);
+ assertEquals( methodDeclaration.getDeclSpecifier().getType(), DeclSpecifier.t_type );
+ assertEquals( methodDeclaration.getDeclSpecifier().getTypeName(), "A");
+ assertEquals( methodDeclaration.getDeclarators().size(), 1 );
+ Declarator declarator = (Declarator)methodDeclaration.getDeclarators().get(0);
+ assertEquals( declarator.getName().toString(), "aTemplatedFunction" );
+ assertEquals( declarator.getParms().getDeclarations().size(), 1 );
+ ParameterDeclaration parameterDeclaration = (ParameterDeclaration)declarator.getParms().getDeclarations().get(0);
+ assertEquals( parameterDeclaration.getDeclSpecifier().getType(), DeclSpecifier.t_type );
+ assertEquals( parameterDeclaration.getDeclSpecifier().getTypeName(), "B" );
+ assertEquals( parameterDeclaration.getDeclarators().size(), 1 );
+ assertEquals( ((Declarator)parameterDeclaration.getDeclarators().get(0)).getName().toString(), "bInstance");
+ }
+
+ public void testTemplateDeclarationOfClass() throws Exception {
TranslationUnit tu = parse( "template<class T, typename Tibor = junk, class, typename, int x, float y,template <class Y> class, template<class A> class AClass> class myarray { /* ... */ };");
assertEquals( tu.getDeclarations().size(), 1 );
TemplateDeclaration declaration = (TemplateDeclaration)tu.getDeclarations().get(0);
@@ -1137,6 +1162,68 @@ public class DOMTests extends TestCase {
}
}
+ public void testBug36250() throws Exception
+ {
+ TranslationUnit tu = parse( "int f( int = 0 );");
+ assertEquals( tu.getDeclarations().size(), 1 );
+ SimpleDeclaration functionDeclaration = (SimpleDeclaration)tu.getDeclarations().get(0);
+ assertEquals( functionDeclaration.getDeclSpecifier().getType(), DeclSpecifier.t_int );
+ assertEquals( functionDeclaration.getDeclarators().size(), 1 );
+ Declarator functionDeclarator = (Declarator)functionDeclaration.getDeclarators().get(0);
+ assertEquals( functionDeclarator.getName().toString(), "f" );
+ assertEquals( functionDeclarator.getParms().getDeclarations().size(), 1 );
+ ParameterDeclaration parameterDeclaration = (ParameterDeclaration)functionDeclarator.getParms().getDeclarations().get(0);
+ assertEquals( parameterDeclaration .getDeclSpecifier().getType(), DeclSpecifier.t_int );
+ assertEquals( parameterDeclaration .getDeclarators().size(), 1 );
+ Declarator parameterDeclarator = (Declarator)parameterDeclaration.getDeclarators().get(0);
+ assertNull( parameterDeclarator.getName() );
+ assertNotNull( parameterDeclarator.getExpression());
+
+ }
+ public void testBug36240() throws Exception
+ {
+ TranslationUnit tu = parse( "A & A::operator=( A ){}");
+ assertEquals( tu.getDeclarations().size(), 1 );
+ SimpleDeclaration functionDeclaration = (SimpleDeclaration)tu.getDeclarations().get(0);
+ assertEquals( functionDeclaration.getDeclSpecifier().getType(), DeclSpecifier.t_type );
+ assertEquals( functionDeclaration.getDeclSpecifier().getTypeName(), "A" );
+ assertEquals( functionDeclaration.getDeclarators().size(), 1 );
+ Declarator functionDeclarator = (Declarator)functionDeclaration.getDeclarators().get(0);
+ assertEquals( functionDeclarator.getPointerOperators().size(), 1 );
+ PointerOperator po = (PointerOperator)functionDeclarator.getPointerOperators().get(0);
+ assertEquals( po.getType(), PointerOperator.t_reference );
+ assertFalse( po.isConst() || po.isVolatile() );
+ assertEquals( functionDeclarator.getName().toString(), "A::operator=");
+ assertEquals( functionDeclarator.getParms().getDeclarations().size(), 1 );
+ ParameterDeclaration parameterDeclaration = (ParameterDeclaration)functionDeclarator.getParms().getDeclarations().get(0);
+ assertEquals( parameterDeclaration.getDeclSpecifier().getType(), DeclSpecifier.t_type );
+ assertEquals( parameterDeclaration.getDeclSpecifier().getTypeName(), "A");
+ assertEquals( parameterDeclaration .getDeclarators().size(), 1 );
+ Declarator parameterDeclarator = (Declarator)parameterDeclaration.getDeclarators().get(0);
+ assertNull( parameterDeclarator.getName() );
+ }
+
+ public void testBug36254() throws Exception
+ {
+ TranslationUnit tu = parse( "unsigned i;\nvoid f( unsigned p1 = 0 );");
+ assertEquals( tu.getDeclarations().size(), 2 );
+ SimpleDeclaration declaration = (SimpleDeclaration)tu.getDeclarations().get(0);
+ assertTrue( declaration.getDeclSpecifier().isUnsigned());
+ assertEquals( 1, declaration.getDeclarators().size() );
+ assertEquals( "i", ((Declarator)declaration.getDeclarators().get(0)).getName().toString() );
+ declaration = (SimpleDeclaration)tu.getDeclarations().get(1);
+ assertEquals( declaration.getDeclSpecifier().getType(), DeclSpecifier.t_void );
+ assertEquals( 1, declaration.getDeclarators().size() );
+ Declarator declarator = (Declarator)declaration.getDeclarators().get(0);
+ assertEquals( declarator.getName().toString(), "f" );
+ assertEquals( declarator.getParms().getDeclarations().size(), 1 );
+ ParameterDeclaration parmDecl = (ParameterDeclaration)declarator.getParms().getDeclarations().get(0);
+ assertTrue( parmDecl.getDeclSpecifier().isUnsigned());
+ assertEquals( parmDecl.getDeclarators().size(), 1 );
+ Declarator parmDeclarator = (Declarator) parmDecl.getDeclarators().get(0);
+ assertEquals( parmDeclarator.getName().toString(), "p1");
+ assertNotNull( parmDeclarator.getExpression());
+ }
}
diff --git a/core/org.eclipse.cdt.ui.tests/parser/org/eclipse/cdt/core/parser/tests/ParserSymbolTableTest.java b/core/org.eclipse.cdt.ui.tests/parser/org/eclipse/cdt/core/parser/tests/ParserSymbolTableTest.java
index 9acfacdae7e..4c49937d5c9 100644
--- a/core/org.eclipse.cdt.ui.tests/parser/org/eclipse/cdt/core/parser/tests/ParserSymbolTableTest.java
+++ b/core/org.eclipse.cdt.ui.tests/parser/org/eclipse/cdt/core/parser/tests/ParserSymbolTableTest.java
@@ -20,7 +20,7 @@ import junit.framework.TestCase;
import org.eclipse.cdt.internal.core.parser.Declaration;
import org.eclipse.cdt.internal.core.parser.ParserSymbolTable;
import org.eclipse.cdt.internal.core.parser.ParserSymbolTableException;
-import org.eclipse.cdt.internal.core.parser.util.TypeInfo;
+import org.eclipse.cdt.internal.core.parser.TypeInfo;
/**
* @author aniefer

Back to the top