summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2018-02-26 17:46:00 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2018-03-28 08:23:18 +0000
commit469b014deb8285cc2aacfb816897f40dcf754c9b (patch)
tree28a84c43b1cfecf7865e6fded591ac36f50790c4
parent5a89febe7a825053e8c89722690e02d3f45ca82c (diff)
qstringapisymmetry: Fix XML parsing failing on invalid encodings
Evaluating testlib's XML output in COIN would fail with: "XML syntax error on line 7520: invalid UTF-8" for the toLatin1() tests due to some Latin1/UTF8 mixup. Add a helper function to convert the data to plain ASCII. Task-number: QTQAINFRA-1797 Change-Id: I1c64878d4c2a67b8c2689905b5ffe6707b5963c1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit d8b143d4b77c45cfe1a40d525be5d0a79a2b07a4) Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
-rw-r--r--tests/auto/corelib/tools/qstringapisymmetry/tst_qstringapisymmetry.cpp22
1 files changed, 18 insertions, 4 deletions
diff --git a/tests/auto/corelib/tools/qstringapisymmetry/tst_qstringapisymmetry.cpp b/tests/auto/corelib/tools/qstringapisymmetry/tst_qstringapisymmetry.cpp
index 9d9b47b61e..989eb43575 100644
--- a/tests/auto/corelib/tools/qstringapisymmetry/tst_qstringapisymmetry.cpp
+++ b/tests/auto/corelib/tools/qstringapisymmetry/tst_qstringapisymmetry.cpp
@@ -32,6 +32,7 @@
#include <QString>
#include <QChar>
+#include <QScopedArrayPointer>
#include <QStringRef>
#include <QLatin1String>
#include <QVector>
@@ -68,6 +69,19 @@ MAKE_ALL(const char*, QChar)
#undef MAKE_RELOP
// END FIXME
+// Return a plain ASCII row name consisting of maximum 16 chars and the
+// size for data
+static QByteArray rowName(const QByteArray &data)
+{
+ const int size = data.size();
+ QScopedArrayPointer<char> prettyC(QTest::toPrettyCString(data.constData(), qMin(16, size)));
+ QByteArray result = prettyC.data();
+ result += " (";
+ result += QByteArray::number(size);
+ result += ')';
+ return result;
+}
+
class tst_QStringApiSymmetry : public QObject
{
Q_OBJECT
@@ -323,7 +337,7 @@ void tst_QStringApiSymmetry::toLocal8Bit_data()
QString s;
for (char c : ba)
s += QLatin1Char(c);
- QTest::addRow("\"%s\" (%d)", ba.left(16).constData(), ba.size()) << s << ba;
+ QTest::newRow(rowName(ba).constData()) << s << ba;
};
QTest::addRow("null") << QString() << QByteArray();
@@ -358,7 +372,7 @@ void tst_QStringApiSymmetry::toLatin1_data()
QString s;
for (char c : ba)
s += QLatin1Char(c);
- QTest::addRow("\"%s\" (%d)", ba.left(16).constData(), ba.size()) << s << ba;
+ QTest::newRow(rowName(ba).constData()) << s << ba;
};
QTest::addRow("null") << QString() << QByteArray();
@@ -391,7 +405,7 @@ void tst_QStringApiSymmetry::toUtf8_data()
auto add = [](const char *u8) {
QByteArray ba(u8);
QString s = ba;
- QTest::addRow("\"%s\" (%d)", ba.left(16).constData(), ba.size()) << s << ba;
+ QTest::newRow(rowName(ba).constData()) << s << ba;
};
QTest::addRow("null") << QString() << QByteArray();
@@ -429,7 +443,7 @@ void tst_QStringApiSymmetry::toUcs4_data()
s += QLatin1Char(c);
ucs4.append(uint(uchar(c)));
}
- QTest::addRow("\"%s\" (%d)", ba.left(16).constData(), ba.size()) << s << ucs4;
+ QTest::newRow(rowName(ba).constData()) << s << ucs4;
};
QTest::addRow("null") << QString() << QVector<uint>();