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