Remove Q_ASSERT from QMetaType autotest
authorJason McDonald <jason.mcdonald@nokia.com>
Fri, 6 May 2011 06:34:15 +0000 (16:34 +1000)
committerRohan McGovern <rohan.mcgovern@nokia.com>
Wed, 18 May 2011 00:46:46 +0000 (10:46 +1000)
Replace Q_ASSERT in helper class with code to count failures and report
meaningful warnings.  The test function then fails the test if any
failures were recorded.

Change-Id: I0d6650e6036c8e45729c16d1dbb7543b4fb42553
Task-number: QTBUG-17582
Reviewed-by: Rohan McGovern
(cherry picked from commit 8512dc16553ecf511c40a2ba7a815f777d7d5c59)

tests/auto/qmetatype/tst_qmetatype.cpp

index fcb949f..ccf0ac5 100644 (file)
@@ -96,10 +96,18 @@ struct Bar
     Bar()
     {
         // check re-entrancy
-        Q_ASSERT(QMetaType::isRegistered(qRegisterMetaType<Foo>("Foo")));
+        if (!QMetaType::isRegistered(qRegisterMetaType<Foo>("Foo"))) {
+            qWarning("%s: re-entrancy test failed", Q_FUNC_INFO);
+            ++failureCount;
+        }
     }
+
+public:
+    static int failureCount;
 };
 
+int Bar::failureCount = 0;
+
 class MetaTypeTorturer: public QThread
 {
     Q_OBJECT
@@ -161,6 +169,7 @@ void tst_QMetaType::threadSafety()
     QCOMPARE(t1.failureCount, 0);
     QCOMPARE(t2.failureCount, 0);
     QCOMPARE(t3.failureCount, 0);
+    QCOMPARE(Bar::failureCount, 0);
 }
 
 namespace TestSpace