summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarshall Clow <mclow.lists@gmail.com>2015-11-16 22:18:36 +0000
committerMarshall Clow <mclow.lists@gmail.com>2015-11-16 22:18:36 +0000
commitb90e350017a55f0a637d604a32db5988ede8012e (patch)
tree1da827e16a0dc6efca86a7658d7a825bc200b3f0
parent4e28753140768843d5457c3fd624d9812bdce1d3 (diff)
downloadbcm5719-llvm-b90e350017a55f0a637d604a32db5988ede8012e.tar.gz
bcm5719-llvm-b90e350017a55f0a637d604a32db5988ede8012e.zip
More tests for LWG#2156
llvm-svn: 253257
-rw-r--r--libcxx/test/std/containers/unord/unord.map/reserve.pass.cpp16
-rw-r--r--libcxx/test/std/containers/unord/unord.multimap/reserve.pass.cpp16
-rw-r--r--libcxx/test/std/containers/unord/unord.multiset/reserve.pass.cpp16
-rw-r--r--libcxx/test/std/containers/unord/unord.set/reserve.pass.cpp16
4 files changed, 64 insertions, 0 deletions
diff --git a/libcxx/test/std/containers/unord/unord.map/reserve.pass.cpp b/libcxx/test/std/containers/unord/unord.map/reserve.pass.cpp
index 48667cdc7f9..bef237f960a 100644
--- a/libcxx/test/std/containers/unord/unord.map/reserve.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.map/reserve.pass.cpp
@@ -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);
}
diff --git a/libcxx/test/std/containers/unord/unord.multimap/reserve.pass.cpp b/libcxx/test/std/containers/unord/unord.multimap/reserve.pass.cpp
index 801c74457d7..5e7daf22efc 100644
--- a/libcxx/test/std/containers/unord/unord.multimap/reserve.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.multimap/reserve.pass.cpp
@@ -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);
}
diff --git a/libcxx/test/std/containers/unord/unord.multiset/reserve.pass.cpp b/libcxx/test/std/containers/unord/unord.multiset/reserve.pass.cpp
index 0c17583d371..1d393a09cde 100644
--- a/libcxx/test/std/containers/unord/unord.multiset/reserve.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.multiset/reserve.pass.cpp
@@ -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);
}
diff --git a/libcxx/test/std/containers/unord/unord.set/reserve.pass.cpp b/libcxx/test/std/containers/unord/unord.set/reserve.pass.cpp
index 7d6656a1867..078b886b267 100644
--- a/libcxx/test/std/containers/unord/unord.set/reserve.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.set/reserve.pass.cpp
@@ -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);
}
OpenPOWER on IntegriCloud