From 1dd6c64246c48694f93e2fbc50f36f1742845f99 Mon Sep 17 00:00:00 2001 From: Roberto Raggi <roberto.raggi@nokia.com> Date: Tue, 20 Oct 2009 15:29:58 +0200 Subject: [PATCH] More tests for template-ids. --- tests/auto/cplusplus/ast/tst_ast.cpp | 42 ++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/tests/auto/cplusplus/ast/tst_ast.cpp b/tests/auto/cplusplus/ast/tst_ast.cpp index 958017a42cd..24fbe7865fa 100644 --- a/tests/auto/cplusplus/ast/tst_ast.cpp +++ b/tests/auto/cplusplus/ast/tst_ast.cpp @@ -44,15 +44,17 @@ private slots: void gcc_attributes_1(); // expressions - void simple_name(); - void template_id(); + void simple_name_1(); + void template_id_1(); void new_expression_1(); void new_expression_2(); void condition_1(); void init_1(); // statements - void if_statement(); + void if_statement_1(); + void if_statement_2(); + void if_statement_3(); void if_else_statement(); void while_statement(); void while_condition_statement(); @@ -99,7 +101,7 @@ void tst_AST::simple_declaration_1() QVERIFY(declStmt); } -void tst_AST::simple_name() +void tst_AST::simple_name_1() { QSharedPointer<TranslationUnit> unit(parseExpression("a")); AST *ast = unit->ast(); @@ -109,7 +111,7 @@ void tst_AST::simple_name() QCOMPARE(ast->asSimpleName()->identifier_token, 1U); } -void tst_AST::template_id() +void tst_AST::template_id_1() { QSharedPointer<TranslationUnit> unit(parseExpression("list<10>")); AST *ast = unit->ast(); @@ -255,7 +257,7 @@ void tst_AST::assignment_2() QVERIFY(ast->asExpressionStatement()); } -void tst_AST::if_statement() +void tst_AST::if_statement_1() { QSharedPointer<TranslationUnit> unit(parseStatement("if (a) b;")); @@ -283,6 +285,34 @@ void tst_AST::if_statement() QCOMPARE(id_expr->identifier_token, 5U); } +void tst_AST::if_statement_2() +{ + QSharedPointer<TranslationUnit> unit(parseStatement("if (x<0 && y>a);")); + + AST *ast = unit->ast(); + QVERIFY(ast != 0); + + IfStatementAST *stmt = ast->asIfStatement(); + QVERIFY(stmt != 0); + + QVERIFY(stmt->condition); + QVERIFY(stmt->condition->asBinaryExpression()); + QCOMPARE(unit->tokenKind(stmt->condition->asBinaryExpression()->binary_op_token), int(T_AMPER_AMPER)); +} + +void tst_AST::if_statement_3() +{ + QSharedPointer<TranslationUnit> unit(parseStatement("if (x<0 && x<0 && x<0 && x<0 && x<0 && x<0 && x<0);")); + + AST *ast = unit->ast(); + QVERIFY(ast != 0); + + IfStatementAST *stmt = ast->asIfStatement(); + QVERIFY(stmt != 0); + + QVERIFY(stmt->condition); +} + void tst_AST::if_else_statement() { QSharedPointer<TranslationUnit> unit(parseStatement("if (a) b; else c;")); -- GitLab