summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib')
-rw-r--r--tests/auto/corelib/codecs/utf8/tst_utf8.cpp36
-rw-r--r--tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp31
-rw-r--r--tests/auto/corelib/tools/qarraydata/simplevector.h3
-rw-r--r--tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp44
-rw-r--r--tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp2
-rw-r--r--tests/auto/corelib/tools/qhash/tst_qhash.cpp4
-rw-r--r--tests/auto/corelib/tools/qlinkedlist/tst_qlinkedlist.cpp6
-rw-r--r--tests/auto/corelib/tools/qlist/tst_qlist.cpp8
-rw-r--r--tests/auto/corelib/tools/qmap/tst_qmap.cpp8
-rw-r--r--tests/auto/corelib/tools/qstring/tst_qstring.cpp8
-rw-r--r--tests/auto/corelib/tools/qvector/tst_qvector.cpp115
11 files changed, 191 insertions, 74 deletions
diff --git a/tests/auto/corelib/codecs/utf8/tst_utf8.cpp b/tests/auto/corelib/codecs/utf8/tst_utf8.cpp
index b00fd0dfd4..d1aadab7d8 100644
--- a/tests/auto/corelib/codecs/utf8/tst_utf8.cpp
+++ b/tests/auto/corelib/codecs/utf8/tst_utf8.cpp
@@ -53,11 +53,7 @@ public:
// test data:
QTextCodec *codec;
QString (*from8BitPtr)(const char *, int);
-#ifdef Q_COMPILER_REF_QUALIFIERS
- QByteArray (QString:: *to8Bit)() const &;
-#else
- QByteArray (QString:: *to8Bit)() const;
-#endif
+ static QByteArray to8Bit(const QString &);
inline QString from8Bit(const QByteArray &ba)
{ return from8BitPtr(ba.constData(), ba.length()); }
@@ -97,14 +93,21 @@ void tst_Utf8::init()
if (useLocale) {
codec = QTextCodec::codecForLocale();
from8BitPtr = &QString::fromLocal8Bit;
- to8Bit = &QString::toLocal8Bit;
} else {
codec = QTextCodec::codecForMib(106);
from8BitPtr = &QString::fromUtf8;
- to8Bit = &QString::toUtf8;
}
}
+QByteArray tst_Utf8::to8Bit(const QString &s)
+{
+ QFETCH_GLOBAL(bool, useLocale);
+ if (useLocale)
+ return s.toLocal8Bit();
+ else
+ return s.toUtf8();
+}
+
void tst_Utf8::roundTrip_data()
{
QTest::addColumn<QByteArray>("utf8");
@@ -114,10 +117,10 @@ void tst_Utf8::roundTrip_data()
QTest::newRow("nul") << QByteArray("", 1) << QString(QChar(QChar::Null));
static const char ascii[] = "This is a standard US-ASCII message";
- QTest::newRow("ascii") << QByteArray(ascii) << ascii;
+ QTest::newRow("ascii") << QByteArray(ascii) << QString::fromLatin1(ascii);
static const char ascii2[] = "\1This\2is\3an\4US-ASCII\020 message interspersed with control chars";
- QTest::newRow("ascii2") << QByteArray(ascii2) << ascii2;
+ QTest::newRow("ascii2") << QByteArray(ascii2) << QString::fromLatin1(ascii2);
static const char utf8_1[] = "\302\240"; // NBSP
QTest::newRow("utf8_1") << QByteArray(utf8_1) << QString(QChar(QChar::Nbsp));
@@ -161,11 +164,20 @@ void tst_Utf8::roundTrip()
QFETCH(QByteArray, utf8);
QFETCH(QString, utf16);
- QCOMPARE((utf16.*to8Bit)(), utf8);
+ QCOMPARE(to8Bit(utf16), utf8);
+ QCOMPARE(from8Bit(utf8), utf16);
+
+ QCOMPARE(to8Bit(from8Bit(utf8)), utf8);
+ QCOMPARE(from8Bit(to8Bit(utf16)), utf16);
+
+ // repeat with a longer message
+ utf8.prepend("12345678901234");
+ utf16.prepend(QLatin1String("12345678901234"));
+ QCOMPARE(to8Bit(utf16), utf8);
QCOMPARE(from8Bit(utf8), utf16);
- QCOMPARE((from8Bit(utf8).*to8Bit)(), utf8);
- QCOMPARE(from8Bit((utf16.*to8Bit)()), utf16);
+ QCOMPARE(to8Bit(from8Bit(utf8)), utf8);
+ QCOMPARE(from8Bit(to8Bit(utf16)), utf16);
}
void tst_Utf8::charByChar_data()
diff --git a/tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp b/tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp
index a58c7dfb4b..4f7ddce9c3 100644
--- a/tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp
+++ b/tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the test suite of the Qt Toolkit.
@@ -405,6 +405,13 @@ void tst_QFileSystemWatcher::removePaths()
watcher.removePaths(paths);
}
+static QByteArray msgFileOperationFailed(const char *what, const QFile &f)
+{
+ return what + QByteArrayLiteral(" failed on \"")
+ + QDir::toNativeSeparators(f.fileName()).toLocal8Bit()
+ + QByteArrayLiteral("\": ") + f.errorString().toLocal8Bit();
+}
+
void tst_QFileSystemWatcher::watchFileAndItsDirectory()
{
QFETCH(QString, backend);
@@ -420,14 +427,10 @@ void tst_QFileSystemWatcher::watchFileAndItsDirectory()
QString testFileName = testDir.filePath("testFile.txt");
QString secondFileName = testDir.filePath("testFile2.txt");
- QFile::remove(secondFileName);
QFile testFile(testFileName);
- testFile.setPermissions(QFile::ReadOwner | QFile::WriteOwner);
- testFile.remove();
-
- QVERIFY(testFile.open(QIODevice::WriteOnly | QIODevice::Truncate));
- testFile.write(QByteArray("hello"));
+ QVERIFY2(testFile.open(QIODevice::WriteOnly | QIODevice::Truncate), msgFileOperationFailed("open", testFile));
+ QVERIFY2(testFile.write(QByteArrayLiteral("hello")) > 0, msgFileOperationFailed("write", testFile));
testFile.close();
QFileSystemWatcher watcher;
@@ -449,8 +452,8 @@ void tst_QFileSystemWatcher::watchFileAndItsDirectory()
// wait before modifying the directory...
QTest::qWait(2000);
- QVERIFY(testFile.open(QIODevice::WriteOnly | QIODevice::Truncate));
- testFile.write(QByteArray("hello again"));
+ QVERIFY2(testFile.open(QIODevice::WriteOnly | QIODevice::Truncate), msgFileOperationFailed("open", testFile));
+ QVERIFY2(testFile.write(QByteArrayLiteral("hello again")), msgFileOperationFailed("write", testFile));
testFile.close();
#ifdef Q_OS_MAC
@@ -472,8 +475,8 @@ void tst_QFileSystemWatcher::watchFileAndItsDirectory()
fileChangedSpy.clear();
dirChangedSpy.clear();
QFile secondFile(secondFileName);
- secondFile.open(QIODevice::WriteOnly | QIODevice::Truncate);
- secondFile.write("Foo");
+ QVERIFY2(secondFile.open(QIODevice::WriteOnly | QIODevice::Truncate), msgFileOperationFailed("open", secondFile));
+ QVERIFY2(secondFile.write(QByteArrayLiteral("Foo")) > 0, msgFileOperationFailed("write", secondFile));
secondFile.close();
timer.start(3000);
@@ -491,17 +494,17 @@ void tst_QFileSystemWatcher::watchFileAndItsDirectory()
dirChangedSpy.clear();
- QFile::remove(testFileName);
+ QVERIFY(QFile::remove(testFileName));
QTRY_VERIFY(fileChangedSpy.count() > 0);
- QCOMPARE(dirChangedSpy.count(), 1);
+ QTRY_COMPARE(dirChangedSpy.count(), 1);
fileChangedSpy.clear();
dirChangedSpy.clear();
// removing a deleted file should fail
QVERIFY(!watcher.removePath(testFileName));
- QFile::remove(secondFileName);
+ QVERIFY(QFile::remove(secondFileName));
timer.start(3000);
eventLoop.exec();
diff --git a/tests/auto/corelib/tools/qarraydata/simplevector.h b/tests/auto/corelib/tools/qarraydata/simplevector.h
index 40917c0172..af0ced130c 100644
--- a/tests/auto/corelib/tools/qarraydata/simplevector.h
+++ b/tests/auto/corelib/tools/qarraydata/simplevector.h
@@ -101,9 +101,10 @@ public:
bool isStatic() const { return d->ref.isStatic(); }
bool isShared() const { return d->ref.isShared(); }
bool isSharedWith(const SimpleVector &other) const { return d == other.d; }
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
bool isSharable() const { return d->ref.isSharable(); }
-
void setSharable(bool sharable) { d.setSharable(sharable); }
+#endif
size_t size() const { return d->size; }
size_t capacity() const { return d->alloc; }
diff --git a/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp b/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
index 60b807a7bc..35ec0ef019 100644
--- a/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
+++ b/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
@@ -52,7 +52,9 @@ struct SharedNullVerifier
{
Q_ASSERT(QArrayData::shared_null[0].ref.isStatic());
Q_ASSERT(QArrayData::shared_null[0].ref.isShared());
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
Q_ASSERT(QArrayData::shared_null[0].ref.isSharable());
+#endif
}
};
@@ -107,7 +109,9 @@ void tst_QArrayData::referenceCounting()
QCOMPARE(array.ref.atomic.load(), 1);
QVERIFY(!array.ref.isStatic());
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
QVERIFY(array.ref.isSharable());
+#endif
QVERIFY(array.ref.ref());
QCOMPARE(array.ref.atomic.load(), 2);
@@ -127,6 +131,7 @@ void tst_QArrayData::referenceCounting()
// Now would be a good time to free/release allocated data
}
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
{
// Reference counting initialized to 0 (non-sharable)
QArrayData array = { { Q_BASIC_ATOMIC_INITIALIZER(0) }, 0, 0, 0, 0 };
@@ -145,6 +150,7 @@ void tst_QArrayData::referenceCounting()
// Free/release data
}
+#endif
{
// Reference counting initialized to -1 (static read-only data)
@@ -153,13 +159,16 @@ void tst_QArrayData::referenceCounting()
QCOMPARE(array.ref.atomic.load(), -1);
QVERIFY(array.ref.isStatic());
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
QVERIFY(array.ref.isSharable());
+#endif
QVERIFY(array.ref.ref());
QCOMPARE(array.ref.atomic.load(), -1);
QVERIFY(array.ref.deref());
QCOMPARE(array.ref.atomic.load(), -1);
+
}
}
@@ -169,16 +178,19 @@ void tst_QArrayData::sharedNullEmpty()
QArrayData *empty = QArrayData::allocate(1, Q_ALIGNOF(QArrayData), 0);
QVERIFY(null->ref.isStatic());
- QVERIFY(null->ref.isSharable());
QVERIFY(null->ref.isShared());
QVERIFY(empty->ref.isStatic());
- QVERIFY(empty->ref.isSharable());
QVERIFY(empty->ref.isShared());
QCOMPARE(null->ref.atomic.load(), -1);
QCOMPARE(empty->ref.atomic.load(), -1);
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
+ QVERIFY(null->ref.isSharable());
+ QVERIFY(empty->ref.isSharable());
+#endif
+
QVERIFY(null->ref.ref());
QVERIFY(empty->ref.ref());
@@ -305,6 +317,7 @@ void tst_QArrayData::simpleVector()
QVERIFY(!v7.isShared());
QVERIFY(!v8.isShared());
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
QVERIFY(v1.isSharable());
QVERIFY(v2.isSharable());
QVERIFY(v3.isSharable());
@@ -313,6 +326,7 @@ void tst_QArrayData::simpleVector()
QVERIFY(v6.isSharable());
QVERIFY(v7.isSharable());
QVERIFY(v8.isSharable());
+#endif
QVERIFY(v1.isSharedWith(v2));
QVERIFY(v1.isSharedWith(v3));
@@ -496,6 +510,7 @@ void tst_QArrayData::simpleVector()
for (int i = 0; i < 120; ++i)
QCOMPARE(v1[i], v8[i % 10]);
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
{
v7.setSharable(true);
QVERIFY(v7.isSharable());
@@ -558,6 +573,7 @@ void tst_QArrayData::simpleVector()
QVERIFY(null.isEmpty());
QVERIFY(empty.isEmpty());
}
+#endif
}
Q_DECLARE_METATYPE(SimpleVector<int>)
@@ -648,7 +664,7 @@ void tst_QArrayData::allocate_data()
QTest::addColumn<size_t>("alignment");
QTest::addColumn<QArrayData::AllocationOptions>("allocateOptions");
QTest::addColumn<bool>("isCapacityReserved");
- QTest::addColumn<bool>("isSharable");
+ QTest::addColumn<bool>("isSharable"); // ### Qt6: remove
QTest::addColumn<const QArrayData *>("commonEmpty");
struct {
@@ -662,10 +678,12 @@ void tst_QArrayData::allocate_data()
};
QArrayData *shared_empty = QArrayData::allocate(0, Q_ALIGNOF(QArrayData), 0);
- QArrayData *unsharable_empty = QArrayData::allocate(0, Q_ALIGNOF(QArrayData), 0, QArrayData::Unsharable);
-
QVERIFY(shared_empty);
+
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
+ QArrayData *unsharable_empty = QArrayData::allocate(0, Q_ALIGNOF(QArrayData), 0, QArrayData::Unsharable);
QVERIFY(unsharable_empty);
+#endif
struct {
char const *description;
@@ -676,10 +694,12 @@ void tst_QArrayData::allocate_data()
} options[] = {
{ "Default", QArrayData::Default, false, true, shared_empty },
{ "Reserved", QArrayData::CapacityReserved, true, true, shared_empty },
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
{ "Reserved | Unsharable",
QArrayData::CapacityReserved | QArrayData::Unsharable, true, false,
unsharable_empty },
{ "Unsharable", QArrayData::Unsharable, false, false, unsharable_empty },
+#endif
{ "Grow", QArrayData::Grow, false, true, shared_empty }
};
@@ -700,7 +720,6 @@ void tst_QArrayData::allocate()
QFETCH(size_t, alignment);
QFETCH(QArrayData::AllocationOptions, allocateOptions);
QFETCH(bool, isCapacityReserved);
- QFETCH(bool, isSharable);
QFETCH(const QArrayData *, commonEmpty);
// Minimum alignment that can be requested is that of QArrayData.
@@ -725,7 +744,10 @@ void tst_QArrayData::allocate()
else
QCOMPARE(data->alloc, uint(capacity));
QCOMPARE(data->capacityReserved, uint(isCapacityReserved));
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
+ QFETCH(bool, isSharable);
QCOMPARE(data->ref.isSharable(), isSharable);
+#endif
// Check that the allocated array can be used. Best tested with a
// memory checker, such as valgrind, running.
@@ -1302,6 +1324,7 @@ static inline bool arrayIsFilledWith(const QArrayDataPointer<int> &array,
void tst_QArrayData::setSharable_data()
{
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
QTest::addColumn<QArrayDataPointer<int> >("array");
QTest::addColumn<size_t>("size");
QTest::addColumn<size_t>("capacity");
@@ -1342,10 +1365,12 @@ void tst_QArrayData::setSharable_data()
QTest::newRow("non-empty-reserved") << nonEmptyReserved << size_t(7) << size_t(15) << true << 2;
QTest::newRow("static-array") << staticArray << size_t(10) << size_t(0) << false << 3;
QTest::newRow("raw-data") << rawData << size_t(10) << size_t(0) << false << 3;
+#endif
}
void tst_QArrayData::setSharable()
{
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
QFETCH(QArrayDataPointer<int>, array);
QFETCH(size_t, size);
QFETCH(size_t, capacity);
@@ -1424,6 +1449,7 @@ void tst_QArrayData::setSharable()
QCOMPARE(array->ref.isShared(), !(size || isCapacityReserved));
QVERIFY(array->ref.isSharable());
+#endif
}
struct ResetOnDtor
@@ -1474,6 +1500,7 @@ void fromRawData_impl()
QVERIFY((const T *)raw.constBegin() != array);
}
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
{
// Immutable, unsharable
SimpleVector<T> raw = SimpleVector<T>::fromRawData(array,
@@ -1502,6 +1529,7 @@ void fromRawData_impl()
QCOMPARE(raw.back(), T(11));
QVERIFY((const T *)raw.constBegin() != array);
}
+#endif
}
void tst_QArrayData::fromRawData_data()
@@ -1558,7 +1586,9 @@ void tst_QArrayData::literals()
QVERIFY(v.isStatic());
#endif
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
QVERIFY(v.isSharable());
+#endif
QCOMPARE((void*)(const char*)(v.constBegin() + v.size()), (void*)(const char*)v.constEnd());
for (int i = 0; i < 10; ++i)
@@ -1607,7 +1637,9 @@ void tst_QArrayData::variadicLiterals()
QVERIFY(v.isStatic());
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
QVERIFY(v.isSharable());
+#endif
QCOMPARE((const int *)(v.constBegin() + v.size()), (const int *)v.constEnd());
for (int i = 0; i < 7; ++i)
diff --git a/tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp b/tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp
index 6e183f3212..cdcbd19ae8 100644
--- a/tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp
+++ b/tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp
@@ -1863,7 +1863,7 @@ void tst_QByteArray::reserve()
QCOMPARE(qba.capacity(), capacity);
QCOMPARE(copy.capacity(), capacity);
- copy = qba;
+ qba = copy;
qba.reserve(capacity * 2);
QCOMPARE(qba.size(), capacity);
QCOMPARE(qba.capacity(), capacity * 2);
diff --git a/tests/auto/corelib/tools/qhash/tst_qhash.cpp b/tests/auto/corelib/tools/qhash/tst_qhash.cpp
index 73f8973245..9c96aaf78d 100644
--- a/tests/auto/corelib/tools/qhash/tst_qhash.cpp
+++ b/tests/auto/corelib/tools/qhash/tst_qhash.cpp
@@ -1217,12 +1217,14 @@ void tst_QHash::noNeedlessRehashes()
void tst_QHash::const_shared_null()
{
+ QHash<int, QString> hash2;
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
QHash<int, QString> hash1;
hash1.setSharable(false);
QVERIFY(hash1.isDetached());
- QHash<int, QString> hash2;
hash2.setSharable(true);
+#endif
QVERIFY(!hash2.isDetached());
}
diff --git a/tests/auto/corelib/tools/qlinkedlist/tst_qlinkedlist.cpp b/tests/auto/corelib/tools/qlinkedlist/tst_qlinkedlist.cpp
index 49b32d5534..9e47e9c6d6 100644
--- a/tests/auto/corelib/tools/qlinkedlist/tst_qlinkedlist.cpp
+++ b/tests/auto/corelib/tools/qlinkedlist/tst_qlinkedlist.cpp
@@ -1018,12 +1018,14 @@ void tst_QLinkedList::initializeList() const
template<typename T>
void tst_QLinkedList::constSharedNull() const
{
+ QLinkedList<T> list2;
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
QLinkedList<T> list1;
list1.setSharable(false);
QVERIFY(list1.isDetached());
- QLinkedList<T> list2;
list2.setSharable(true);
+#endif
QVERIFY(!list2.isDetached());
}
@@ -1049,6 +1051,7 @@ void tst_QLinkedList::constSharedNullComplex() const
void tst_QLinkedList::setSharableInt() const
{
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
QLinkedList<int> orglist;
orglist << 0 << 1 << 2 << 3 << 4 << 5;
int size = 6;
@@ -1094,6 +1097,7 @@ void tst_QLinkedList::setSharableInt() const
}
QCOMPARE(list.size(), size);
+#endif
}
QTEST_APPLESS_MAIN(tst_QLinkedList)
diff --git a/tests/auto/corelib/tools/qlist/tst_qlist.cpp b/tests/auto/corelib/tools/qlist/tst_qlist.cpp
index d77cc4a37c..b368359c62 100644
--- a/tests/auto/corelib/tools/qlist/tst_qlist.cpp
+++ b/tests/auto/corelib/tools/qlist/tst_qlist.cpp
@@ -1522,12 +1522,14 @@ void tst_QList::initializeList() const
template<typename T>
void tst_QList::constSharedNull() const
{
+ QList<T> list2;
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
QList<T> list1;
list1.setSharable(false);
QVERIFY(list1.isDetached());
- QList<T> list2;
list2.setSharable(true);
+#endif
QVERIFY(!list2.isDetached());
}
@@ -1553,16 +1555,19 @@ void tst_QList::constSharedNullComplex() const
template <class T>
void generateSetSharableData()
{
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
QTest::addColumn<QList<T> >("list");
QTest::addColumn<int>("size");
QTest::newRow("null") << QList<T>() << 0;
QTest::newRow("non-empty") << (QList<T>() << T(0) << T(1) << T(2) << T(3) << T(4)) << 5;
+#endif
}
template <class T>
void runSetSharableTest()
{
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
QFETCH(QList<T>, list);
QFETCH(int, size);
@@ -1602,6 +1607,7 @@ void runSetSharableTest()
QCOMPARE(int(list[i]), i);
QCOMPARE(list.size(), size);
+#endif
}
void tst_QList::setSharableInt_data() const
diff --git a/tests/auto/corelib/tools/qmap/tst_qmap.cpp b/tests/auto/corelib/tools/qmap/tst_qmap.cpp
index e812e5a337..00e669c1d8 100644
--- a/tests/auto/corelib/tools/qmap/tst_qmap.cpp
+++ b/tests/auto/corelib/tools/qmap/tst_qmap.cpp
@@ -984,12 +984,14 @@ void tst_QMap::qmultimap_specific()
void tst_QMap::const_shared_null()
{
+ QMap<int, QString> map2;
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
QMap<int, QString> map1;
map1.setSharable(false);
QVERIFY(map1.isDetached());
- QMap<int, QString> map2;
map2.setSharable(true);
+#endif
QVERIFY(!map2.isDetached());
}
@@ -1046,6 +1048,7 @@ const T &const_(const T &t)
void tst_QMap::setSharable()
{
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
QMap<int, QString> map;
map.insert(1, "um");
@@ -1095,6 +1098,7 @@ void tst_QMap::setSharable()
QVERIFY(!map.isDetached());
QVERIFY(copy.isSharedWith(map));
}
+#endif
}
void tst_QMap::insert()
@@ -1204,7 +1208,6 @@ void tst_QMap::initializerList()
void tst_QMap::testInsertWithHint()
{
QMap<int, int> map;
- map.setSharable(false);
// Check with end hint();
map.insert(map.constEnd(), 3, 1); // size == 1
@@ -1268,7 +1271,6 @@ void tst_QMap::testInsertWithHint()
void tst_QMap::testInsertMultiWithHint()
{
QMap<int, int> map;
- map.setSharable(false);
typedef QMap<int, int>::const_iterator cite; // Hack since we define QT_STRICT_ITERATORS
map.insertMulti(cite(map.end()), 64, 65);
diff --git a/tests/auto/corelib/tools/qstring/tst_qstring.cpp b/tests/auto/corelib/tools/qstring/tst_qstring.cpp
index d9d6b985b7..95d377b176 100644
--- a/tests/auto/corelib/tools/qstring/tst_qstring.cpp
+++ b/tests/auto/corelib/tools/qstring/tst_qstring.cpp
@@ -3619,6 +3619,14 @@ void tst_QString::fromUtf8_data()
str += " some ";
QTest::newRow("str3-len") << QByteArray("\342\202\254 some text") << str << 9;
+ // test that QString::fromUtf8 suppresses an initial BOM, but not a ZWNBSP
+ str = "hello";
+ QByteArray bom("\357\273\277");
+ QTest::newRow("bom0") << bom << QString() << 3;
+ QTest::newRow("bom1") << bom + "hello" << str << -1;
+ QTest::newRow("bom+zwnbsp0") << bom + bom << QString(QChar(0xfeff)) << -1;
+ QTest::newRow("bom+zwnbsp1") << bom + "hello" + bom << str + QChar(0xfeff) << -1;
+
str = "hello";
str += QChar::ReplacementCharacter;
str += QChar(0x68);
diff --git a/tests/auto/corelib/tools/qvector/tst_qvector.cpp b/tests/auto/corelib/tools/qvector/tst_qvector.cpp
index f85d2dee0c..776251fa52 100644
--- a/tests/auto/corelib/tools/qvector/tst_qvector.cpp
+++ b/tests/auto/corelib/tools/qvector/tst_qvector.cpp
@@ -267,12 +267,15 @@ private slots:
void initializeListCustom();
void const_shared_null();
+#if 1
+ // ### Qt6 remove this section
void setSharableInt_data();
void setSharableInt();
void setSharableMovable_data();
void setSharableMovable();
void setSharableCustom_data();
void setSharableCustom();
+#endif
void detachInt() const;
void detachMovable() const;
@@ -398,15 +401,17 @@ void tst_QVector::copyConstructor() const
}
{
QVector<T> v1;
- v1.setSharable(false);
+ v1 << value1 << value2 << value3 << value4;
QVector<T> v2(v1);
- QVERIFY(!v1.isSharedWith(v2));
QCOMPARE(v1, v2);
}
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
+ // ### Qt6 remove this section
{
QVector<T> v1;
- v1 << value1 << value2 << value3 << value4;
+ v1.setSharable(false);
QVector<T> v2(v1);
+ QVERIFY(!v1.isSharedWith(v2));
QCOMPARE(v1, v2);
}
{
@@ -417,6 +422,7 @@ void tst_QVector::copyConstructor() const
QVERIFY(!v1.isSharedWith(v2));
QCOMPARE(v1, v2);
}
+#endif
}
void tst_QVector::copyConstructorInt() const
@@ -517,6 +523,8 @@ void tst_QVector::append() const
QVERIFY(v.size() == 3);
QCOMPARE(v.at(v.size() - 1), SimpleValue<T>::at(0));
}
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
+ // ### Qt6 remove this section
{
QVector<T> v(2);
v.reserve(12);
@@ -525,6 +533,7 @@ void tst_QVector::append() const
QVERIFY(v.size() == 3);
QCOMPARE(v.last(), SimpleValue<T>::at(0));
}
+#endif
}
void tst_QVector::appendInt() const
@@ -822,12 +831,15 @@ void tst_QVector::eraseEmpty() const
v.erase(v.begin(), v.end());
QCOMPARE(v.size(), 0);
}
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
+ // ### Qt6 remove this section
{
QVector<T> v;
v.setSharable(false);
v.erase(v.begin(), v.end());
QCOMPARE(v.size(), 0);
}
+#endif
}
void tst_QVector::eraseEmptyInt() const
@@ -858,6 +870,8 @@ void tst_QVector::eraseEmptyReserved() const
v.erase(v.begin(), v.end());
QCOMPARE(v.size(), 0);
}
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
+ // ### Qt6 remove this section
{
QVector<T> v;
v.reserve(10);
@@ -865,6 +879,7 @@ void tst_QVector::eraseEmptyReserved() const
v.erase(v.begin(), v.end());
QCOMPARE(v.size(), 0);
}
+#endif
}
void tst_QVector::eraseEmptyReservedInt() const
@@ -971,6 +986,8 @@ void tst_QVector::erase(bool shared) const
if (shared)
QCOMPARE(SimpleValue<T>::vector(12), *svc.copy);
}
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
+ // ### Qt6 remove this section
{
QVector<T> v = SimpleValue<T>::vector(10);
SharedVectorChecker<T> svc(v, shared);
@@ -983,6 +1000,7 @@ void tst_QVector::erase(bool shared) const
if (shared)
QCOMPARE(SimpleValue<T>::vector(10), *svc.copy);
}
+#endif
}
void tst_QVector::eraseInt() const
@@ -1055,6 +1073,8 @@ template<typename T> void tst_QVector::eraseReserved() const
v.erase(v.begin() + 1, v.end() - 1);
QCOMPARE(v.size(), 2);
}
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
+ // ### Qt6 remove this section
{
QVector<T> v(10);
v.reserve(16);
@@ -1064,6 +1084,7 @@ template<typename T> void tst_QVector::eraseReserved() const
v.erase(v.begin(), v.end() - 1);
QCOMPARE(v.size(), 1);
}
+#endif
}
void tst_QVector::eraseReservedInt() const
@@ -1585,6 +1606,14 @@ void tst_QVector::resizePOD_data() const
QVERIFY(emptyReserved.capacity() >= 10);
QVERIFY(nonEmptyReserved.capacity() >= 15);
+ QTest::newRow("null") << null << 10;
+ QTest::newRow("empty") << empty << 10;
+ QTest::newRow("emptyReserved") << emptyReserved << 10;
+ QTest::newRow("nonEmpty") << nonEmpty << 10;
+ QTest::newRow("nonEmptyReserved") << nonEmptyReserved << 10;
+
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
+ // ### Qt6 remove this section
QVector<int> nullNotShared;
QVector<int> emptyNotShared(0, 5);
QVector<int> emptyReservedNotShared;
@@ -1603,16 +1632,12 @@ void tst_QVector::resizePOD_data() const
nonEmptyNotShared.setSharable(false);
nonEmptyReservedNotShared.setSharable(false);
- QTest::newRow("null") << null << 10;
- QTest::newRow("empty") << empty << 10;
- QTest::newRow("emptyReserved") << emptyReserved << 10;
- QTest::newRow("nonEmpty") << nonEmpty << 10;
- QTest::newRow("nonEmptyReserved") << nonEmptyReserved << 10;
QTest::newRow("nullNotShared") << nullNotShared << 10;
QTest::newRow("emptyNotShared") << emptyNotShared << 10;
QTest::newRow("emptyReservedNotShared") << emptyReservedNotShared << 10;
QTest::newRow("nonEmptyNotShared") << nonEmptyNotShared << 10;
QTest::newRow("nonEmptyReservedNotShared") << nonEmptyReservedNotShared << 10;
+#endif
}
void tst_QVector::resizePOD() const
@@ -1656,6 +1681,14 @@ void tst_QVector::resizeComplexMovable_data() const
QVERIFY(emptyReserved.capacity() >= 10);
QVERIFY(nonEmptyReserved.capacity() >= 15);
+ QTest::newRow("null") << null << 10;
+ QTest::newRow("empty") << empty << 10;
+ QTest::newRow("emptyReserved") << emptyReserved << 10;
+ QTest::newRow("nonEmpty") << nonEmpty << 10;
+ QTest::newRow("nonEmptyReserved") << nonEmptyReserved << 10;
+
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
+ // ### Qt6 remove this section
QVector<Movable> nullNotShared;
QVector<Movable> emptyNotShared(0, 'Q');
QVector<Movable> emptyReservedNotShared;
@@ -1674,16 +1707,12 @@ void tst_QVector::resizeComplexMovable_data() const
nonEmptyNotShared.setSharable(false);
nonEmptyReservedNotShared.setSharable(false);
- QTest::newRow("null") << null << 10;
- QTest::newRow("empty") << empty << 10;
- QTest::newRow("emptyReserved") << emptyReserved << 10;
- QTest::newRow("nonEmpty") << nonEmpty << 10;
- QTest::newRow("nonEmptyReserved") << nonEmptyReserved << 10;
QTest::newRow("nullNotShared") << nullNotShared << 10;
QTest::newRow("emptyNotShared") << emptyNotShared << 10;
QTest::newRow("emptyReservedNotShared") << emptyReservedNotShared << 10;
QTest::newRow("nonEmptyNotShared") << nonEmptyNotShared << 10;
QTest::newRow("nonEmptyReservedNotShared") << nonEmptyReservedNotShared << 10;
+#endif
}
void tst_QVector::resizeComplexMovable() const
@@ -1731,6 +1760,14 @@ void tst_QVector::resizeComplex_data() const
QVERIFY(emptyReserved.capacity() >= 10);
QVERIFY(nonEmptyReserved.capacity() >= 15);
+ QTest::newRow("null") << null << 10;
+ QTest::newRow("empty") << empty << 10;
+ QTest::newRow("emptyReserved") << emptyReserved << 10;
+ QTest::newRow("nonEmpty") << nonEmpty << 10;
+ QTest::newRow("nonEmptyReserved") << nonEmptyReserved << 10;
+
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
+ // ### Qt6 remove this section
QVector<Custom> nullNotShared;
QVector<Custom> emptyNotShared(0, '0');
QVector<Custom> emptyReservedNotShared;
@@ -1749,16 +1786,12 @@ void tst_QVector::resizeComplex_data() const
nonEmptyNotShared.setSharable(false);
nonEmptyReservedNotShared.setSharable(false);
- QTest::newRow("null") << null << 10;
- QTest::newRow("empty") << empty << 10;
- QTest::newRow("emptyReserved") << emptyReserved << 10;
- QTest::newRow("nonEmpty") << nonEmpty << 10;
- QTest::newRow("nonEmptyReserved") << nonEmptyReserved << 10;
QTest::newRow("nullNotShared") << nullNotShared << 10;
QTest::newRow("emptyNotShared") << emptyNotShared << 10;
QTest::newRow("emptyReservedNotShared") << emptyReservedNotShared << 10;
QTest::newRow("nonEmptyNotShared") << nonEmptyNotShared << 10;
QTest::newRow("nonEmptyReservedNotShared") << nonEmptyReservedNotShared << 10;
+#endif
}
void tst_QVector::resizeComplex() const
@@ -2143,15 +2176,20 @@ void tst_QVector::initializeListCustom()
void tst_QVector::const_shared_null()
{
+ QVector<int> v2;
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
+ // ### Qt6 remove this section
QVector<int> v1;
v1.setSharable(false);
QVERIFY(v1.isDetached());
- QVector<int> v2;
v2.setSharable(true);
+#endif
QVERIFY(!v2.isDetached());
}
+#if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
+// ### Qt6 remove this section
template<typename T>
void tst_QVector::setSharable_data() const
{
@@ -2182,21 +2220,6 @@ void tst_QVector::setSharable_data() const
QTest::newRow("non-empty, Reserved") << nonEmptyReserved << 7 << 15 << true;
}
-void tst_QVector::setSharableInt_data()
-{
- setSharable_data<int>();
-}
-
-void tst_QVector::setSharableMovable_data()
-{
- setSharable_data<Movable>();
-}
-
-void tst_QVector::setSharableCustom_data()
-{
- setSharable_data<Custom>();
-}
-
template<typename T>
void tst_QVector::setSharable() const
{
@@ -2258,6 +2281,30 @@ void tst_QVector::setSharable() const
.arg(vector.capacity())
.arg(capacity)));
}
+#else
+template<typename T> void tst_QVector::setSharable_data() const
+{
+}
+
+template<typename T> void tst_QVector::setSharable() const
+{
+}
+#endif
+
+void tst_QVector::setSharableInt_data()
+{
+ setSharable_data<int>();
+}
+
+void tst_QVector::setSharableMovable_data()
+{
+ setSharable_data<Movable>();
+}
+
+void tst_QVector::setSharableCustom_data()
+{
+ setSharable_data<Custom>();
+}
void tst_QVector::setSharableInt()
{