diff options
author | Edward Welbourne <edward.welbourne@qt.io> | 2021-06-11 14:33:41 +0200 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2021-06-15 18:55:16 +0200 |
commit | a93a9ea915332196821db9c197856955bedbfd26 (patch) | |
tree | 5f24f501522716fd26b79658669894b998be5175 /src/testlib/qtestresult.cpp | |
parent | b62fcccb1560698dddbf5167813ae1dc044fc35b (diff) |
Fix QFAIL() to interract correctly with QEXPECT_FAIL()
Previously, it went direct to QTestResults::addFailure() without going
via the checking for expected failure. Add QTestResults::fail() to
take care of this checking, as for verify() and compare().
Tidied up the code implementing expected failure and QFAIL(), while I
was about it. Adjusted an existing test to verify that expecting a
QFAIL() works, by using QFAIL() instead of QVERIFY(false).
Remove the QVERIFY(false) whose comment brought this to my attention.
[ChangeLog][QtTestLib][QFAIL] QEXPECT_FAIL() now correctly anticipates
a subsequent QFAIL(). Previously QFAIL() counted as a fail regardless.
Change-Id: Icc28cf70e5ff3006363791ea03aa01f2f591eb71
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/testlib/qtestresult.cpp')
-rw-r--r-- | src/testlib/qtestresult.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/testlib/qtestresult.cpp b/src/testlib/qtestresult.cpp index ee038d3704..96c7af29d5 100644 --- a/src/testlib/qtestresult.cpp +++ b/src/testlib/qtestresult.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtTest module of the Qt Toolkit. @@ -237,7 +237,6 @@ bool QTestResult::expectFail(const char *dataIndex, const char *comment, if (QTest::expectFailMode) { delete[] comment; - clearExpectFail(); addFailure("Already expecting a fail", file, line); return false; } @@ -278,6 +277,11 @@ static bool checkStatement(bool statement, const char *msg, const char *file, in return false; } +void QTestResult::fail(const char *msg, const char *file, int line) +{ + checkStatement(false, msg, file, line); +} + bool QTestResult::verify(bool statement, const char *statementStr, const char *description, const char *file, int line) { @@ -290,10 +294,11 @@ bool QTestResult::verify(bool statement, const char *statementStr, QTestLog::info(msg, file, line); } - if (!statement && !QTest::expectFailMode) - qsnprintf(msg, 1024, "'%s' returned FALSE. (%s)", statementStr, description ? description : ""); - else if (statement && QTest::expectFailMode) - qsnprintf(msg, 1024, "'%s' returned TRUE unexpectedly. (%s)", statementStr, description ? description : ""); + if (statement == !!QTest::expectFailMode) { + qsnprintf(msg, 1024, + statement ? "'%s' returned TRUE unexpectedly. (%s)" : "'%s' returned FALSE. (%s)", + statementStr, description ? description : ""); + } return checkStatement(statement, msg, file, line); } |