diff options
author | Thorbjørn Martsum <tmartsum@gmail.com> | 2013-06-17 11:35:46 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-08-24 15:36:30 +0200 |
commit | c35b55f076baf8cfd62549e8e386bfd95853de69 (patch) | |
tree | e371b4e9d05bc3ad4a86f6563605e25f4f8224ee /tests/auto/corelib/tools/qlinkedlist/tst_qlinkedlist.cpp | |
parent | 97f867212f1e6944152c3560b2edb9b8d430847b (diff) |
QLinkedList - fix insert with iterator when the list is shared.
Before a call to erase on a shared instance would imply that the
item was inserted into the shared data (i.e all instances)
Change-Id: I655ccf04b1ad9bf82e6bfade58929538fa7df000
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests/auto/corelib/tools/qlinkedlist/tst_qlinkedlist.cpp')
-rw-r--r-- | tests/auto/corelib/tools/qlinkedlist/tst_qlinkedlist.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/auto/corelib/tools/qlinkedlist/tst_qlinkedlist.cpp b/tests/auto/corelib/tools/qlinkedlist/tst_qlinkedlist.cpp index b1a9946a0f..3fa78f5f13 100644 --- a/tests/auto/corelib/tools/qlinkedlist/tst_qlinkedlist.cpp +++ b/tests/auto/corelib/tools/qlinkedlist/tst_qlinkedlist.cpp @@ -47,6 +47,7 @@ class tst_QLinkedList : public QObject Q_OBJECT private slots: void eraseValidIteratorsOnSharedList() const; + void insertWithIteratorsOnSharedList() const; }; void tst_QLinkedList::eraseValidIteratorsOnSharedList() const @@ -73,5 +74,23 @@ void tst_QLinkedList::eraseValidIteratorsOnSharedList() const QCOMPARE(*r, 10); // Ensure that number 2 instance was removed; } +void tst_QLinkedList::insertWithIteratorsOnSharedList() const +{ + QLinkedList<int> a, b; + a.append(5); + a.append(10); + a.append(20); + QLinkedList<int>::iterator i = a.begin(); + ++i; + ++i; + b = a; + + QLinkedList<int>::iterator i2 = a.insert(i, 15); + QCOMPARE(b.size(), 3); + QCOMPARE(a.size(), 4); + --i2; + QCOMPARE(*i2, 10); +} + QTEST_MAIN(tst_QLinkedList) #include "tst_qlinkedlist.moc" |