diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2015-11-12 10:16:22 +0100 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2015-11-29 22:59:17 +0000 |
commit | 51089a5742a79467221b5781cb35a8cea023febf (patch) | |
tree | 95f765fa452cdfaa12f986e4d228d9a958c95100 /src/testlib | |
parent | 14d189f7875b7def6f9745bfd20527a0fce19a44 (diff) | |
download | qtbase-51089a5742a79467221b5781cb35a8cea023febf.tar.gz |
Use Q_UNLIKELY for every qFatal()/qCritical()
If, after checking a condition, we issue a qFatal()
or a qCritical(), by definition that check is
unlikely to be true.
Tell the compiler so it can move the error handling
code out of the normal code path to increase the
effective icache size.
Moved conditional code around where possible so that
we could always use Q_UNLIKELY, instead of having to
revert to Q_LIKELY here and there.
In some cases, simplified the expressions newly wrapped
in Q_UNLIKELY as a drive-by.
Change-Id: I67537d62b04bc6977d69254690c5ebbdf98bfd6d
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'src/testlib')
-rw-r--r-- | src/testlib/qbenchmarkvalgrind.cpp | 2 | ||||
-rw-r--r-- | src/testlib/qtestcase.cpp | 8 | ||||
-rw-r--r-- | src/testlib/qxctestlogger.mm | 2 |
3 files changed, 6 insertions, 6 deletions
diff --git a/src/testlib/qbenchmarkvalgrind.cpp b/src/testlib/qbenchmarkvalgrind.cpp index ada3cfc768..7cb5eef30c 100644 --- a/src/testlib/qbenchmarkvalgrind.cpp +++ b/src/testlib/qbenchmarkvalgrind.cpp @@ -96,7 +96,7 @@ qint64 QBenchmarkValgrindUtils::extractResult(const QString &fileName) break; } } - if (!valSeen) + if (Q_UNLIKELY(!valSeen)) qFatal("Failed to extract result"); return val; } diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index 0847d639fd..f5f399978e 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -2132,7 +2132,7 @@ public: int t = timeout.load(); if (!t) break; - if (!waitCondition.wait(&mutex, t)) { + if (Q_UNLIKELY(!waitCondition.wait(&mutex, t))) { stackTrace(); qFatal("Test function timed out"); } @@ -2256,12 +2256,12 @@ void *fetchData(QTestData *data, const char *tagName, int typeId) int idx = data->parent()->indexOf(tagName); - if (idx == -1 || idx >= data->dataCount()) { + if (Q_UNLIKELY(idx == -1 || idx >= data->dataCount())) { qFatal("QFETCH: Requested testdata '%s' not available, check your _data function.", tagName); } - if (typeId != data->parent()->elementTypeId(idx)) { + if (Q_UNLIKELY(typeId != data->parent()->elementTypeId(idx))) { qFatal("Requested type '%s' does not match available type '%s'.", QMetaType::typeName(typeId), QMetaType::typeName(data->parent()->elementTypeId(idx))); @@ -2940,7 +2940,7 @@ int QTest::qExec(QObject *testObject, int argc, char **argv) #ifdef QTESTLIB_USE_VALGRIND if (QBenchmarkGlobalData::current->mode() == QBenchmarkGlobalData::CallgrindParentProcess) { - if (!qApp) + if (Q_UNLIKELY(!qApp)) qFatal("QtTest: -callgrind option is not available with QTEST_APPLESS_MAIN"); const QStringList origAppArgs(QCoreApplication::arguments()); diff --git a/src/testlib/qxctestlogger.mm b/src/testlib/qxctestlogger.mm index 34116a2670..1e9119c9c0 100644 --- a/src/testlib/qxctestlogger.mm +++ b/src/testlib/qxctestlogger.mm @@ -124,7 +124,7 @@ private: if (![XCTestProbe isTesting]) return; - if (!([NSDate timeIntervalSinceReferenceDate] > 0)) + if (Q_UNLIKELY(!([NSDate timeIntervalSinceReferenceDate] > 0))) qFatal("error: Device date '%s' is bad, likely set to update automatically. Please correct.", [[NSDate date] description].UTF8String); |