summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2020-01-29 01:00:55 +0100
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2020-01-29 01:01:12 +0100
commit6f44c40f18397e6656079a196ff4ce36d7563ec7 (patch)
tree3e604f3f4bcf4aab2bf0df6adccb456b1e4ae8e2 /tests
parent9109461809f2d1ff5bb9d26dccce6d6a5434926b (diff)
parenta3fc03c13032b779f74ef496977d2e19e415227a (diff)
Merge "Merge remote-tracking branch 'origin/5.14' into 5.15"
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
index 45eb61f6e4..5af1353a0f 100644
--- a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
+++ b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
@@ -281,6 +281,8 @@ private slots:
void shouldDeleteVariantDataWorksForAssociative();
void fromStdVariant();
void qt4UuidDataStream();
+ void sequentialIterableEndianessSanityCheck();
+ void sequentialIterableAppend();
void preferDirectConversionOverInterfaces();
@@ -5142,6 +5144,28 @@ void tst_QVariant::qt4UuidDataStream()
QCOMPARE(result.value<QUuid>(), source);
}
+void tst_QVariant::sequentialIterableEndianessSanityCheck()
+{
+ namespace QMTP = QtMetaTypePrivate;
+ uint oldIteratorCaps = QMTP::ForwardCapability | QMTP::BiDirectionalCapability | QMTP::RandomAccessCapability;
+ QMTP::QSequentialIterableImpl seqImpl {};
+ QCOMPARE(seqImpl.revision(), 1u);
+ memcpy(&seqImpl._iteratorCapabilities, &oldIteratorCaps, sizeof(oldIteratorCaps));
+ QCOMPARE(seqImpl.revision(), 0u);
+}
+
+void tst_QVariant::sequentialIterableAppend()
+{
+ QVector<int> container {1, 2};
+ auto variant = QVariant::fromValue(container);
+ QVERIFY(variant.canConvert<QtMetaTypePrivate::QSequentialIterableImpl>());
+ auto asIterable = variant.value<QtMetaTypePrivate::QSequentialIterableImpl>();
+ const int i = 3, j = 4;
+ asIterable.append(&i);
+ asIterable.append(&j);
+ QCOMPARE(variant.value<QVector<int>>(), QVector<int> ({1, 2, 3, 4}));
+}
+
void tst_QVariant::preferDirectConversionOverInterfaces()
{
using namespace QtMetaTypePrivate;