diff options
Diffstat (limited to 'tests/auto/testlib/selftests/warnings/tst_warnings.cpp')
-rw-r--r-- | tests/auto/testlib/selftests/warnings/tst_warnings.cpp | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/tests/auto/testlib/selftests/warnings/tst_warnings.cpp b/tests/auto/testlib/selftests/warnings/tst_warnings.cpp index 587d81c325..5add39ac88 100644 --- a/tests/auto/testlib/selftests/warnings/tst_warnings.cpp +++ b/tests/auto/testlib/selftests/warnings/tst_warnings.cpp @@ -1,6 +1,7 @@ // Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only +#undef QTEST_THROW_ON_FAILURE // fails ### investigate #include <QtCore/QCoreApplication> #include <QtCore/QRegularExpression> @@ -27,6 +28,7 @@ private slots: void testFailOnWarningsThenSkip(); #endif void testFailOnWarningsAndIgnoreWarnings(); + void testFailOnTemporaryObjectDestruction(); }; void tst_Warnings::testWarnings() @@ -115,7 +117,7 @@ void tst_Warnings::testMissingWarningsWithData() void tst_Warnings::testFailOnWarnings() { - // failOnWarnings() wasn't called yet; shouldn't fail; + // failOnWarning() wasn't called yet; shouldn't fail; qWarning("Ran out of space!"); #if QT_CONFIG(regularexpression) @@ -182,6 +184,7 @@ void tst_Warnings::testFailOnWarningsWithData() void tst_Warnings::testFailOnWarningsFailInHelper() { + const QTest::ThrowOnFailDisabler nothrow; // tests repeated QFAILs [](){ QFAIL("This failure message should be printed but not cause the test to abort"); }(); // So we've already failed, but we get more messages - that don't increment counters. const auto warnRegex = QRegularExpression("Ran out of .*!"); @@ -208,6 +211,27 @@ void tst_Warnings::testFailOnWarningsAndIgnoreWarnings() qWarning(warningStr); } +void tst_Warnings::testFailOnTemporaryObjectDestruction() +{ + QTest::failOnWarning("Running low on toothpaste!"); + QTest::ignoreMessage(QtWarningMsg, "Ran out of cabbage!"); + + class TestObject : public QObject + { + public: + ~TestObject() + { + // Shouldn't fail - ignored + qWarning("Ran out of cabbage!"); + // Should fail + qWarning("Running low on toothpaste!"); + } + }; + + QScopedPointer<TestObject, QScopedPointerDeleteLater> testObject(new TestObject); + QVERIFY(testObject); +} + QTEST_MAIN(tst_Warnings) #include "tst_warnings.moc" |