From 98cc3ec6c9ef0c1b47631c6d3a3ff8035e080249 Mon Sep 17 00:00:00 2001 From: Roberto Raggi <qtc-committer@nokia.com> Date: Mon, 29 Dec 2008 09:44:49 +0100 Subject: [PATCH] More testing of typedefs. --- .../auto/cplusplus/semantic/tst_semantic.cpp | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tests/auto/cplusplus/semantic/tst_semantic.cpp b/tests/auto/cplusplus/semantic/tst_semantic.cpp index 5a82429d54f..ccc388e279a 100644 --- a/tests/auto/cplusplus/semantic/tst_semantic.cpp +++ b/tests/auto/cplusplus/semantic/tst_semantic.cpp @@ -96,6 +96,7 @@ private slots: void function_definition_1(); void nested_class_1(); void typedef_1(); + void typedef_2(); }; void tst_Semantic::function_declaration_1() @@ -264,5 +265,35 @@ void tst_Semantic::typedef_1() QVERIFY(mainFun); } +void tst_Semantic::typedef_2() +{ + QSharedPointer<Document> doc = document( +"struct _Point {\n" +" int x, y;\n" +"};\n" +"typedef _Point Point;\n" +"int main() {\n" +" Point pt;\n" +" pt.x = 1;\n" +"}\n" + ); + + QCOMPARE(doc->errorCount, 0U); + QCOMPARE(doc->globals->symbolCount(), 3U); + + Class *_pointStruct= doc->globals->symbolAt(0)->asClass(); + QVERIFY(_pointStruct); + QCOMPARE(_pointStruct->memberCount(), 2U); + + Declaration *typedefPointDecl = doc->globals->symbolAt(1)->asDeclaration(); + QVERIFY(typedefPointDecl); + QVERIFY(typedefPointDecl->isTypedef()); + QVERIFY(typedefPointDecl->type()->isNamedType()); + QCOMPARE(typedefPointDecl->type()->asNamedType()->name(), _pointStruct->name()); + + Function *mainFun = doc->globals->symbolAt(2)->asFunction(); + QVERIFY(mainFun); +} + QTEST_APPLESS_MAIN(tst_Semantic) #include "tst_semantic.moc" -- GitLab