summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/testlib/qtest.h2
-rw-r--r--src/testlib/qtestcase.cpp66
-rw-r--r--src/testlib/qtestcase.h1
-rw-r--r--tests/auto/testlib/selftests/expected_strcmp.lightxml20
-rw-r--r--tests/auto/testlib/selftests/expected_strcmp.txt30
-rw-r--r--tests/auto/testlib/selftests/expected_strcmp.xml20
-rw-r--r--tests/auto/testlib/selftests/expected_strcmp.xunitxml20
-rw-r--r--tests/auto/testlib/selftests/tst_selftests.cpp2
8 files changed, 114 insertions, 47 deletions
diff --git a/src/testlib/qtest.h b/src/testlib/qtest.h
index 38c1807e08..81cc07c410 100644
--- a/src/testlib/qtest.h
+++ b/src/testlib/qtest.h
@@ -70,7 +70,7 @@ template<> inline char *toString(const QLatin1String &str)
template<> inline char *toString(const QByteArray &ba)
{
- return QTest::toHexRepresentation(ba.constData(), ba.length());
+ return QTest::toPrettyCString(ba.constData(), ba.length());
}
#ifndef QT_NO_DATESTRING
diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp
index 59f20aae93..16dade9154 100644
--- a/src/testlib/qtestcase.cpp
+++ b/src/testlib/qtestcase.cpp
@@ -2181,6 +2181,72 @@ char *toHexRepresentation(const char *ba, int length)
/*!
\internal
+ Returns the same QByteArray but with only the ASCII characters still shown;
+ everything else is replaced with \c {\OOO}.
+*/
+char *toPrettyCString(const char *p, int length)
+{
+ bool trimmed = false;
+ QScopedArrayPointer<char> buffer(new char[256]);
+ const char *end = p + length;
+ char *dst = buffer.data();
+
+ *dst++ = '"';
+ for ( ; p != end; ++p) {
+ if (dst - buffer.data() > 246) {
+ // plus the the quote, the three dots and NUL, it's 251, 252 or 255
+ trimmed = true;
+ break;
+ }
+
+ if (*p < 0x7f && *p >= 0x20 && *p != '\\' && *p != '"') {
+ *dst++ = *p;
+ continue;
+ }
+
+ // write as an escape sequence
+ // this means we may advance dst to buffer.data() + 247 or 250
+ *dst++ = '\\';
+ switch (*p) {
+ case 0x5c:
+ case 0x22:
+ *dst++ = uchar(*p);
+ break;
+ case 0x8:
+ *dst++ = 'b';
+ break;
+ case 0xc:
+ *dst++ = 'f';
+ break;
+ case 0xa:
+ *dst++ = 'n';
+ break;
+ case 0xd:
+ *dst++ = 'r';
+ break;
+ case 0x9:
+ *dst++ = 't';
+ break;
+ default:
+ // write as octal
+ *dst++ = '0' + ((uchar(*p) >> 6) & 7);
+ *dst++ = '0' + ((uchar(*p) >> 3) & 7);
+ *dst++ = '0' + ((uchar(*p)) & 7);
+ }
+ }
+
+ *dst++ = '"';
+ if (trimmed) {
+ *dst++ = '.';
+ *dst++ = '.';
+ *dst++ = '.';
+ }
+ *dst++ = '\0';
+ return buffer.take();
+}
+
+/*!
+ \internal
Returns the same QString but with only the ASCII characters still shown;
everything else is replaced with \c {\uXXXX}.
diff --git a/src/testlib/qtestcase.h b/src/testlib/qtestcase.h
index 532031e0c2..9bfef80bac 100644
--- a/src/testlib/qtestcase.h
+++ b/src/testlib/qtestcase.h
@@ -225,6 +225,7 @@ namespace QTest
Q_TESTLIB_EXPORT char *toHexRepresentation(const char *ba, int length);
+ Q_TESTLIB_EXPORT char *toPrettyCString(const char *unicode, int length);
Q_TESTLIB_EXPORT char *toPrettyUnicode(const ushort *unicode, int length);
Q_TESTLIB_EXPORT char *toString(const char *);
Q_TESTLIB_EXPORT char *toString(const void *);
diff --git a/tests/auto/testlib/selftests/expected_strcmp.lightxml b/tests/auto/testlib/selftests/expected_strcmp.lightxml
index 298e910be8..93a860431e 100644
--- a/tests/auto/testlib/selftests/expected_strcmp.lightxml
+++ b/tests/auto/testlib/selftests/expected_strcmp.lightxml
@@ -23,40 +23,40 @@
</Incident>
<Incident type="fail" file="tst_strcmp.cpp" line="109">
<Description><![CDATA[Compared values are not the same
- Actual (a): 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 ...
- Expected (b): 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 ...]]></Description>
+ Actual (a): "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"...
+ Expected (b): "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"...]]></Description>
</Incident>
<Duration msecs="0"/>
</TestFunction>
<TestFunction name="failByteArray">
<Incident type="fail" file="tst_strcmp.cpp" line="115">
<Description><![CDATA[Compared values are not the same
- Actual (QByteArray("abc")): 61 62 63
- Expected (QByteArray("cba")): 63 62 61]]></Description>
+ Actual (QByteArray("abc")): "abc"
+ Expected (QByteArray("cba")): "cba"]]></Description>
</Incident>
<Duration msecs="0"/>
</TestFunction>
<TestFunction name="failByteArrayNull">
<Incident type="fail" file="tst_strcmp.cpp" line="121">
<Description><![CDATA[Compared values are not the same
- Actual (QByteArray("foo")): 66 6F 6F
- Expected (QByteArray()) : ]]></Description>
+ Actual (QByteArray("foo")): "foo"
+ Expected (QByteArray()) : ""]]></Description>
</Incident>
<Duration msecs="0"/>
</TestFunction>
<TestFunction name="failByteArrayEmpty">
<Incident type="fail" file="tst_strcmp.cpp" line="126">
<Description><![CDATA[Compared values are not the same
- Actual (QByteArray("")) :
- Expected (QByteArray("foo")): 66 6F 6F]]></Description>
+ Actual (QByteArray("")) : ""
+ Expected (QByteArray("foo")): "foo"]]></Description>
</Incident>
<Duration msecs="0"/>
</TestFunction>
<TestFunction name="failByteArraySingleChars">
<Incident type="fail" file="tst_strcmp.cpp" line="133">
<Description><![CDATA[Compared values are not the same
- Actual (QByteArray("6")): 36
- Expected (QByteArray("7")): 37]]></Description>
+ Actual (QByteArray("6")): "6"
+ Expected (QByteArray("7")): "7"]]></Description>
</Incident>
<Duration msecs="0"/>
</TestFunction>
diff --git a/tests/auto/testlib/selftests/expected_strcmp.txt b/tests/auto/testlib/selftests/expected_strcmp.txt
index 3d58698781..270ce09892 100644
--- a/tests/auto/testlib/selftests/expected_strcmp.txt
+++ b/tests/auto/testlib/selftests/expected_strcmp.txt
@@ -9,25 +9,25 @@ XFAIL : tst_StrCmp::compareByteArray() Next test should fail
XFAIL : tst_StrCmp::compareByteArray() Next test should fail
Loc: [tst_strcmp.cpp(102)]
FAIL! : tst_StrCmp::compareByteArray() Compared values are not the same
- Actual (a): 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 ...
- Expected (b): 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 ...
- Loc: [tst_strcmp.cpp(109)]
+ Actual (a): "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"...
+ Expected (b): "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"...
+ Loc: [/home/thiago/src/qt/qt5/qtbase/tests/auto/testlib/selftests/strcmp/tst_strcmp.cpp(109)]
FAIL! : tst_StrCmp::failByteArray() Compared values are not the same
- Actual (QByteArray("abc")): 61 62 63
- Expected (QByteArray("cba")): 63 62 61
- Loc: [tst_strcmp.cpp(115)]
+ Actual (QByteArray("abc")): "abc"
+ Expected (QByteArray("cba")): "cba"
+ Loc: [/home/thiago/src/qt/qt5/qtbase/tests/auto/testlib/selftests/strcmp/tst_strcmp.cpp(115)]
FAIL! : tst_StrCmp::failByteArrayNull() Compared values are not the same
- Actual (QByteArray("foo")): 66 6F 6F
- Expected (QByteArray()) :
- Loc: [tst_strcmp.cpp(121)]
+ Actual (QByteArray("foo")): "foo"
+ Expected (QByteArray()) : ""
+ Loc: [/home/thiago/src/qt/qt5/qtbase/tests/auto/testlib/selftests/strcmp/tst_strcmp.cpp(121)]
FAIL! : tst_StrCmp::failByteArrayEmpty() Compared values are not the same
- Actual (QByteArray("")) :
- Expected (QByteArray("foo")): 66 6F 6F
- Loc: [tst_strcmp.cpp(126)]
+ Actual (QByteArray("")) : ""
+ Expected (QByteArray("foo")): "foo"
+ Loc: [/home/thiago/src/qt/qt5/qtbase/tests/auto/testlib/selftests/strcmp/tst_strcmp.cpp(126)]
FAIL! : tst_StrCmp::failByteArraySingleChars() Compared values are not the same
- Actual (QByteArray("6")): 36
- Expected (QByteArray("7")): 37
- Loc: [tst_strcmp.cpp(133)]
+ Actual (QByteArray("6")): "6"
+ Expected (QByteArray("7")): "7"
+ Loc: [/home/thiago/src/qt/qt5/qtbase/tests/auto/testlib/selftests/strcmp/tst_strcmp.cpp(133)]
PASS : tst_StrCmp::cleanupTestCase()
Totals: 3 passed, 5 failed, 0 skipped, 0 blacklisted
********* Finished testing of tst_StrCmp *********
diff --git a/tests/auto/testlib/selftests/expected_strcmp.xml b/tests/auto/testlib/selftests/expected_strcmp.xml
index 29208f9a87..9e14dddd7c 100644
--- a/tests/auto/testlib/selftests/expected_strcmp.xml
+++ b/tests/auto/testlib/selftests/expected_strcmp.xml
@@ -25,40 +25,40 @@
</Incident>
<Incident type="fail" file="tst_strcmp.cpp" line="109">
<Description><![CDATA[Compared values are not the same
- Actual (a): 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 ...
- Expected (b): 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 ...]]></Description>
+ Actual (a): "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"...
+ Expected (b): "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"...]]></Description>
</Incident>
<Duration msecs="0"/>
</TestFunction>
<TestFunction name="failByteArray">
<Incident type="fail" file="tst_strcmp.cpp" line="115">
<Description><![CDATA[Compared values are not the same
- Actual (QByteArray("abc")): 61 62 63
- Expected (QByteArray("cba")): 63 62 61]]></Description>
+ Actual (QByteArray("abc")): "abc"
+ Expected (QByteArray("cba")): "cba"]]></Description>
</Incident>
<Duration msecs="0"/>
</TestFunction>
<TestFunction name="failByteArrayNull">
<Incident type="fail" file="tst_strcmp.cpp" line="121">
<Description><![CDATA[Compared values are not the same
- Actual (QByteArray("foo")): 66 6F 6F
- Expected (QByteArray()) : ]]></Description>
+ Actual (QByteArray("foo")): "foo"
+ Expected (QByteArray()) : ""]]></Description>
</Incident>
<Duration msecs="0"/>
</TestFunction>
<TestFunction name="failByteArrayEmpty">
<Incident type="fail" file="tst_strcmp.cpp" line="126">
<Description><![CDATA[Compared values are not the same
- Actual (QByteArray("")) :
- Expected (QByteArray("foo")): 66 6F 6F]]></Description>
+ Actual (QByteArray("")) : ""
+ Expected (QByteArray("foo")): "foo"]]></Description>
</Incident>
<Duration msecs="0"/>
</TestFunction>
<TestFunction name="failByteArraySingleChars">
<Incident type="fail" file="tst_strcmp.cpp" line="133">
<Description><![CDATA[Compared values are not the same
- Actual (QByteArray("6")): 36
- Expected (QByteArray("7")): 37]]></Description>
+ Actual (QByteArray("6")): "6"
+ Expected (QByteArray("7")): "7"]]></Description>
</Incident>
<Duration msecs="0"/>
</TestFunction>
diff --git a/tests/auto/testlib/selftests/expected_strcmp.xunitxml b/tests/auto/testlib/selftests/expected_strcmp.xunitxml
index 14bef9ec47..66dce857c9 100644
--- a/tests/auto/testlib/selftests/expected_strcmp.xunitxml
+++ b/tests/auto/testlib/selftests/expected_strcmp.xunitxml
@@ -12,28 +12,28 @@
<!-- message="Next test should fail" type="info" -->
<!-- message="Next test should fail" type="info" -->
<failure message="Compared values are not the same
- Actual (a): 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 ...
- Expected (b): 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 ..." result="fail"/>
+ Actual (a): &quot;BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB&quot;...
+ Expected (b): &quot;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&quot;..." result="fail"/>
</testcase>
<testcase result="fail" name="failByteArray">
<failure message="Compared values are not the same
- Actual (QByteArray(&quot;abc&quot;)): 61 62 63
- Expected (QByteArray(&quot;cba&quot;)): 63 62 61" result="fail"/>
+ Actual (QByteArray(&quot;abc&quot;)): &quot;abc&quot;
+ Expected (QByteArray(&quot;cba&quot;)): &quot;cba&quot;" result="fail"/>
</testcase>
<testcase result="fail" name="failByteArrayNull">
<failure message="Compared values are not the same
- Actual (QByteArray(&quot;foo&quot;)): 66 6F 6F
- Expected (QByteArray()) : " result="fail"/>
+ Actual (QByteArray(&quot;foo&quot;)): &quot;foo&quot;
+ Expected (QByteArray()) : &quot;&quot;" result="fail"/>
</testcase>
<testcase result="fail" name="failByteArrayEmpty">
<failure message="Compared values are not the same
- Actual (QByteArray(&quot;&quot;)) :
- Expected (QByteArray(&quot;foo&quot;)): 66 6F 6F" result="fail"/>
+ Actual (QByteArray(&quot;&quot;)) : &quot;&quot;
+ Expected (QByteArray(&quot;foo&quot;)): &quot;foo&quot;" result="fail"/>
</testcase>
<testcase result="fail" name="failByteArraySingleChars">
<failure message="Compared values are not the same
- Actual (QByteArray(&quot;6&quot;)): 36
- Expected (QByteArray(&quot;7&quot;)): 37" result="fail"/>
+ Actual (QByteArray(&quot;6&quot;)): &quot;6&quot;
+ Expected (QByteArray(&quot;7&quot;)): &quot;7&quot;" result="fail"/>
</testcase>
<testcase result="pass" name="cleanupTestCase"/>
<system-err>
diff --git a/tests/auto/testlib/selftests/tst_selftests.cpp b/tests/auto/testlib/selftests/tst_selftests.cpp
index acd3faaa45..488b65c657 100644
--- a/tests/auto/testlib/selftests/tst_selftests.cpp
+++ b/tests/auto/testlib/selftests/tst_selftests.cpp
@@ -746,7 +746,7 @@ void tst_Selftests::doRunSubTest(QString const& subdir, QStringList const& logge
.arg(i).arg(loggers.at(n), output)));
} else {
QVERIFY2(output == expected,
- qPrintable(QString::fromLatin1("Mismatch at line %1 (%2, %3): '%4' != '%5'")
+ qPrintable(QString::fromLatin1("Mismatch at line %1 (%2, %3):\n'%4'\n !=\n'%5'")
.arg(i + 1).arg(loggers.at(n), expectedFileName, output, expected)));
}