tst_stringview: remove dead code

wchar_t hasn't been QStringView's storage_type for a very long time
(at least since 5.10). And in Qt 6, we require char16_t support not
only in the compiler, but also in the stdlib, so drop the guards and
the alternative code paths.

Change-Id: I99f28b575f61c16a2497840708beaa4b54a80f57
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
This commit is contained in:
Marc Mutz 2020-05-08 09:49:22 +02:00
parent 807b7f1f33
commit 2a11940b2a

View File

@ -153,11 +153,7 @@ private Q_SLOTS:
void fromChar16TStar() const
{
#if defined(Q_COMPILER_UNICODE_STRINGS)
fromLiteral(u"Hello, World!");
#else
QSKIP("This test requires C++11 char16_t support enabled in the compiler");
#endif
}
void fromWCharTStar() const
@ -183,12 +179,8 @@ private Q_SLOTS:
void fromChar16TRange() const
{
#if defined(Q_COMPILER_UNICODE_STRINGS)
const char16_t str[] = { 'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!' };
fromRange(std::begin(str), std::end(str));
#else
QSKIP("This test requires C++11 char16_t support enabled in the compiler");
#endif
}
void fromWCharTRange() const
@ -212,11 +204,7 @@ private Q_SLOTS:
}
void fromStdStringChar16T() const
{
#ifdef Q_STDLIB_UNICODE_STRINGS
fromStdString<char16_t>();
#else
QSKIP("This test requires C++11 char16_t support enabled in compiler & stdlib");
#endif
}
void comparison();
@ -285,7 +273,6 @@ void tst_QStringView::constExpr() const
Q_STATIC_ASSERT(!sv2.empty());
Q_STATIC_ASSERT(sv2.size() == 5);
}
#if !defined(Q_OS_WIN) || defined(Q_COMPILER_UNICODE_STRINGS)
{
Q_STATIC_ASSERT(QStringView(u"Hello").size() == 5);
constexpr QStringView sv = u"Hello";
@ -314,36 +301,6 @@ void tst_QStringView::constExpr() const
Q_STATIC_ASSERT(sv3.isEmpty());
Q_STATIC_ASSERT(sv3.size() == 0);
}
#else // storage_type is wchar_t
{
Q_STATIC_ASSERT(QStringView(L"Hello").size() == 5);
constexpr QStringView sv = L"Hello";
Q_STATIC_ASSERT(sv.size() == 5);
Q_STATIC_ASSERT(!sv.empty());
Q_STATIC_ASSERT(!sv.isEmpty());
Q_STATIC_ASSERT(!sv.isNull());
Q_STATIC_ASSERT(*sv.utf16() == 'H');
Q_STATIC_ASSERT(sv[0] == QLatin1Char('H'));
Q_STATIC_ASSERT(sv.at(0) == QLatin1Char('H'));
Q_STATIC_ASSERT(sv.front() == QLatin1Char('H'));
Q_STATIC_ASSERT(sv.first() == QLatin1Char('H'));
Q_STATIC_ASSERT(sv[4] == QLatin1Char('o'));
Q_STATIC_ASSERT(sv.at(4) == QLatin1Char('o'));
Q_STATIC_ASSERT(sv.back() == QLatin1Char('o'));
Q_STATIC_ASSERT(sv.last() == QLatin1Char('o'));
constexpr QStringView sv2(sv.utf16(), sv.utf16() + sv.size());
Q_STATIC_ASSERT(!sv2.isNull());
Q_STATIC_ASSERT(!sv2.empty());
Q_STATIC_ASSERT(sv2.size() == 5);
constexpr wchar_t *null = nullptr;
constexpr QStringView sv3(null);
Q_STATIC_ASSERT(sv3.isNull());
Q_STATIC_ASSERT(sv3.isEmpty());
Q_STATIC_ASSERT(sv3.size() == 0);
}
#endif
#endif
}
@ -364,17 +321,10 @@ void tst_QStringView::basics() const
void tst_QStringView::literals() const
{
#if !defined(Q_OS_WIN) || defined(Q_COMPILER_UNICODE_STRINGS)
const char16_t hello[] = u"Hello";
const char16_t longhello[] =
u"Hello World. This is a much longer message, to exercise qustrlen.";
const char16_t withnull[] = u"a\0zzz";
#else // storage_type is wchar_t
const wchar_t hello[] = L"Hello";
const wchar_t longhello[] =
L"Hello World. This is a much longer message, to exercise qustrlen.";
const wchar_t withnull[] = L"a\0zzz";
#endif
Q_STATIC_ASSERT(sizeof(longhello) >= 16);
QCOMPARE(QStringView(hello).size(), 5);
@ -717,23 +667,19 @@ void tst_QStringView::overloadResolution()
}
#endif
#if defined(Q_COMPILER_UNICODE_STRINGS)
{
char16_t char16Array[] = u"test";
QStringViewOverloadResolution::test(char16Array);
char16_t *char16Pointer = char16Array;
QStringViewOverloadResolution::test(char16Pointer);
}
#endif
#if defined(Q_STDLIB_UNICODE_STRINGS)
{
std::u16string string;
QStringViewOverloadResolution::test(string);
QStringViewOverloadResolution::test(qAsConst(string));
QStringViewOverloadResolution::test(std::move(string));
}
#endif
}
QTEST_APPLESS_MAIN(tst_QStringView)