[libcxx] r253257 - More tests for LWG#2156

Marshall Clow via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 16 14:18:36 PST 2015


Author: marshall
Date: Mon Nov 16 16:18:36 2015
New Revision: 253257

URL: http://llvm.org/viewvc/llvm-project?rev=253257&view=rev
Log:
More tests for LWG#2156

Modified:
    libcxx/trunk/test/std/containers/unord/unord.map/reserve.pass.cpp
    libcxx/trunk/test/std/containers/unord/unord.multimap/reserve.pass.cpp
    libcxx/trunk/test/std/containers/unord/unord.multiset/reserve.pass.cpp
    libcxx/trunk/test/std/containers/unord/unord.set/reserve.pass.cpp

Modified: libcxx/trunk/test/std/containers/unord/unord.map/reserve.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/unord/unord.map/reserve.pass.cpp?rev=253257&r1=253256&r2=253257&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/unord/unord.map/reserve.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/unord/unord.map/reserve.pass.cpp Mon Nov 16 16:18:36 2015
@@ -31,6 +31,21 @@ void test(const C& c)
     assert(c.at(4) == "four");
 }
 
+void reserve_invariant(size_t n) // LWG #2156
+{
+    for (size_t i = 0; i < n; ++i)
+    {
+        std::unordered_map<size_t, size_t> c;
+        c.reserve(n);
+        size_t buckets = c.bucket_count();
+        for (size_t j = 0; j < i; ++j)
+        {
+            c[i] = i;
+            assert(buckets == c.bucket_count());
+        }
+    }
+}
+
 int main()
 {
     {
@@ -88,4 +103,5 @@ int main()
         test(c);
     }
 #endif
+    reserve_invariant(20);
 }

Modified: libcxx/trunk/test/std/containers/unord/unord.multimap/reserve.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/unord/unord.multimap/reserve.pass.cpp?rev=253257&r1=253256&r2=253257&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/unord/unord.multimap/reserve.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/unord/unord.multimap/reserve.pass.cpp Mon Nov 16 16:18:36 2015
@@ -33,6 +33,21 @@ void test(const C& c)
     assert(c.find(4)->second == "four");
 }
 
+void reserve_invariant(size_t n) // LWG #2156
+{
+    for (size_t i = 0; i < n; ++i)
+    {
+        std::unordered_multimap<size_t, size_t> c;
+        c.reserve(n);
+        size_t buckets = c.bucket_count();
+        for (size_t j = 0; j < i; ++j)
+        {
+            c[i] = i;
+            assert(buckets == c.bucket_count());
+        }
+    }
+}
+
 int main()
 {
     {
@@ -90,4 +105,5 @@ int main()
         test(c);
     }
 #endif
+    reserve_invariant(20);
 }

Modified: libcxx/trunk/test/std/containers/unord/unord.multiset/reserve.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/unord/unord.multiset/reserve.pass.cpp?rev=253257&r1=253256&r2=253257&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/unord/unord.multiset/reserve.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/unord/unord.multiset/reserve.pass.cpp Mon Nov 16 16:18:36 2015
@@ -30,6 +30,21 @@ void test(const C& c)
     assert(c.count(4) == 1);
 }
 
+void reserve_invariant(size_t n) // LWG #2156
+{
+    for (size_t i = 0; i < n; ++i)
+    {
+        std::unordered_multiset<size_t> c;
+        c.reserve(n);
+        size_t buckets = c.bucket_count();
+        for (size_t j = 0; j < i; ++j)
+        {
+            c.insert(i);
+            assert(buckets == c.bucket_count());
+        }
+    }
+}
+
 int main()
 {
     {
@@ -87,4 +102,5 @@ int main()
         test(c);
     }
 #endif
+    reserve_invariant(20);
 }

Modified: libcxx/trunk/test/std/containers/unord/unord.set/reserve.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/unord/unord.set/reserve.pass.cpp?rev=253257&r1=253256&r2=253257&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/unord/unord.set/reserve.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/unord/unord.set/reserve.pass.cpp Mon Nov 16 16:18:36 2015
@@ -30,6 +30,21 @@ void test(const C& c)
     assert(c.count(4) == 1);
 }
 
+void reserve_invariant(size_t n) // LWG #2156
+{
+    for (size_t i = 0; i < n; ++i)
+    {
+        std::unordered_set<size_t> c;
+        c.reserve(n);
+        size_t buckets = c.bucket_count();
+        for (size_t j = 0; j < i; ++j)
+        {
+            c.insert(i);
+            assert(buckets == c.bucket_count());
+        }
+    }
+}
+
 int main()
 {
     {
@@ -87,4 +102,5 @@ int main()
         test(c);
     }
 #endif
+    reserve_invariant(20);
 }




More information about the cfe-commits mailing list