[PATCH] D44411: [libcxx] [test] Fix Container::insert(value_type const&) tests

2018-04-08 Thread Joe Loser via Phabricator via cfe-commits
jloser added a comment.

In https://reviews.llvm.org/D44411#1056374, @EricWF wrote:

> Have you verified that we're not losing test coverage here? That is, are you 
> sure we still have tests for the rvalue overloads in other test files?


Yep. These containers already have tests for inserts with rvalues. No loss in 
test coverage here.


https://reviews.llvm.org/D44411



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D44411: [libcxx] [test] Fix Container::insert(value_type const&) tests

2018-04-08 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF closed this revision.
EricWF added a comment.

Committed as r329541.


https://reviews.llvm.org/D44411



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D44411: [libcxx] [test] Fix Container::insert(value_type const&) tests

2018-04-08 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF accepted this revision.
EricWF added a comment.
This revision is now accepted and ready to land.

LGTM. Thanks!


https://reviews.llvm.org/D44411



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D44411: [libcxx] [test] Fix Container::insert(value_type const&) tests

2018-04-08 Thread Joe Loser via Phabricator via cfe-commits
jloser updated this revision to Diff 141573.
jloser added a comment.

Use `v3` rather than an rvalue of `3` in 
`libcxx/test/std/containers/associative/multiset/insert_cv.pass.cpp`


https://reviews.llvm.org/D44411

Files:
  libcxx/test/std/containers/associative/multiset/insert_cv.pass.cpp
  libcxx/test/std/containers/associative/set/insert_cv.pass.cpp
  
libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_const_lvalue.pass.cpp
  
libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_const_lvalue.pass.cpp
  
libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_const_lvalue.pass.cpp
  
libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_hint_const_lvalue.pass.cpp
  libcxx/test/std/containers/unord/unord.multiset/insert_const_lvalue.pass.cpp
  
libcxx/test/std/containers/unord/unord.multiset/insert_hint_const_lvalue.pass.cpp
  libcxx/test/std/containers/unord/unord.set/insert_const_lvalue.pass.cpp
  libcxx/test/std/containers/unord/unord.set/insert_hint_const_lvalue.pass.cpp

Index: libcxx/test/std/containers/unord/unord.set/insert_hint_const_lvalue.pass.cpp
===
--- libcxx/test/std/containers/unord/unord.set/insert_hint_const_lvalue.pass.cpp
+++ libcxx/test/std/containers/unord/unord.set/insert_hint_const_lvalue.pass.cpp
@@ -24,53 +24,42 @@
 
 #include "min_allocator.h"
 
+template
+void do_insert_hint_const_lvalue_test()
+{
+typedef Container C;
+typedef typename C::iterator R;
+typedef typename C::value_type VT;
+C c;
+typename C::const_iterator e = c.end();
+const VT v1(3.5);
+R r = c.insert(e, v1);
+assert(c.size() == 1);
+assert(*r == 3.5);
+
+r = c.insert(e, v1);
+assert(c.size() == 1);
+assert(*r == 3.5);
+
+const VT v2(4.5);
+r = c.insert(e, v2);
+assert(c.size() == 2);
+assert(*r == 4.5);
+
+const VT v3(5.5);
+r = c.insert(e, v3);
+assert(c.size() == 3);
+assert(*r == 5.5);
+}
+
 int main()
 {
-{
-typedef std::unordered_set C;
-typedef C::iterator R;
-typedef C::value_type P;
-C c;
-C::const_iterator e = c.end();
-R r = c.insert(e, P(3.5));
-assert(c.size() == 1);
-assert(*r == 3.5);
-
-r = c.insert(e, P(3.5));
-assert(c.size() == 1);
-assert(*r == 3.5);
-
-r = c.insert(e, P(4.5));
-assert(c.size() == 2);
-assert(*r == 4.5);
-
-r = c.insert(e, P(5.5));
-assert(c.size() == 3);
-assert(*r == 5.5);
-}
+do_insert_hint_const_lvalue_test();
 #if TEST_STD_VER >= 11
 {
 typedef std::unordered_set C;
-typedef C::iterator R;
-typedef C::value_type P;
-C c;
-C::const_iterator e = c.end();
-R r = c.insert(e, P(3.5));
-assert(c.size() == 1);
-assert(*r == 3.5);
-
-r = c.insert(e, P(3.5));
-assert(c.size() == 1);
-assert(*r == 3.5);
-
-r = c.insert(e, P(4.5));
-assert(c.size() == 2);
-assert(*r == 4.5);
-
-r = c.insert(e, P(5.5));
-assert(c.size() == 3);
-assert(*r == 5.5);
+do_insert_hint_const_lvalue_test();
 }
 #endif
 #if _LIBCPP_DEBUG >= 1
Index: libcxx/test/std/containers/unord/unord.set/insert_const_lvalue.pass.cpp
===
--- libcxx/test/std/containers/unord/unord.set/insert_const_lvalue.pass.cpp
+++ libcxx/test/std/containers/unord/unord.set/insert_const_lvalue.pass.cpp
@@ -20,59 +20,45 @@
 
 #include "min_allocator.h"
 
+template
+void do_insert_const_lvalue_test()
+{
+typedef Container C;
+typedef std::pair R;
+typedef typename C::value_type VT;
+C c;
+const VT v1(3.5);
+R r = c.insert(v1);
+assert(c.size() == 1);
+assert(*r.first == 3.5);
+assert(r.second);
+
+r = c.insert(v1);
+assert(c.size() == 1);
+assert(*r.first == 3.5);
+assert(!r.second);
+
+const VT v2(4.5);
+r = c.insert(v2);
+assert(c.size() == 2);
+assert(*r.first == 4.5);
+assert(r.second);
+
+const VT v3(5.5);
+r = c.insert(v3);
+assert(c.size() == 3);
+assert(*r.first == 5.5);
+assert(r.second);
+}
+
 int main()
 {
-{
-typedef std::unordered_set C;
-typedef std::pair R;
-typedef C::value_type P;
-C c;
-R r = c.insert(P(3.5));
-assert(c.size() == 1);
-assert(*r.first == 3.5);
-assert(r.second);
-
-r = c.insert(P(3.5));
-assert(c.size() == 1);
-assert(*r.first == 3.5);
-assert(!r.second);
-
-r = c.insert(P(4.5));
-assert(c.size() == 2);
-assert(*r.first == 4.5);
-assert(r.second);
-
-r =