mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
2005-08-30 Alain Magloire
New test in PR 107150 (written by Devin Steffler) * parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java * parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java * parser/org/eclipse/cdt/core/parser/tests/scanner2/Scanner2Test.java
This commit is contained in:
parent
ca26718e84
commit
930b697e19
4 changed files with 132 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2005-08-30 Alain Magloire
|
||||||
|
New test in PR 107150 (written by Devin Steffler)
|
||||||
|
* parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java
|
||||||
|
* parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java
|
||||||
|
* parser/org/eclipse/cdt/core/parser/tests/scanner2/Scanner2Test.java
|
||||||
|
|
||||||
2005-06-26 Alain Magloire
|
2005-06-26 Alain Magloire
|
||||||
* model/org/eclipse/cdt/core/model/tests/StructuralTemplateTests.java
|
* model/org/eclipse/cdt/core/model/tests/StructuralTemplateTests.java
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,7 @@ import org.eclipse.cdt.core.dom.ast.IASTLabelStatement;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression;
|
import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTName;
|
import org.eclipse.cdt.core.dom.ast.IASTName;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTNamedTypeSpecifier;
|
import org.eclipse.cdt.core.dom.ast.IASTNamedTypeSpecifier;
|
||||||
|
import org.eclipse.cdt.core.dom.ast.IASTProblemDeclaration;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTReturnStatement;
|
import org.eclipse.cdt.core.dom.ast.IASTReturnStatement;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier;
|
import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration;
|
import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration;
|
||||||
|
@ -5099,4 +5100,30 @@ public class AST2CPPTests extends AST2BaseTest {
|
||||||
IASTCompoundStatement body = (IASTCompoundStatement) f.getBody();
|
IASTCompoundStatement body = (IASTCompoundStatement) f.getBody();
|
||||||
assertEquals( body.getStatements().length, 3 );
|
assertEquals( body.getStatements().length, 3 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testBug107150() throws Exception {
|
||||||
|
StringBuffer buffer = new StringBuffer();
|
||||||
|
buffer.append("#define FUNC_PROTOTYPE_PARAMS(list) list\r\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("int func1 FUNC_PROTOTYPE_PARAMS((int arg1)){\r\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("return 0;\r\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("}\r\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("int func2 FUNC_PROTOTYPE_PARAMS\r\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("((int arg1)){\r\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("return 0;\r\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("}\r\n"); //$NON-NLS-1$
|
||||||
|
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
|
||||||
|
assertFalse( tu.getDeclarations()[1] instanceof IASTProblemDeclaration );
|
||||||
|
|
||||||
|
buffer = new StringBuffer();
|
||||||
|
buffer.append("#define FUNC_PROTOTYPE_PARAMS(list) list\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("int func1 FUNC_PROTOTYPE_PARAMS((int arg1)){\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("return 0;\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("}\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("int func2 FUNC_PROTOTYPE_PARAMS\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("((int arg1)){\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("return 0;\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("}\n"); //$NON-NLS-1$
|
||||||
|
tu = parse(buffer.toString(), ParserLanguage.CPP);
|
||||||
|
assertFalse( tu.getDeclarations()[1] instanceof IASTProblemDeclaration );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,6 +41,7 @@ import org.eclipse.cdt.core.dom.ast.IASTNamedTypeSpecifier;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTNullStatement;
|
import org.eclipse.cdt.core.dom.ast.IASTNullStatement;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration;
|
import org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTProblem;
|
import org.eclipse.cdt.core.dom.ast.IASTProblem;
|
||||||
|
import org.eclipse.cdt.core.dom.ast.IASTProblemDeclaration;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTReturnStatement;
|
import org.eclipse.cdt.core.dom.ast.IASTReturnStatement;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier;
|
import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration;
|
import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration;
|
||||||
|
@ -3367,4 +3368,60 @@ public class AST2Tests extends AST2BaseTest {
|
||||||
IASTCompoundStatement body = (IASTCompoundStatement) f.getBody();
|
IASTCompoundStatement body = (IASTCompoundStatement) f.getBody();
|
||||||
assertEquals( body.getStatements().length, 3 );
|
assertEquals( body.getStatements().length, 3 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testBug107150() throws Exception {
|
||||||
|
StringBuffer buffer = new StringBuffer();
|
||||||
|
buffer.append("#define FUNC_PROTOTYPE_PARAMS(list) list\r\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("int func1 FUNC_PROTOTYPE_PARAMS((int arg1)){\r\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("return 0;\r\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("}\r\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("int func2 FUNC_PROTOTYPE_PARAMS\r\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("((int arg1)){\r\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("return 0;\r\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("}\r\n"); //$NON-NLS-1$
|
||||||
|
parse(buffer.toString(), ParserLanguage.C);
|
||||||
|
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
|
||||||
|
assertFalse( tu.getDeclarations()[1] instanceof IASTProblemDeclaration );
|
||||||
|
|
||||||
|
buffer = new StringBuffer();
|
||||||
|
buffer.append("#define FUNC_PROTOTYPE_PARAMS(list) list\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("int func1 FUNC_PROTOTYPE_PARAMS((int arg1)){\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("return 0;\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("}\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("int func2 FUNC_PROTOTYPE_PARAMS\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("((int arg1)){\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("return 0;\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("}\n"); //$NON-NLS-1$
|
||||||
|
parse(buffer.toString(), ParserLanguage.C);
|
||||||
|
tu = parse(buffer.toString(), ParserLanguage.CPP);
|
||||||
|
assertFalse( tu.getDeclarations()[1] instanceof IASTProblemDeclaration );
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testBug107150b() throws Exception {
|
||||||
|
StringBuffer buffer = new StringBuffer();
|
||||||
|
buffer.append("#define FUNC_PROTOTYPE_PARAMS(list) list\r\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("int func1 FUNC_PROTOTYPE_PARAMS((int arg1)){\r\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("return 0;\r\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("}\r\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("int func2 FUNC_PROTOTYPE_PARAMS\r\n \r\n \t \r\n \r\n "); //$NON-NLS-1$
|
||||||
|
buffer.append("((int arg1)){\r\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("return 0;\r\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("}\r\n"); //$NON-NLS-1$
|
||||||
|
parse(buffer.toString(), ParserLanguage.C);
|
||||||
|
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
|
||||||
|
assertFalse( tu.getDeclarations()[1] instanceof IASTProblemDeclaration );
|
||||||
|
|
||||||
|
buffer = new StringBuffer();
|
||||||
|
buffer.append("#define FUNC_PROTOTYPE_PARAMS(list) list\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("int func1 FUNC_PROTOTYPE_PARAMS((int arg1)){\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("return 0;\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("}\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("int func2 FUNC_PROTOTYPE_PARAMS\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("((int arg1)){\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("return 0;\n"); //$NON-NLS-1$
|
||||||
|
buffer.append("}\n"); //$NON-NLS-1$
|
||||||
|
parse(buffer.toString(), ParserLanguage.C);
|
||||||
|
tu = parse(buffer.toString(), ParserLanguage.CPP);
|
||||||
|
assertFalse( tu.getDeclarations()[1] instanceof IASTProblemDeclaration );
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -2364,4 +2364,46 @@ public class Scanner2Test extends BaseScanner2Test
|
||||||
fullyTokenize();
|
fullyTokenize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testBug107150() throws Exception {
|
||||||
|
Writer writer = new StringWriter();
|
||||||
|
writer.write("#define FUNC_PROTOTYPE_PARAMS(list) list\r\n"); //$NON-NLS-1$
|
||||||
|
writer.write("int func2 FUNC_PROTOTYPE_PARAMS\r\n"); //$NON-NLS-1$
|
||||||
|
writer.write("((int arg1)){\r\n"); //$NON-NLS-1$
|
||||||
|
writer.write(" return 0;\r\n"); //$NON-NLS-1$
|
||||||
|
writer.write("}\r\n"); //$NON-NLS-1$
|
||||||
|
initializeScanner( writer.toString() );
|
||||||
|
validateToken( IToken.t_int );
|
||||||
|
validateIdentifier( "func2" ); //$NON-NLS-1$
|
||||||
|
validateToken( IToken.tLPAREN );
|
||||||
|
validateToken( IToken.t_int );
|
||||||
|
validateIdentifier( "arg1" ); //$NON-NLS-1$
|
||||||
|
validateToken( IToken.tRPAREN );
|
||||||
|
validateToken( IToken.tLBRACE );
|
||||||
|
validateToken( IToken.t_return );
|
||||||
|
validateInteger( "0" );
|
||||||
|
validateToken( IToken.tSEMI );
|
||||||
|
validateToken( IToken.tRBRACE );
|
||||||
|
validateEOF();
|
||||||
|
|
||||||
|
writer = new StringWriter();
|
||||||
|
writer.write("#define FUNC_PROTOTYPE_PARAMS(list) list\n"); //$NON-NLS-1$
|
||||||
|
writer.write("int func2 FUNC_PROTOTYPE_PARAMS\n"); //$NON-NLS-1$
|
||||||
|
writer.write("((int arg1)){\n"); //$NON-NLS-1$
|
||||||
|
writer.write(" return 0;\n"); //$NON-NLS-1$
|
||||||
|
writer.write("}\n"); //$NON-NLS-1$
|
||||||
|
initializeScanner( writer.toString() );
|
||||||
|
validateToken( IToken.t_int );
|
||||||
|
validateIdentifier( "func2" ); //$NON-NLS-1$
|
||||||
|
validateToken( IToken.tLPAREN );
|
||||||
|
validateToken( IToken.t_int );
|
||||||
|
validateIdentifier( "arg1" ); //$NON-NLS-1$
|
||||||
|
validateToken( IToken.tRPAREN );
|
||||||
|
validateToken( IToken.tLBRACE );
|
||||||
|
validateToken( IToken.t_return );
|
||||||
|
validateInteger( "0" );
|
||||||
|
validateToken( IToken.tSEMI );
|
||||||
|
validateToken( IToken.tRBRACE );
|
||||||
|
validateEOF();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue