summaryrefslogtreecommitdiffstats
path: root/src/testlib/qtestresult.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/testlib/qtestresult.cpp')
-rw-r--r--src/testlib/qtestresult.cpp34
1 files changed, 25 insertions, 9 deletions
diff --git a/src/testlib/qtestresult.cpp b/src/testlib/qtestresult.cpp
index 14ab29af2b..231fc8f3b1 100644
--- a/src/testlib/qtestresult.cpp
+++ b/src/testlib/qtestresult.cpp
@@ -254,22 +254,38 @@ bool QTestResult::compare(bool success, const char *msg, const char *file, int l
return checkStatement(success, msg, file, line);
}
-bool QTestResult::compare(bool success, const char *msg, char *val1, char *val2,
- const char *actual, const char *expected, const char *file, int line)
+bool QTestResult::compare(bool success, const char *failureMsg,
+ char *val1, char *val2,
+ const char *actual, const char *expected,
+ const char *file, int line)
{
QTEST_ASSERT(expected);
QTEST_ASSERT(actual);
- if (!val1 && !val2)
- return compare(success, msg, file, line);
+ char msg[1024];
+
+ if (QTestLog::verboseLevel() >= 2) {
+ qsnprintf(msg, 1024, "QCOMPARE(%s, %s)", actual, expected);
+ QTestLog::info(msg, file, line);
+ }
+
+ if (!failureMsg)
+ failureMsg = "Compared values are not the same";
+
+ if (success && QTest::expectFailMode) {
+ qsnprintf(msg, 1024, "QCOMPARE(%s, %s) returned TRUE unexpectedly.", actual, expected);
+ } else if (val1 || val2) {
+ qsnprintf(msg, 1024, "%s\n Actual (%s): %s\n Expected (%s): %s",
+ failureMsg,
+ actual, val1 ? val1 : "<null>",
+ expected, val2 ? val2 : "<null>");
+ } else
+ qsnprintf(msg, 1024, "%s", failureMsg);
- char buf[1024];
- qsnprintf(buf, 1024, "%s\n Actual (%s): %s\n Expected (%s): %s", msg,
- actual, val1 ? val1 : "<null>",
- expected, val2 ? val2 : "<null>");
delete [] val1;
delete [] val2;
- return compare(success, buf, file, line);
+
+ return checkStatement(success, msg, file, line);
}
void QTestResult::addFailure(const char *message, const char *file, int line)