summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
diff options
context:
space:
mode:
authorStephen Kelly <stephen.kelly@kdab.com>2013-09-11 18:56:02 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-13 14:37:41 +0200
commit8b0624182bd4998d32c23eded5dbe6dccfd26d5b (patch)
tree8e74d2fa946718d8fe2f0060829cfd8a96cf1bde /tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
parenta9770c4b6c9fb80ae1b33f5e901ed0a5e5bfb25c (diff)
MetaType: Fix operator{+,-}(int) with the type-erased const_iterators.
Make sure we don't modify the lhs. Instead copy it and advance the copy. Change-Id: I3440e8e175bfc299f8f83b816faca54fa3f79e43 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Diffstat (limited to 'tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp')
-rw-r--r--tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
index c59e87cf13..52319f47fd 100644
--- a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
+++ b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
@@ -3818,6 +3818,20 @@ void tst_QVariant::iterateContainerElements()
TEST_SEQUENTIAL_ITERATION(std::forward_list, QString)
#endif
+ {
+ QVariantList ints;
+ ints << 1 << 2 << 3;
+ QVariant var = QVariant::fromValue(ints);
+ QSequentialIterable iter = var.value<QSequentialIterable>();
+ QSequentialIterable::const_iterator it = iter.begin();
+ QSequentialIterable::const_iterator end = iter.end();
+ QCOMPARE(ints.at(1), *(it + 1));
+ int i = 0;
+ for ( ; it != end; ++it, ++i) {
+ QCOMPARE(ints.at(i), *it);
+ }
+ }
+
#define TEST_ASSOCIATIVE_ITERATION(CONTAINER, KEY_TYPE, MAPPED_TYPE) \
{ \
int numSeen = 0; \
@@ -3852,6 +3866,22 @@ void tst_QVariant::iterateContainerElements()
#ifdef TEST_UNORDERED_MAP
TEST_ASSOCIATIVE_ITERATION(std::unordered_map, int, bool)
#endif
+
+ {
+ QMap<int, QString> mapping;
+ mapping.insert(1, "one");
+ mapping.insert(2, "two");
+ mapping.insert(3, "three");
+ QVariant var = QVariant::fromValue(mapping);
+ QAssociativeIterable iter = var.value<QAssociativeIterable>();
+ QAssociativeIterable::const_iterator it = iter.begin();
+ QAssociativeIterable::const_iterator end = iter.end();
+ QCOMPARE(*(mapping.begin() + 1), (*(it + 1)).toString());
+ int i = 0;
+ for ( ; it != end; ++it, ++i) {
+ QCOMPARE(*(mapping.begin() + i), (*it).toString());
+ }
+ }
}
void tst_QVariant::pairElements()