summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/auto/corelib/tools/containerapisymmetry/tst_containerapisymmetry.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/tests/auto/corelib/tools/containerapisymmetry/tst_containerapisymmetry.cpp b/tests/auto/corelib/tools/containerapisymmetry/tst_containerapisymmetry.cpp
index 0237f60c3ca..29b229637e3 100644
--- a/tests/auto/corelib/tools/containerapisymmetry/tst_containerapisymmetry.cpp
+++ b/tests/auto/corelib/tools/containerapisymmetry/tst_containerapisymmetry.cpp
@@ -982,9 +982,23 @@ void tst_ContainerApiSymmetry::assign_impl() const
QCOMPARE_EQ(c.capacity(), grownCapacity);
}
{
- // range version for non input iterator
+ // range version for forward iterator
auto c = make<Container>(4);
- auto src = make<Container>(1);
+ auto src = std::forward_list<V>();
+
+ src.assign(8, tData);
+ RET_CHECK(c.assign(src.begin(), src.end())); // may reallocate
+ CHECK(c, tData, c.size(), S(8));
+
+ const S oldCapacity = c.capacity();
+ c.assign(src.begin(), src.begin());
+ CHECK(c, tData, c.size(), S(0));
+ QCOMPARE_EQ(c.capacity(), oldCapacity);
+ }
+ {
+ // range version for random-access iterator
+ auto c = make<Container>(4);
+ auto src = std::vector<V>();
src.assign(8, tData);
RET_CHECK(c.assign(src.begin(), src.end())); // may reallocate