From 19168ca21ffda95de6c1e3ef07b4b57a58559e41 Mon Sep 17 00:00:00 2001 From: Jason McDonald Date: Mon, 17 Oct 2011 14:32:54 +1000 Subject: [PATCH] Prefer QSKIP to QTEST_NOOP_MAIN. There is no way for a .pro file to know if exceptions are supported in the Qt build, so these tests cannot be omitted from the build if exceptions are not supported. Because of this limitation, these tests were using QTEST_NOOP_MAIN when exceptions were not available, making the tests appear to pass. This commit changes QTEST_NOOP_MAIN to QSKIP, so that the user receives a clear indication that the test isn't testing anything when exceptions are not available. Change-Id: I2facf08ba69e6f985e2da50dd36ad2658246b22e Reviewed-by: Rohan McGovern --- tests/auto/exceptionsafety/tst_exceptionsafety.cpp | 18 ++++++++++++++---- .../tst_exceptionsafety_objects.cpp | 16 +++++++++++----- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/tests/auto/exceptionsafety/tst_exceptionsafety.cpp b/tests/auto/exceptionsafety/tst_exceptionsafety.cpp index ef6e96f..27db9ea 100644 --- a/tests/auto/exceptionsafety/tst_exceptionsafety.cpp +++ b/tests/auto/exceptionsafety/tst_exceptionsafety.cpp @@ -44,13 +44,13 @@ QT_USE_NAMESPACE -#if defined(QT_NO_EXCEPTIONS) - QTEST_NOOP_MAIN -#else class tst_ExceptionSafety: public QObject { Q_OBJECT private slots: +#ifdef QT_NO_EXCEPTIONS + void initTestCase(); +#else void exceptionInSlot(); void exceptionVector(); void exceptionHash(); @@ -59,8 +59,17 @@ private slots: void exceptionLinkedList(); // void exceptionEventLoop(); // void exceptionSignalSlot(); +#endif }; +#ifdef QT_NO_EXCEPTIONS +void tst_ExceptionSafety::initTestCase() +{ + QSKIP("This test requires exception support", SkipAll); +} + +#else + class Emitter : public QObject { Q_OBJECT @@ -719,6 +728,7 @@ void tst_ExceptionSafety::exceptionSignalSlot() } #endif +#endif + QTEST_MAIN(tst_ExceptionSafety) #include "tst_exceptionsafety.moc" -#endif // QT_NO_EXCEPTIONS diff --git a/tests/auto/exceptionsafety_objects/tst_exceptionsafety_objects.cpp b/tests/auto/exceptionsafety_objects/tst_exceptionsafety_objects.cpp index 82289d9..0d410a7 100644 --- a/tests/auto/exceptionsafety_objects/tst_exceptionsafety_objects.cpp +++ b/tests/auto/exceptionsafety_objects/tst_exceptionsafety_objects.cpp @@ -50,10 +50,6 @@ QT_USE_NAMESPACE // this test only works with GLIBC -#if defined(QT_NO_EXCEPTIONS) - QTEST_NOOP_MAIN -#else - #include "oomsimulator.h" #include "3rdparty/memcheck.h" @@ -63,6 +59,7 @@ class tst_ExceptionSafety_Objects: public QObject public slots: void initTestCase(); +#ifndef QT_NO_EXCEPTIONS void cleanupTestCase(); private slots: @@ -84,8 +81,16 @@ private slots: private: static QtMsgHandler testMessageHandler; static void safeMessageHandler(QtMsgType, const char *); +#endif }; +#ifdef QT_NO_EXCEPTIONS +void tst_ExceptionSafety_Objects::initTestCase() +{ + QSKIP("This test requires exception support", SkipAll); +} + +#else // helper structs to create an arbitrary widget struct AbstractTester { @@ -790,6 +795,7 @@ void tst_ExceptionSafety_Objects::linkedList() doOOMTest(testFunction, 0); } +#endif + QTEST_MAIN(tst_ExceptionSafety_Objects) #include "tst_exceptionsafety_objects.moc" -#endif // QT_NO_EXCEPTIONS -- 2.7.4