summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernd Weimer <bweimer@blackberry.com>2014-05-15 15:04:49 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-05-19 10:03:38 +0200
commit43d4fecde59e6d317731ebabbe612a0752781ca8 (patch)
tree514bdd261f1af95567808fb56def8f8b1d292619
parent71006cf04c6a3d1f44efb3d59eb136f4f589bccf (diff)
Fix auto test failure output on QNX
On QNX mbstowcs does not ignore last parameter (max) when first (dest) is NULL. Set it to sufficiently large value to yield proper results on QNX. Other platforms (standard libraries) will ignore this value anyway. Change-Id: Ie4695254d45082e151a052bf16de684af3b1ba1e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-rw-r--r--src/testlib/qtestresult.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/testlib/qtestresult.cpp b/src/testlib/qtestresult.cpp
index 859f6743cd..8eb1fa2d9c 100644
--- a/src/testlib/qtestresult.cpp
+++ b/src/testlib/qtestresult.cpp
@@ -49,7 +49,6 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
-#include <wchar.h>
static const char *currentAppName = 0;
@@ -257,10 +256,11 @@ bool QTestResult::compare(bool success, const char *failureMsg,
QTEST_ASSERT(expected);
QTEST_ASSERT(actual);
- char msg[1024];
+ const size_t maxMsgLen = 1024;
+ char msg[maxMsgLen];
if (QTestLog::verboseLevel() >= 2) {
- qsnprintf(msg, 1024, "QCOMPARE(%s, %s)", actual, expected);
+ qsnprintf(msg, maxMsgLen, "QCOMPARE(%s, %s)", actual, expected);
QTestLog::info(msg, file, line);
}
@@ -268,16 +268,17 @@ bool QTestResult::compare(bool success, const char *failureMsg,
failureMsg = "Compared values are not the same";
if (success && QTest::expectFailMode) {
- qsnprintf(msg, 1024, "QCOMPARE(%s, %s) returned TRUE unexpectedly.", actual, expected);
+ qsnprintf(msg, maxMsgLen,
+ "QCOMPARE(%s, %s) returned TRUE unexpectedly.", actual, expected);
} else if (val1 || val2) {
- size_t len1 = mbstowcs(NULL, actual, 0);
- size_t len2 = mbstowcs(NULL, expected, 0);
- qsnprintf(msg, 1024, "%s\n Actual (%s)%*s %s\n Expected (%s)%*s %s",
+ size_t len1 = mbstowcs(NULL, actual, maxMsgLen); // Last parameter is not ignored on QNX
+ size_t len2 = mbstowcs(NULL, expected, maxMsgLen); // (result is never larger than this).
+ qsnprintf(msg, maxMsgLen, "%s\n Actual (%s)%*s %s\n Expected (%s)%*s %s",
failureMsg,
actual, qMax(len1, len2) - len1 + 1, ":", val1 ? val1 : "<null>",
expected, qMax(len1, len2) - len2 + 1, ":", val2 ? val2 : "<null>");
} else
- qsnprintf(msg, 1024, "%s", failureMsg);
+ qsnprintf(msg, maxMsgLen, "%s", failureMsg);
delete [] val1;
delete [] val2;