summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/testlib/qtest.h7
-rw-r--r--src/testlib/qtestcase.cpp14
-rw-r--r--src/testlib/qtestcase.h2
-rw-r--r--tests/auto/corelib/tools/qstringview/tst_qstringview.cpp14
4 files changed, 28 insertions, 9 deletions
diff --git a/src/testlib/qtest.h b/src/testlib/qtest.h
index 30aadfba92..4abba93721 100644
--- a/src/testlib/qtest.h
+++ b/src/testlib/qtest.h
@@ -65,9 +65,14 @@ QT_BEGIN_NAMESPACE
namespace QTest
{
+template <> inline char *toString(const QStringView &str)
+{
+ return QTest::toPrettyUnicode(str);
+}
+
template<> inline char *toString(const QString &str)
{
- return QTest::toPrettyUnicode(reinterpret_cast<const ushort *>(str.constData()), str.length());
+ return toString(QStringView(str));
}
template<> inline char *toString(const QLatin1String &str)
diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp
index 8b0820b941..1470f3cf91 100644
--- a/src/testlib/qtestcase.cpp
+++ b/src/testlib/qtestcase.cpp
@@ -1271,6 +1271,16 @@ char *toPrettyCString(const char *p, int length)
return buffer.take();
}
+#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
+// this used to be the signature up to and including Qt 5.9
+// keep it for BC reasons:
+Q_TESTLIB_EXPORT
+char *toPrettyUnicode(const ushort *p, int length)
+{
+ return toPrettyUnicode(QStringView(p, length));
+}
+#endif
+
/*!
\internal
Returns the same QString but with only the ASCII characters still shown;
@@ -1278,8 +1288,10 @@ char *toPrettyCString(const char *p, int length)
Similar to QDebug::putString().
*/
-char *toPrettyUnicode(const ushort *p, int length)
+char *toPrettyUnicode(QStringView string)
{
+ auto p = reinterpret_cast<const ushort *>(string.utf16());
+ auto length = string.size();
// keep it simple for the vast majority of cases
bool trimmed = false;
QScopedArrayPointer<char> buffer(new char[256]);
diff --git a/src/testlib/qtestcase.h b/src/testlib/qtestcase.h
index 3e2dab307a..1b160bd0cd 100644
--- a/src/testlib/qtestcase.h
+++ b/src/testlib/qtestcase.h
@@ -277,7 +277,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 *toPrettyUnicode(QStringView string);
Q_TESTLIB_EXPORT char *toString(const char *);
Q_TESTLIB_EXPORT char *toString(const void *);
diff --git a/tests/auto/corelib/tools/qstringview/tst_qstringview.cpp b/tests/auto/corelib/tools/qstringview/tst_qstringview.cpp
index 9849bd78da..28f81e50e7 100644
--- a/tests/auto/corelib/tools/qstringview/tst_qstringview.cpp
+++ b/tests/auto/corelib/tools/qstringview/tst_qstringview.cpp
@@ -429,6 +429,8 @@ void tst_QStringView::conversion_tests(String string) const
sv.crbegin()));
QVERIFY(std::equal(help::crbegin(string), help::crend(string),
sv.rbegin()));
+
+ QCOMPARE(sv, string);
}
QStringView sv;
@@ -441,8 +443,8 @@ void tst_QStringView::conversion_tests(String string) const
// check relational operators:
- QVERIFY(sv == string);
- QVERIFY(string == sv);
+ QCOMPARE(sv, string);
+ QCOMPARE(string, sv);
QVERIFY(!(sv != string));
QVERIFY(!(string != sv));
@@ -461,16 +463,16 @@ void tst_QStringView::conversion_tests(String string) const
// copy-construct from rvalue (QStringView never assumes ownership):
{
QStringView sv2 = std::move(string);
- QVERIFY(sv2 == sv);
- QVERIFY(sv2 == string);
+ QCOMPARE(sv2, sv);
+ QCOMPARE(sv2, string);
}
// copy-assign from rvalue (QStringView never assumes ownership):
{
QStringView sv2;
sv2 = std::move(string);
- QVERIFY(sv2 == sv);
- QVERIFY(sv2 == string);
+ QCOMPARE(sv2, sv);
+ QCOMPARE(sv2, string);
}
}