[libcxx-commits] [libcxx] a506a66 - [libc++] Fix several debug mode tests

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Mon Oct 5 13:15:43 PDT 2020


Author: Louis Dionne
Date: 2020-10-05T16:15:32-04:00
New Revision: a506a66bd90cb15885833012fb2c2b7873bff541

URL: https://github.com/llvm/llvm-project/commit/a506a66bd90cb15885833012fb2c2b7873bff541
DIFF: https://github.com/llvm/llvm-project/commit/a506a66bd90cb15885833012fb2c2b7873bff541.diff

LOG: [libc++] Fix several debug mode tests

These tests were only being run when _LIBCPP_DEBUG was defined, which
isn't the case by default when we run the test suite. In other words,
all these debug mode tests were never being run. This commit makes sure
they are run, and in some cases, extracts them into a file under test/libcxx
to separate them from the Standard tests.

Differential Revision: https://reviews.llvm.org/D88836

Added: 
    libcxx/test/libcxx/containers/unord/unord.map/db_bucket.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.map/db_insert_hint_const_lvalue.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.map/db_insert_hint_rvalue.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.map/db_move.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_db1.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_db2.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db1.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db2.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db3.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db4.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.map/unord.map.swap/db_swap_1.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multimap/db_insert_hint_const_lvalue.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multimap/db_insert_hint_rvalue.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multimap/db_iterators_7.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multimap/db_iterators_8.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multimap/db_local_iterators_7.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multimap/db_local_iterators_8.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multimap/db_move.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db1.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db2.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db1.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db2.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db3.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db4.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.swap/db_swap_1.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multiset/db_insert_hint_const_lvalue.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multiset/db_iterators_7.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multiset/db_iterators_8.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multiset/db_local_iterators_7.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multiset/db_local_iterators_8.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multiset/db_move.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_db1.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_db2.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db1.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db2.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db3.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db4.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.multiset/unord.multiset.swap/db_swap_1.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.set/db_insert_hint_const_lvalue.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.set/db_iterators_7.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.set/db_iterators_8.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.set/db_local_iterators_7.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.set/db_local_iterators_8.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.set/db_move.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.set/erase_iter_db1.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.set/erase_iter_db2.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db1.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db2.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db3.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db4.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.set/unord.set.swap/db_swap_1.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.access/db_back.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.access/db_cback.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.access/db_cfront.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.access/db_cindex.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.access/db_front.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.access/db_index.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_2.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_3.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_4.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_5.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_6.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_7.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_8.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.modifiers/insert_iter_iter_iter_db1.pass.cpp

Modified: 
    libcxx/test/libcxx/containers/sequences/vector/db_back.pass.cpp
    libcxx/test/libcxx/containers/sequences/vector/db_cback.pass.cpp
    libcxx/test/libcxx/containers/sequences/vector/db_cfront.pass.cpp
    libcxx/test/libcxx/containers/sequences/vector/db_cindex.pass.cpp
    libcxx/test/libcxx/containers/sequences/vector/db_front.pass.cpp
    libcxx/test/libcxx/containers/sequences/vector/db_index.pass.cpp
    libcxx/test/libcxx/containers/sequences/vector/db_iterators_2.pass.cpp
    libcxx/test/libcxx/containers/sequences/vector/db_iterators_3.pass.cpp
    libcxx/test/libcxx/containers/sequences/vector/db_iterators_4.pass.cpp
    libcxx/test/libcxx/containers/sequences/vector/db_iterators_5.pass.cpp
    libcxx/test/libcxx/containers/sequences/vector/db_iterators_6.pass.cpp
    libcxx/test/libcxx/containers/sequences/vector/db_iterators_7.pass.cpp
    libcxx/test/libcxx/containers/sequences/vector/db_iterators_8.pass.cpp
    libcxx/test/libcxx/containers/sequences/vector/pop_back_empty.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.map/db_iterators_7.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.map/db_iterators_8.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.map/db_local_iterators_7.pass.cpp
    libcxx/test/libcxx/containers/unord/unord.map/db_local_iterators_8.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.modifiers/clear_and_shrink_db1.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_db1.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_db2.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db1.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db2.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db3.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db4.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_pop_back_db1.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.modifiers/insert_iter_char_db1.pass.cpp
    libcxx/test/libcxx/strings/basic.string/string.modifiers/insert_iter_size_char_db1.pass.cpp
    libcxx/test/std/containers/unord/unord.map/bucket.pass.cpp
    libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/move.pass.cpp
    libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_const_lvalue.pass.cpp
    libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_rvalue.pass.cpp
    libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move.pass.cpp
    libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_hint_const_lvalue.pass.cpp
    libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_hint_rvalue.pass.cpp
    libcxx/test/std/containers/unord/unord.multiset/insert_hint_const_lvalue.pass.cpp
    libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move.pass.cpp
    libcxx/test/std/containers/unord/unord.set/insert_hint_const_lvalue.pass.cpp
    libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/move.pass.cpp
    libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp

Removed: 
    libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_db1.pass.cpp
    libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_db2.pass.cpp
    libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db1.pass.cpp
    libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db2.pass.cpp
    libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db3.pass.cpp
    libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db4.pass.cpp
    libcxx/test/std/containers/unord/unord.map/unord.map.swap/db_swap_1.pass.cpp
    libcxx/test/std/containers/unord/unord.multimap/db_iterators_7.pass.cpp
    libcxx/test/std/containers/unord/unord.multimap/db_iterators_8.pass.cpp
    libcxx/test/std/containers/unord/unord.multimap/db_local_iterators_7.pass.cpp
    libcxx/test/std/containers/unord/unord.multimap/db_local_iterators_8.pass.cpp
    libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db1.pass.cpp
    libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db2.pass.cpp
    libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db1.pass.cpp
    libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db2.pass.cpp
    libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db3.pass.cpp
    libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db4.pass.cpp
    libcxx/test/std/containers/unord/unord.multimap/unord.multimap.swap/db_swap_1.pass.cpp
    libcxx/test/std/containers/unord/unord.multiset/db_iterators_7.pass.cpp
    libcxx/test/std/containers/unord/unord.multiset/db_iterators_8.pass.cpp
    libcxx/test/std/containers/unord/unord.multiset/db_local_iterators_7.pass.cpp
    libcxx/test/std/containers/unord/unord.multiset/db_local_iterators_8.pass.cpp
    libcxx/test/std/containers/unord/unord.multiset/erase_iter_db1.pass.cpp
    libcxx/test/std/containers/unord/unord.multiset/erase_iter_db2.pass.cpp
    libcxx/test/std/containers/unord/unord.multiset/erase_iter_iter_db1.pass.cpp
    libcxx/test/std/containers/unord/unord.multiset/erase_iter_iter_db2.pass.cpp
    libcxx/test/std/containers/unord/unord.multiset/erase_iter_iter_db3.pass.cpp
    libcxx/test/std/containers/unord/unord.multiset/erase_iter_iter_db4.pass.cpp
    libcxx/test/std/containers/unord/unord.multiset/unord.multiset.swap/db_swap_1.pass.cpp
    libcxx/test/std/containers/unord/unord.set/db_iterators_7.pass.cpp
    libcxx/test/std/containers/unord/unord.set/db_iterators_8.pass.cpp
    libcxx/test/std/containers/unord/unord.set/db_local_iterators_7.pass.cpp
    libcxx/test/std/containers/unord/unord.set/db_local_iterators_8.pass.cpp
    libcxx/test/std/containers/unord/unord.set/erase_iter_db1.pass.cpp
    libcxx/test/std/containers/unord/unord.set/erase_iter_db2.pass.cpp
    libcxx/test/std/containers/unord/unord.set/erase_iter_iter_db1.pass.cpp
    libcxx/test/std/containers/unord/unord.set/erase_iter_iter_db2.pass.cpp
    libcxx/test/std/containers/unord/unord.set/erase_iter_iter_db3.pass.cpp
    libcxx/test/std/containers/unord/unord.set/erase_iter_iter_db4.pass.cpp
    libcxx/test/std/containers/unord/unord.set/unord.set.swap/db_swap_1.pass.cpp
    libcxx/test/std/strings/basic.string/string.access/db_back.pass.cpp
    libcxx/test/std/strings/basic.string/string.access/db_cback.pass.cpp
    libcxx/test/std/strings/basic.string/string.access/db_cfront.pass.cpp
    libcxx/test/std/strings/basic.string/string.access/db_cindex.pass.cpp
    libcxx/test/std/strings/basic.string/string.access/db_front.pass.cpp
    libcxx/test/std/strings/basic.string/string.access/db_index.pass.cpp
    libcxx/test/std/strings/basic.string/string.iterators/db_iterators_2.pass.cpp
    libcxx/test/std/strings/basic.string/string.iterators/db_iterators_3.pass.cpp
    libcxx/test/std/strings/basic.string/string.iterators/db_iterators_4.pass.cpp
    libcxx/test/std/strings/basic.string/string.iterators/db_iterators_5.pass.cpp
    libcxx/test/std/strings/basic.string/string.iterators/db_iterators_6.pass.cpp
    libcxx/test/std/strings/basic.string/string.iterators/db_iterators_7.pass.cpp
    libcxx/test/std/strings/basic.string/string.iterators/db_iterators_8.pass.cpp


################################################################################
diff  --git a/libcxx/test/libcxx/containers/sequences/vector/db_back.pass.cpp b/libcxx/test/libcxx/containers/sequences/vector/db_back.pass.cpp
index 3a35a086b636..60056d982407 100644
--- a/libcxx/test/libcxx/containers/sequences/vector/db_back.pass.cpp
+++ b/libcxx/test/libcxx/containers/sequences/vector/db_back.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call back() on empty container.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <vector>
@@ -46,13 +48,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/containers/sequences/vector/db_cback.pass.cpp b/libcxx/test/libcxx/containers/sequences/vector/db_cback.pass.cpp
index 1c516ba57d96..d038e2987e10 100644
--- a/libcxx/test/libcxx/containers/sequences/vector/db_cback.pass.cpp
+++ b/libcxx/test/libcxx/containers/sequences/vector/db_cback.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call back() on empty const container.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <vector>
@@ -42,13 +44,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/containers/sequences/vector/db_cfront.pass.cpp b/libcxx/test/libcxx/containers/sequences/vector/db_cfront.pass.cpp
index 1dc7211f2084..7175a0930043 100644
--- a/libcxx/test/libcxx/containers/sequences/vector/db_cfront.pass.cpp
+++ b/libcxx/test/libcxx/containers/sequences/vector/db_cfront.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call front() on empty const container.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <vector>
@@ -42,13 +44,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/containers/sequences/vector/db_cindex.pass.cpp b/libcxx/test/libcxx/containers/sequences/vector/db_cindex.pass.cpp
index ceab50a86b9a..9c094b90afb4 100644
--- a/libcxx/test/libcxx/containers/sequences/vector/db_cindex.pass.cpp
+++ b/libcxx/test/libcxx/containers/sequences/vector/db_cindex.pass.cpp
@@ -10,8 +10,10 @@
 
 // Index const vector out of bounds.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <vector>
@@ -44,13 +46,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/containers/sequences/vector/db_front.pass.cpp b/libcxx/test/libcxx/containers/sequences/vector/db_front.pass.cpp
index a4aafcaefb7e..b68fdf829371 100644
--- a/libcxx/test/libcxx/containers/sequences/vector/db_front.pass.cpp
+++ b/libcxx/test/libcxx/containers/sequences/vector/db_front.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call front() on empty container.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <vector>
@@ -46,13 +48,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/containers/sequences/vector/db_index.pass.cpp b/libcxx/test/libcxx/containers/sequences/vector/db_index.pass.cpp
index a17ba2742110..3796969775f6 100644
--- a/libcxx/test/libcxx/containers/sequences/vector/db_index.pass.cpp
+++ b/libcxx/test/libcxx/containers/sequences/vector/db_index.pass.cpp
@@ -10,8 +10,10 @@
 
 // Index vector out of bounds.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <vector>
@@ -46,13 +48,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/containers/sequences/vector/db_iterators_2.pass.cpp b/libcxx/test/libcxx/containers/sequences/vector/db_iterators_2.pass.cpp
index 975b5e951158..b1a1c5aef26a 100644
--- a/libcxx/test/libcxx/containers/sequences/vector/db_iterators_2.pass.cpp
+++ b/libcxx/test/libcxx/containers/sequences/vector/db_iterators_2.pass.cpp
@@ -10,8 +10,10 @@
 
 // Compare iterators from 
diff erent containers with <.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <vector>
@@ -30,7 +32,7 @@ int main(int, char**)
     typedef std::vector<T> C;
     C c1;
     C c2;
-    bool b = c1.begin() < c2.begin();
+    bool b = c1.begin() < c2.begin(); (void)b;
     assert(false);
     }
 #if TEST_STD_VER >= 11
@@ -39,18 +41,8 @@ int main(int, char**)
     typedef std::vector<T, min_allocator<T>> C;
     C c1;
     C c2;
-    bool b = c1.begin() < c2.begin();
+    bool b = c1.begin() < c2.begin(); (void)b;
     assert(false);
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/containers/sequences/vector/db_iterators_3.pass.cpp b/libcxx/test/libcxx/containers/sequences/vector/db_iterators_3.pass.cpp
index 0dcd6e7f240a..45e6b2641d39 100644
--- a/libcxx/test/libcxx/containers/sequences/vector/db_iterators_3.pass.cpp
+++ b/libcxx/test/libcxx/containers/sequences/vector/db_iterators_3.pass.cpp
@@ -10,8 +10,10 @@
 
 // Subtract iterators from 
diff erent containers.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <vector>
@@ -30,7 +32,7 @@ int main(int, char**)
     typedef std::vector<T> C;
     C c1;
     C c2;
-    int i = c1.begin() - c2.begin();
+    int i = c1.begin() - c2.begin(); (void)i;
     assert(false);
     }
 #if TEST_STD_VER >= 11
@@ -39,18 +41,8 @@ int main(int, char**)
     typedef std::vector<T, min_allocator<T>> C;
     C c1;
     C c2;
-    int i = c1.begin() - c2.begin();
+    int i = c1.begin() - c2.begin(); (void)i;
     assert(false);
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/containers/sequences/vector/db_iterators_4.pass.cpp b/libcxx/test/libcxx/containers/sequences/vector/db_iterators_4.pass.cpp
index 8d048f2fd278..ae62fabdbdaf 100644
--- a/libcxx/test/libcxx/containers/sequences/vector/db_iterators_4.pass.cpp
+++ b/libcxx/test/libcxx/containers/sequences/vector/db_iterators_4.pass.cpp
@@ -10,8 +10,10 @@
 
 // Index iterator out of bounds.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <vector>
@@ -46,13 +48,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/containers/sequences/vector/db_iterators_5.pass.cpp b/libcxx/test/libcxx/containers/sequences/vector/db_iterators_5.pass.cpp
index 19060da3d1a8..330e8dd3210d 100644
--- a/libcxx/test/libcxx/containers/sequences/vector/db_iterators_5.pass.cpp
+++ b/libcxx/test/libcxx/containers/sequences/vector/db_iterators_5.pass.cpp
@@ -10,8 +10,10 @@
 
 // Add to iterator out of bounds.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <vector>
@@ -50,13 +52,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/containers/sequences/vector/db_iterators_6.pass.cpp b/libcxx/test/libcxx/containers/sequences/vector/db_iterators_6.pass.cpp
index 13156c22fe38..97b406f5338f 100644
--- a/libcxx/test/libcxx/containers/sequences/vector/db_iterators_6.pass.cpp
+++ b/libcxx/test/libcxx/containers/sequences/vector/db_iterators_6.pass.cpp
@@ -10,8 +10,10 @@
 
 // Decrement iterator prior to begin.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <vector>
@@ -48,13 +50,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/containers/sequences/vector/db_iterators_7.pass.cpp b/libcxx/test/libcxx/containers/sequences/vector/db_iterators_7.pass.cpp
index 943c5209b0d5..7dbee2134a59 100644
--- a/libcxx/test/libcxx/containers/sequences/vector/db_iterators_7.pass.cpp
+++ b/libcxx/test/libcxx/containers/sequences/vector/db_iterators_7.pass.cpp
@@ -10,8 +10,10 @@
 
 // Increment iterator past end.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <vector>
@@ -48,13 +50,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/containers/sequences/vector/db_iterators_8.pass.cpp b/libcxx/test/libcxx/containers/sequences/vector/db_iterators_8.pass.cpp
index 39f26f66801a..0754aaee597e 100644
--- a/libcxx/test/libcxx/containers/sequences/vector/db_iterators_8.pass.cpp
+++ b/libcxx/test/libcxx/containers/sequences/vector/db_iterators_8.pass.cpp
@@ -10,8 +10,10 @@
 
 // Dereference non-dereferenceable iterator.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <vector>
@@ -30,7 +32,7 @@ int main(int, char**)
     typedef std::vector<T> C;
     C c(1);
     C::iterator i = c.end();
-    T j = *i;
+    T j = *i; (void)j;
     assert(false);
     }
 #if TEST_STD_VER >= 11
@@ -39,18 +41,8 @@ int main(int, char**)
     typedef std::vector<T, min_allocator<T>> C;
     C c(1);
     C::iterator i = c.end();
-    T j = *i;
+    T j = *i; (void)j;
     assert(false);
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/containers/sequences/vector/pop_back_empty.pass.cpp b/libcxx/test/libcxx/containers/sequences/vector/pop_back_empty.pass.cpp
index b35c6dbff6a8..32ab5f65ddc1 100644
--- a/libcxx/test/libcxx/containers/sequences/vector/pop_back_empty.pass.cpp
+++ b/libcxx/test/libcxx/containers/sequences/vector/pop_back_empty.pass.cpp
@@ -10,6 +10,10 @@
 
 // pop_back() more than the number of elements in a vector
 
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
+
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <cstdlib>
@@ -25,5 +29,5 @@ int main(int, char**) {
     v.pop_back();
     std::exit(1);
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/libcxx/containers/unord/unord.map/db_bucket.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.map/db_bucket.pass.cpp
new file mode 100644
index 000000000000..242b43912fb0
--- /dev/null
+++ b/libcxx/test/libcxx/containers/unord/unord.map/db_bucket.pass.cpp
@@ -0,0 +1,35 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// <unordered_map>
+
+// size_type bucket(const key_type& __k) const;
+
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
+
+#define _LIBCPP_DEBUG 1
+#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
+
+#include <unordered_map>
+#include <string>
+#include <cassert>
+
+#include "test_macros.h"
+
+int main(int, char**)
+{
+    {
+        typedef std::unordered_map<int, std::string> C;
+        C c;
+        (void) c.bucket(3);
+        assert(false);
+    }
+
+    return 0;
+}

diff  --git a/libcxx/test/libcxx/containers/unord/unord.map/db_insert_hint_const_lvalue.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.map/db_insert_hint_const_lvalue.pass.cpp
new file mode 100644
index 000000000000..5c6c51fa7ade
--- /dev/null
+++ b/libcxx/test/libcxx/containers/unord/unord.map/db_insert_hint_const_lvalue.pass.cpp
@@ -0,0 +1,39 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// <unordered_map>
+
+// iterator insert(const_iterator p, const value_type& x);
+
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
+
+#define _LIBCPP_DEBUG 1
+#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
+
+#include <unordered_map>
+#include <cassert>
+
+#include "test_macros.h"
+
+int main(int, char**)
+{
+    {
+        typedef std::unordered_map<double, int> C;
+        typedef C::iterator R;
+        typedef C::value_type P;
+        C c;
+        C c2;
+        C::const_iterator e = c2.end();
+        P v(3.5, 3);
+        R r = c.insert(e, v);
+        assert(false);
+    }
+
+    return 0;
+}

diff  --git a/libcxx/test/libcxx/containers/unord/unord.map/db_insert_hint_rvalue.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.map/db_insert_hint_rvalue.pass.cpp
new file mode 100644
index 000000000000..83ac37948fa3
--- /dev/null
+++ b/libcxx/test/libcxx/containers/unord/unord.map/db_insert_hint_rvalue.pass.cpp
@@ -0,0 +1,42 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// UNSUPPORTED: c++03
+
+// <unordered_map>
+
+// template <class P,
+//           class = typename enable_if<is_convertible<P, value_type>::value>::type>
+//     iterator insert(const_iterator p, P&& x);
+
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
+
+#define _LIBCPP_DEBUG 1
+#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
+
+#include <unordered_map>
+#include <cassert>
+
+#include "test_macros.h"
+
+int main(int, char**)
+{
+    {
+        typedef std::unordered_map<double, int> C;
+        typedef C::iterator R;
+        typedef C::value_type P;
+        C c;
+        C c2;
+        C::const_iterator e = c2.end();
+        R r = c.insert(e, P(3.5, 3));
+        assert(false);
+    }
+
+    return 0;
+}

diff  --git a/libcxx/test/libcxx/containers/unord/unord.map/db_iterators_7.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.map/db_iterators_7.pass.cpp
index 9ff6bafc3ade..513c56034a68 100644
--- a/libcxx/test/libcxx/containers/unord/unord.map/db_iterators_7.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.map/db_iterators_7.pass.cpp
@@ -10,8 +10,10 @@
 
 // Increment iterator past end.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_map>
@@ -50,13 +52,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/containers/unord/unord.map/db_iterators_8.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.map/db_iterators_8.pass.cpp
index ef383aa9f5d9..f12ba00cabc8 100644
--- a/libcxx/test/libcxx/containers/unord/unord.map/db_iterators_8.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.map/db_iterators_8.pass.cpp
@@ -10,8 +10,10 @@
 
 // Dereference non-dereferenceable iterator.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_map>
@@ -46,13 +48,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/containers/unord/unord.map/db_local_iterators_7.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.map/db_local_iterators_7.pass.cpp
index 5c2b4024ae9a..19b0ee7c2674 100644
--- a/libcxx/test/libcxx/containers/unord/unord.map/db_local_iterators_7.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.map/db_local_iterators_7.pass.cpp
@@ -10,8 +10,10 @@
 
 // Increment local_iterator past end.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_map>
@@ -47,13 +49,3 @@ int main(int, char**)
 #endif
 
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/containers/unord/unord.map/db_local_iterators_8.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.map/db_local_iterators_8.pass.cpp
index 8e76f1bda459..d696d54336a9 100644
--- a/libcxx/test/libcxx/containers/unord/unord.map/db_local_iterators_8.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.map/db_local_iterators_8.pass.cpp
@@ -10,8 +10,10 @@
 
 // Dereference non-dereferenceable iterator.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_map>
@@ -44,13 +46,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/containers/unord/unord.map/db_move.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.map/db_move.pass.cpp
new file mode 100644
index 000000000000..5ae9a1403c49
--- /dev/null
+++ b/libcxx/test/libcxx/containers/unord/unord.map/db_move.pass.cpp
@@ -0,0 +1,40 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// <unordered_map>
+
+// unordered_map(unordered_map&& u);
+
+// UNSUPPORTED: c++03
+
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
+
+#define _LIBCPP_DEBUG 1
+#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
+
+#include <unordered_map>
+#include <cassert>
+#include <utility>
+
+#include "test_macros.h"
+
+int main(int, char**)
+{
+    {
+        std::unordered_map<int, int> s1 = {{1, 1}, {2, 2}, {3, 3}};
+        std::unordered_map<int, int>::iterator i = s1.begin();
+        std::pair<const int, int> k = *i;
+        std::unordered_map<int, int> s2 = std::move(s1);
+        assert(*i == k);
+        s2.erase(i);
+        assert(s2.size() == 2);
+    }
+
+    return 0;
+}

diff  --git a/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_db1.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_db1.pass.cpp
similarity index 85%
rename from libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_db1.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_db1.pass.cpp
index 9ed47578d0fe..a3873ec8c5e9 100644
--- a/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_db1.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_db1.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator position) with end()
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_map>
@@ -30,13 +32,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_db2.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_db2.pass.cpp
similarity index 86%
rename from libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_db2.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_db2.pass.cpp
index 0b44f0be2e96..7aa39f2000cb 100644
--- a/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_db2.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_db2.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator position) with iterator from another container
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_map>
@@ -33,13 +35,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db1.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db1.pass.cpp
similarity index 87%
rename from libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db1.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db1.pass.cpp
index 6ca0f7a615ad..841b90073c55 100644
--- a/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db1.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db1.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator first, const_iterator last); with first iterator from another container
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_map>
@@ -32,13 +34,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db2.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db2.pass.cpp
similarity index 87%
rename from libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db2.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db2.pass.cpp
index 7c714abc69e0..b124a94b7f59 100644
--- a/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db2.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db2.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator first, const_iterator last); with second iterator from another container
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_map>
@@ -32,13 +34,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db3.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db3.pass.cpp
similarity index 87%
rename from libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db3.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db3.pass.cpp
index 9061bb02a643..c61cfde6620c 100644
--- a/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db3.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db3.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator first, const_iterator last); with both iterators from another container
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_map>
@@ -32,13 +34,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db4.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db4.pass.cpp
similarity index 86%
rename from libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db4.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db4.pass.cpp
index 0edd67a58518..4a485c3ce734 100644
--- a/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db4.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db4.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator first, const_iterator last); with a bad range
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_map>
@@ -31,13 +33,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.map/unord.map.swap/db_swap_1.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.map/unord.map.swap/db_swap_1.pass.cpp
similarity index 90%
rename from libcxx/test/std/containers/unord/unord.map/unord.map.swap/db_swap_1.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.map/unord.map.swap/db_swap_1.pass.cpp
index 6a80c09f9a7a..3e01d659417f 100644
--- a/libcxx/test/std/containers/unord/unord.map/unord.map.swap/db_swap_1.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.map/unord.map.swap/db_swap_1.pass.cpp
@@ -14,9 +14,11 @@
 
 // void swap(unordered_map& x, unordered_map& y);
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
+
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
 
 #include <unordered_map>
 #include <cassert>
@@ -25,7 +27,6 @@
 
 int main(int, char**)
 {
-#if _LIBCPP_DEBUG >= 1
     {
         typedef std::pair<int, int> P;
         P a1[] = {P(1, 1), P(3, 3), P(7, 7), P(9, 9), P(10, 10)};
@@ -41,7 +42,6 @@ int main(int, char**)
         c1.erase(i1);
         assert(false);
     }
-#endif
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/libcxx/containers/unord/unord.multimap/db_insert_hint_const_lvalue.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multimap/db_insert_hint_const_lvalue.pass.cpp
new file mode 100644
index 000000000000..de8b504f10e9
--- /dev/null
+++ b/libcxx/test/libcxx/containers/unord/unord.multimap/db_insert_hint_const_lvalue.pass.cpp
@@ -0,0 +1,39 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// <unordered_map>
+
+// iterator insert(const_iterator p, const value_type& x);
+
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
+
+#define _LIBCPP_DEBUG 1
+#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
+
+#include <unordered_map>
+#include <cassert>
+
+#include "test_macros.h"
+
+int main(int, char**)
+{
+    {
+        typedef std::unordered_multimap<double, int> C;
+        typedef C::iterator R;
+        typedef C::value_type P;
+        C c;
+        C c2;
+        C::const_iterator e = c2.end();
+        P v(3.5, 3);
+        R r = c.insert(e, v);
+        assert(false);
+    }
+
+    return 0;
+}

diff  --git a/libcxx/test/libcxx/containers/unord/unord.multimap/db_insert_hint_rvalue.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multimap/db_insert_hint_rvalue.pass.cpp
new file mode 100644
index 000000000000..47bfb4b87924
--- /dev/null
+++ b/libcxx/test/libcxx/containers/unord/unord.multimap/db_insert_hint_rvalue.pass.cpp
@@ -0,0 +1,42 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// UNSUPPORTED: c++03
+
+// <unordered_map>
+
+// template <class P,
+//           class = typename enable_if<is_convertible<P, value_type>::value>::type>
+//     iterator insert(const_iterator p, P&& x);
+
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
+
+#define _LIBCPP_DEBUG 1
+#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
+
+#include <unordered_map>
+#include <cassert>
+
+#include "test_macros.h"
+
+int main(int, char**)
+{
+    {
+        typedef std::unordered_multimap<double, int> C;
+        typedef C::iterator R;
+        typedef C::value_type P;
+        C c;
+        C c2;
+        C::const_iterator e = c2.end();
+        R r = c.insert(e, P(3.5, 3));
+        assert(false);
+    }
+
+    return 0;
+}

diff  --git a/libcxx/test/std/containers/unord/unord.multimap/db_iterators_7.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multimap/db_iterators_7.pass.cpp
similarity index 89%
rename from libcxx/test/std/containers/unord/unord.multimap/db_iterators_7.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multimap/db_iterators_7.pass.cpp
index 871bd791b937..117883020f57 100644
--- a/libcxx/test/std/containers/unord/unord.multimap/db_iterators_7.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multimap/db_iterators_7.pass.cpp
@@ -10,8 +10,10 @@
 
 // Increment iterator past end.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_map>
@@ -50,13 +52,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.multimap/db_iterators_8.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multimap/db_iterators_8.pass.cpp
similarity index 89%
rename from libcxx/test/std/containers/unord/unord.multimap/db_iterators_8.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multimap/db_iterators_8.pass.cpp
index 821de2553a59..a5861fb8bad9 100644
--- a/libcxx/test/std/containers/unord/unord.multimap/db_iterators_8.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multimap/db_iterators_8.pass.cpp
@@ -10,8 +10,10 @@
 
 // Dereference non-dereferenceable iterator.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_map>
@@ -46,13 +48,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.multimap/db_local_iterators_7.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multimap/db_local_iterators_7.pass.cpp
similarity index 88%
rename from libcxx/test/std/containers/unord/unord.multimap/db_local_iterators_7.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multimap/db_local_iterators_7.pass.cpp
index 9da1b6113be0..a817f8108c98 100644
--- a/libcxx/test/std/containers/unord/unord.multimap/db_local_iterators_7.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multimap/db_local_iterators_7.pass.cpp
@@ -10,8 +10,10 @@
 
 // Increment local_iterator past end.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_map>
@@ -47,13 +49,3 @@ int main(int, char**)
 #endif
 
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.multimap/db_local_iterators_8.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multimap/db_local_iterators_8.pass.cpp
similarity index 89%
rename from libcxx/test/std/containers/unord/unord.multimap/db_local_iterators_8.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multimap/db_local_iterators_8.pass.cpp
index dd56647d140e..9ac363e09680 100644
--- a/libcxx/test/std/containers/unord/unord.multimap/db_local_iterators_8.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multimap/db_local_iterators_8.pass.cpp
@@ -10,8 +10,10 @@
 
 // Dereference non-dereferenceable iterator.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_map>
@@ -44,13 +46,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/containers/unord/unord.multimap/db_move.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multimap/db_move.pass.cpp
new file mode 100644
index 000000000000..3b1f23ac91a4
--- /dev/null
+++ b/libcxx/test/libcxx/containers/unord/unord.multimap/db_move.pass.cpp
@@ -0,0 +1,40 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// UNSUPPORTED: c++03
+
+// <unordered_map>
+
+// unordered_multimap(unordered_multimap&& u);
+
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
+
+#define _LIBCPP_DEBUG 1
+#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
+
+#include <unordered_map>
+#include <cassert>
+#include <utility>
+
+#include "test_macros.h"
+
+int main(int, char**)
+{
+    {
+        std::unordered_multimap<int, int> s1 = {{1, 1}, {2, 2}, {3, 3}};
+        std::unordered_multimap<int, int>::iterator i = s1.begin();
+        std::pair<const int, int> k = *i;
+        std::unordered_multimap<int, int> s2 = std::move(s1);
+        assert(*i == k);
+        s2.erase(i);
+        assert(s2.size() == 2);
+    }
+
+    return 0;
+}

diff  --git a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db1.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db1.pass.cpp
similarity index 85%
rename from libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db1.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db1.pass.cpp
index 940db985cbc7..da9362270a64 100644
--- a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db1.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db1.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator position) with end()
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_map>
@@ -30,13 +32,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db2.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db2.pass.cpp
similarity index 87%
rename from libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db2.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db2.pass.cpp
index 4da7e60a6fa5..0e99ca4cefa7 100644
--- a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db2.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db2.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator position) with iterator from another container
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_map>
@@ -33,13 +35,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db1.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db1.pass.cpp
similarity index 87%
rename from libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db1.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db1.pass.cpp
index b14c85dabd1a..f8412d94e456 100644
--- a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db1.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db1.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator first, const_iterator last); with first iterator from another container
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_map>
@@ -32,13 +34,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db2.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db2.pass.cpp
similarity index 87%
rename from libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db2.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db2.pass.cpp
index 03be37ae7322..a028e11390d9 100644
--- a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db2.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db2.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator first, const_iterator last); with second iterator from another container
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_map>
@@ -32,13 +34,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db3.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db3.pass.cpp
similarity index 87%
rename from libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db3.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db3.pass.cpp
index cd1892ee17d6..5506af55707d 100644
--- a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db3.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db3.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator first, const_iterator last); with both iterators from another container
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_map>
@@ -32,13 +34,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db4.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db4.pass.cpp
similarity index 86%
rename from libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db4.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db4.pass.cpp
index 7ecf36646db3..97119b843b2c 100644
--- a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db4.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db4.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator first, const_iterator last); with a bad range
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_map>
@@ -31,13 +33,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.swap/db_swap_1.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.swap/db_swap_1.pass.cpp
similarity index 90%
rename from libcxx/test/std/containers/unord/unord.multimap/unord.multimap.swap/db_swap_1.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.swap/db_swap_1.pass.cpp
index 65fb5ae37860..73d9dc311fb2 100644
--- a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.swap/db_swap_1.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.swap/db_swap_1.pass.cpp
@@ -14,9 +14,11 @@
 
 // void swap(unordered_multimap& x, unordered_multimap& y);
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
+
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
 
 #include <unordered_map>
 #include <cassert>
@@ -25,7 +27,6 @@
 
 int main(int, char**)
 {
-#if _LIBCPP_DEBUG >= 1
     {
         typedef std::pair<int, int> P;
         P a1[] = {P(1, 1), P(3, 3), P(7, 7), P(9, 9), P(10, 10)};
@@ -41,7 +42,6 @@ int main(int, char**)
         c1.erase(i1);
         assert(false);
     }
-#endif
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/libcxx/containers/unord/unord.multiset/db_insert_hint_const_lvalue.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multiset/db_insert_hint_const_lvalue.pass.cpp
new file mode 100644
index 000000000000..de604c1aca3c
--- /dev/null
+++ b/libcxx/test/libcxx/containers/unord/unord.multiset/db_insert_hint_const_lvalue.pass.cpp
@@ -0,0 +1,39 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// <unordered_set>
+
+// iterator insert(const_iterator p, const value_type& x);
+
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
+
+#define _LIBCPP_DEBUG 1
+#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
+
+#include <unordered_set>
+#include <cassert>
+
+#include "test_macros.h"
+
+int main(int, char**)
+{
+    {
+        typedef std::unordered_multiset<double> C;
+        typedef C::iterator R;
+        typedef C::value_type P;
+        C c;
+        C c2;
+        C::const_iterator e = c2.end();
+        P v(3.5);
+        R r = c.insert(e, v);
+        assert(false);
+    }
+
+    return 0;
+}

diff  --git a/libcxx/test/std/containers/unord/unord.multiset/db_iterators_7.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multiset/db_iterators_7.pass.cpp
similarity index 88%
rename from libcxx/test/std/containers/unord/unord.multiset/db_iterators_7.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multiset/db_iterators_7.pass.cpp
index 0b401e66d708..89d3a5737d78 100644
--- a/libcxx/test/std/containers/unord/unord.multiset/db_iterators_7.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multiset/db_iterators_7.pass.cpp
@@ -10,8 +10,10 @@
 
 // Increment iterator past end.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_set>
@@ -48,13 +50,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.multiset/db_iterators_8.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multiset/db_iterators_8.pass.cpp
similarity index 88%
rename from libcxx/test/std/containers/unord/unord.multiset/db_iterators_8.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multiset/db_iterators_8.pass.cpp
index 88280e6353d3..579bd84c9719 100644
--- a/libcxx/test/std/containers/unord/unord.multiset/db_iterators_8.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multiset/db_iterators_8.pass.cpp
@@ -10,8 +10,10 @@
 
 // Dereference non-dereferenceable iterator.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_set>
@@ -44,13 +46,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.multiset/db_local_iterators_7.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multiset/db_local_iterators_7.pass.cpp
similarity index 88%
rename from libcxx/test/std/containers/unord/unord.multiset/db_local_iterators_7.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multiset/db_local_iterators_7.pass.cpp
index 5ec15771c49c..c85ed1da8355 100644
--- a/libcxx/test/std/containers/unord/unord.multiset/db_local_iterators_7.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multiset/db_local_iterators_7.pass.cpp
@@ -10,8 +10,10 @@
 
 // Increment local_iterator past end.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_set>
@@ -47,13 +49,3 @@ int main(int, char**)
 #endif
 
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.multiset/db_local_iterators_8.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multiset/db_local_iterators_8.pass.cpp
similarity index 88%
rename from libcxx/test/std/containers/unord/unord.multiset/db_local_iterators_8.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multiset/db_local_iterators_8.pass.cpp
index 0d92b9578166..597edd0fd521 100644
--- a/libcxx/test/std/containers/unord/unord.multiset/db_local_iterators_8.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multiset/db_local_iterators_8.pass.cpp
@@ -10,8 +10,10 @@
 
 // Dereference non-dereferenceable iterator.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_set>
@@ -44,13 +46,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/containers/unord/unord.multiset/db_move.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multiset/db_move.pass.cpp
new file mode 100644
index 000000000000..41da7ea4169e
--- /dev/null
+++ b/libcxx/test/libcxx/containers/unord/unord.multiset/db_move.pass.cpp
@@ -0,0 +1,40 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// UNSUPPORTED: c++03
+
+// <unordered_set>
+
+// unordered_multiset(unordered_multiset&& u);
+
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
+
+#define _LIBCPP_DEBUG 1
+#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
+
+#include <unordered_set>
+#include <cassert>
+#include <utility>
+
+#include "test_macros.h"
+
+int main(int, char**)
+{
+    {
+        std::unordered_multiset<int> s1 = {1, 2, 3};
+        std::unordered_multiset<int>::iterator i = s1.begin();
+        int k = *i;
+        std::unordered_multiset<int> s2 = std::move(s1);
+        assert(*i == k);
+        s2.erase(i);
+        assert(s2.size() == 2);
+    }
+
+    return 0;
+}

diff  --git a/libcxx/test/std/containers/unord/unord.multiset/erase_iter_db1.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_db1.pass.cpp
similarity index 84%
rename from libcxx/test/std/containers/unord/unord.multiset/erase_iter_db1.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_db1.pass.cpp
index 788b5ac4f63b..b967c59a676f 100644
--- a/libcxx/test/std/containers/unord/unord.multiset/erase_iter_db1.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_db1.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator position) with end()
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_set>
@@ -29,13 +31,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.multiset/erase_iter_db2.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_db2.pass.cpp
similarity index 86%
rename from libcxx/test/std/containers/unord/unord.multiset/erase_iter_db2.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_db2.pass.cpp
index 68828d5f84e8..d704dcaa7806 100644
--- a/libcxx/test/std/containers/unord/unord.multiset/erase_iter_db2.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_db2.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator position) with iterator from another container
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_set>
@@ -32,13 +34,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.multiset/erase_iter_iter_db1.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db1.pass.cpp
similarity index 86%
rename from libcxx/test/std/containers/unord/unord.multiset/erase_iter_iter_db1.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db1.pass.cpp
index 118fadf52215..1a183e6658ca 100644
--- a/libcxx/test/std/containers/unord/unord.multiset/erase_iter_iter_db1.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db1.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator first, const_iterator last); with first iterator from another container
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_set>
@@ -31,13 +33,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.multiset/erase_iter_iter_db2.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db2.pass.cpp
similarity index 86%
rename from libcxx/test/std/containers/unord/unord.multiset/erase_iter_iter_db2.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db2.pass.cpp
index ad6b8cddcde1..de3ebaaac647 100644
--- a/libcxx/test/std/containers/unord/unord.multiset/erase_iter_iter_db2.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db2.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator first, const_iterator last); with second iterator from another container
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_set>
@@ -31,13 +33,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.multiset/erase_iter_iter_db3.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db3.pass.cpp
similarity index 86%
rename from libcxx/test/std/containers/unord/unord.multiset/erase_iter_iter_db3.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db3.pass.cpp
index 5b5bbbae77f8..9d36b53f51ff 100644
--- a/libcxx/test/std/containers/unord/unord.multiset/erase_iter_iter_db3.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db3.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator first, const_iterator last); with both iterators from another container
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_set>
@@ -31,13 +33,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.multiset/erase_iter_iter_db4.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db4.pass.cpp
similarity index 85%
rename from libcxx/test/std/containers/unord/unord.multiset/erase_iter_iter_db4.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db4.pass.cpp
index fbeb8e075201..a68f312b8016 100644
--- a/libcxx/test/std/containers/unord/unord.multiset/erase_iter_iter_db4.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db4.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator first, const_iterator last); with a bad range
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_set>
@@ -30,13 +32,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.multiset/unord.multiset.swap/db_swap_1.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.multiset/unord.multiset.swap/db_swap_1.pass.cpp
similarity index 89%
rename from libcxx/test/std/containers/unord/unord.multiset/unord.multiset.swap/db_swap_1.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.multiset/unord.multiset.swap/db_swap_1.pass.cpp
index e1f45e17baff..2feba5c47f53 100644
--- a/libcxx/test/std/containers/unord/unord.multiset/unord.multiset.swap/db_swap_1.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.multiset/unord.multiset.swap/db_swap_1.pass.cpp
@@ -14,9 +14,11 @@
 
 // void swap(unordered_multiset& x, unordered_multiset& y);
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
+
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
 
 #include <unordered_set>
 #include <cassert>
@@ -25,7 +27,6 @@
 
 int main(int, char**)
 {
-#if _LIBCPP_DEBUG >= 1
     {
         int a1[] = {1, 3, 7, 9, 10};
         int a2[] = {0, 2, 4, 5, 6, 8, 11};
@@ -40,7 +41,6 @@ int main(int, char**)
         c1.erase(i1);
         assert(false);
     }
-#endif
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/libcxx/containers/unord/unord.set/db_insert_hint_const_lvalue.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.set/db_insert_hint_const_lvalue.pass.cpp
new file mode 100644
index 000000000000..3303d089970f
--- /dev/null
+++ b/libcxx/test/libcxx/containers/unord/unord.set/db_insert_hint_const_lvalue.pass.cpp
@@ -0,0 +1,39 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// <unordered_set>
+
+// iterator insert(const_iterator p, const value_type& x);
+
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
+
+#define _LIBCPP_DEBUG 1
+#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
+
+#include <unordered_set>
+#include <cassert>
+
+#include "test_macros.h"
+
+int main(int, char**)
+{
+    {
+        typedef std::unordered_set<double> C;
+        typedef C::iterator R;
+        typedef C::value_type P;
+        C c;
+        C c2;
+        C::const_iterator e = c2.end();
+        P v(3.5);
+        R r = c.insert(e, v);
+        assert(false);
+    }
+
+    return 0;
+}

diff  --git a/libcxx/test/std/containers/unord/unord.set/db_iterators_7.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.set/db_iterators_7.pass.cpp
similarity index 88%
rename from libcxx/test/std/containers/unord/unord.set/db_iterators_7.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.set/db_iterators_7.pass.cpp
index 0de979ae27a5..12e56ea1bce8 100644
--- a/libcxx/test/std/containers/unord/unord.set/db_iterators_7.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.set/db_iterators_7.pass.cpp
@@ -10,8 +10,10 @@
 
 // Increment iterator past end.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_set>
@@ -48,13 +50,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.set/db_iterators_8.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.set/db_iterators_8.pass.cpp
similarity index 88%
rename from libcxx/test/std/containers/unord/unord.set/db_iterators_8.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.set/db_iterators_8.pass.cpp
index b6acf233276f..3333be8959fd 100644
--- a/libcxx/test/std/containers/unord/unord.set/db_iterators_8.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.set/db_iterators_8.pass.cpp
@@ -10,8 +10,10 @@
 
 // Dereference non-dereferenceable iterator.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_set>
@@ -44,13 +46,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.set/db_local_iterators_7.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.set/db_local_iterators_7.pass.cpp
similarity index 88%
rename from libcxx/test/std/containers/unord/unord.set/db_local_iterators_7.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.set/db_local_iterators_7.pass.cpp
index df0f20bcb074..f003c2b2d763 100644
--- a/libcxx/test/std/containers/unord/unord.set/db_local_iterators_7.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.set/db_local_iterators_7.pass.cpp
@@ -10,8 +10,10 @@
 
 // Increment local_iterator past end.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_set>
@@ -47,13 +49,3 @@ int main(int, char**)
 #endif
 
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.set/db_local_iterators_8.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.set/db_local_iterators_8.pass.cpp
similarity index 88%
rename from libcxx/test/std/containers/unord/unord.set/db_local_iterators_8.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.set/db_local_iterators_8.pass.cpp
index 71121025192d..999ec8b1e48b 100644
--- a/libcxx/test/std/containers/unord/unord.set/db_local_iterators_8.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.set/db_local_iterators_8.pass.cpp
@@ -10,8 +10,10 @@
 
 // Dereference non-dereferenceable iterator.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_set>
@@ -45,13 +47,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/containers/unord/unord.set/db_move.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.set/db_move.pass.cpp
new file mode 100644
index 000000000000..02f836880528
--- /dev/null
+++ b/libcxx/test/libcxx/containers/unord/unord.set/db_move.pass.cpp
@@ -0,0 +1,40 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// UNSUPPORTED: c++03
+
+// <unordered_set>
+
+// unordered_set(unordered_set&& u);
+
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
+
+#define _LIBCPP_DEBUG 1
+#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
+
+#include <unordered_set>
+#include <cassert>
+#include <utility>
+
+#include "test_macros.h"
+
+int main(int, char**)
+{
+    {
+        std::unordered_set<int> s1 = {1, 2, 3};
+        std::unordered_set<int>::iterator i = s1.begin();
+        int k = *i;
+        std::unordered_set<int> s2 = std::move(s1);
+        assert(*i == k);
+        s2.erase(i);
+        assert(s2.size() == 2);
+    }
+
+    return 0;
+}

diff  --git a/libcxx/test/std/containers/unord/unord.set/erase_iter_db1.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.set/erase_iter_db1.pass.cpp
similarity index 84%
rename from libcxx/test/std/containers/unord/unord.set/erase_iter_db1.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.set/erase_iter_db1.pass.cpp
index 063ed931738f..b5ddd8ca1b68 100644
--- a/libcxx/test/std/containers/unord/unord.set/erase_iter_db1.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.set/erase_iter_db1.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator position) with end()
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_set>
@@ -29,13 +31,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.set/erase_iter_db2.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.set/erase_iter_db2.pass.cpp
similarity index 86%
rename from libcxx/test/std/containers/unord/unord.set/erase_iter_db2.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.set/erase_iter_db2.pass.cpp
index 30dd46f11be0..bd14a3c0e6ca 100644
--- a/libcxx/test/std/containers/unord/unord.set/erase_iter_db2.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.set/erase_iter_db2.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator position) with iterator from another container
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_set>
@@ -32,13 +34,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.set/erase_iter_iter_db1.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db1.pass.cpp
similarity index 86%
rename from libcxx/test/std/containers/unord/unord.set/erase_iter_iter_db1.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db1.pass.cpp
index a84b0601e841..70a1afb9c4a1 100644
--- a/libcxx/test/std/containers/unord/unord.set/erase_iter_iter_db1.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db1.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator first, const_iterator last); with first iterator from another container
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_set>
@@ -31,13 +33,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.set/erase_iter_iter_db2.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db2.pass.cpp
similarity index 86%
rename from libcxx/test/std/containers/unord/unord.set/erase_iter_iter_db2.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db2.pass.cpp
index 9fb3bc365803..88f33d5d03be 100644
--- a/libcxx/test/std/containers/unord/unord.set/erase_iter_iter_db2.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db2.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator first, const_iterator last); with second iterator from another container
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_set>
@@ -31,13 +33,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.set/erase_iter_iter_db3.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db3.pass.cpp
similarity index 86%
rename from libcxx/test/std/containers/unord/unord.set/erase_iter_iter_db3.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db3.pass.cpp
index 9f056e8373ac..8aa1b5a9390a 100644
--- a/libcxx/test/std/containers/unord/unord.set/erase_iter_iter_db3.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db3.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator first, const_iterator last); with both iterators from another container
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_set>
@@ -31,13 +33,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.set/erase_iter_iter_db4.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db4.pass.cpp
similarity index 85%
rename from libcxx/test/std/containers/unord/unord.set/erase_iter_iter_db4.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db4.pass.cpp
index f56297dc74b0..0922c65865d4 100644
--- a/libcxx/test/std/containers/unord/unord.set/erase_iter_iter_db4.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db4.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator first, const_iterator last); with a bad range
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <unordered_set>
@@ -30,13 +32,3 @@ int main(int, char**)
     assert(false);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/containers/unord/unord.set/unord.set.swap/db_swap_1.pass.cpp b/libcxx/test/libcxx/containers/unord/unord.set/unord.set.swap/db_swap_1.pass.cpp
similarity index 88%
rename from libcxx/test/std/containers/unord/unord.set/unord.set.swap/db_swap_1.pass.cpp
rename to libcxx/test/libcxx/containers/unord/unord.set/unord.set.swap/db_swap_1.pass.cpp
index 7682a274690b..b65cc69c9e72 100644
--- a/libcxx/test/std/containers/unord/unord.set/unord.set.swap/db_swap_1.pass.cpp
+++ b/libcxx/test/libcxx/containers/unord/unord.set/unord.set.swap/db_swap_1.pass.cpp
@@ -14,9 +14,11 @@
 
 // void swap(unordered_set& x, unordered_set& y);
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
+
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
 
 #include <unordered_set>
 #include <cassert>
@@ -25,7 +27,6 @@
 
 int main(int, char**)
 {
-#if _LIBCPP_DEBUG >= 1
     {
         int a1[] = {1, 3, 7, 9, 10};
         int a2[] = {0, 2, 4, 5, 6, 8, 11};
@@ -40,7 +41,6 @@ int main(int, char**)
         c1.erase(i1);
         assert(false);
     }
-#endif
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/std/strings/basic.string/string.access/db_back.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.access/db_back.pass.cpp
similarity index 87%
rename from libcxx/test/std/strings/basic.string/string.access/db_back.pass.cpp
rename to libcxx/test/libcxx/strings/basic.string/string.access/db_back.pass.cpp
index 548bf0108756..31000d092799 100644
--- a/libcxx/test/std/strings/basic.string/string.access/db_back.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.access/db_back.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call back() on empty container.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <string>
@@ -44,13 +46,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/strings/basic.string/string.access/db_cback.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.access/db_cback.pass.cpp
similarity index 87%
rename from libcxx/test/std/strings/basic.string/string.access/db_cback.pass.cpp
rename to libcxx/test/libcxx/strings/basic.string/string.access/db_cback.pass.cpp
index 47cda4983bf6..61d504f9bf3e 100644
--- a/libcxx/test/std/strings/basic.string/string.access/db_cback.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.access/db_cback.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call back() on empty const container.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <string>
@@ -40,13 +42,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/strings/basic.string/string.access/db_cfront.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.access/db_cfront.pass.cpp
similarity index 87%
rename from libcxx/test/std/strings/basic.string/string.access/db_cfront.pass.cpp
rename to libcxx/test/libcxx/strings/basic.string/string.access/db_cfront.pass.cpp
index 12b5e511b241..654c575d5b26 100644
--- a/libcxx/test/std/strings/basic.string/string.access/db_cfront.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.access/db_cfront.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call front() on empty const container.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <string>
@@ -40,13 +42,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/strings/basic.string/string.access/db_cindex.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.access/db_cindex.pass.cpp
similarity index 87%
rename from libcxx/test/std/strings/basic.string/string.access/db_cindex.pass.cpp
rename to libcxx/test/libcxx/strings/basic.string/string.access/db_cindex.pass.cpp
index a369cb6234f9..2a5267eef875 100644
--- a/libcxx/test/std/strings/basic.string/string.access/db_cindex.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.access/db_cindex.pass.cpp
@@ -10,8 +10,10 @@
 
 // Index const string out of bounds.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <string>
@@ -42,13 +44,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/strings/basic.string/string.access/db_front.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.access/db_front.pass.cpp
similarity index 87%
rename from libcxx/test/std/strings/basic.string/string.access/db_front.pass.cpp
rename to libcxx/test/libcxx/strings/basic.string/string.access/db_front.pass.cpp
index 6f8dcd5df7c9..c73c536df6c0 100644
--- a/libcxx/test/std/strings/basic.string/string.access/db_front.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.access/db_front.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call front() on empty container.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <string>
@@ -44,13 +46,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/strings/basic.string/string.access/db_index.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.access/db_index.pass.cpp
similarity index 87%
rename from libcxx/test/std/strings/basic.string/string.access/db_index.pass.cpp
rename to libcxx/test/libcxx/strings/basic.string/string.access/db_index.pass.cpp
index bc2502316dab..ef250b01b3c8 100644
--- a/libcxx/test/std/strings/basic.string/string.access/db_index.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.access/db_index.pass.cpp
@@ -10,8 +10,10 @@
 
 // Index string out of bounds.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <string>
@@ -42,13 +44,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/strings/basic.string/string.iterators/db_iterators_2.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_2.pass.cpp
similarity index 87%
rename from libcxx/test/std/strings/basic.string/string.iterators/db_iterators_2.pass.cpp
rename to libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_2.pass.cpp
index 41323e0458d4..df165b70f5d7 100644
--- a/libcxx/test/std/strings/basic.string/string.iterators/db_iterators_2.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_2.pass.cpp
@@ -10,8 +10,10 @@
 
 // Compare iterators from 
diff erent containers with <.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <string>
@@ -44,13 +46,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/strings/basic.string/string.iterators/db_iterators_3.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_3.pass.cpp
similarity index 87%
rename from libcxx/test/std/strings/basic.string/string.iterators/db_iterators_3.pass.cpp
rename to libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_3.pass.cpp
index ea0f2866310c..9f5146689f65 100644
--- a/libcxx/test/std/strings/basic.string/string.iterators/db_iterators_3.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_3.pass.cpp
@@ -10,8 +10,10 @@
 
 // Subtract iterators from 
diff erent containers with <.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <string>
@@ -44,13 +46,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/strings/basic.string/string.iterators/db_iterators_4.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_4.pass.cpp
similarity index 88%
rename from libcxx/test/std/strings/basic.string/string.iterators/db_iterators_4.pass.cpp
rename to libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_4.pass.cpp
index 07b1b825c65a..28aa876ce537 100644
--- a/libcxx/test/std/strings/basic.string/string.iterators/db_iterators_4.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_4.pass.cpp
@@ -10,8 +10,10 @@
 
 // Index iterator out of bounds.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <string>
@@ -44,13 +46,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/strings/basic.string/string.iterators/db_iterators_5.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_5.pass.cpp
similarity index 88%
rename from libcxx/test/std/strings/basic.string/string.iterators/db_iterators_5.pass.cpp
rename to libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_5.pass.cpp
index a183282f4090..9fd4dec8aa0c 100644
--- a/libcxx/test/std/strings/basic.string/string.iterators/db_iterators_5.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_5.pass.cpp
@@ -10,8 +10,10 @@
 
 // Add to iterator out of bounds.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <string>
@@ -48,13 +50,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/strings/basic.string/string.iterators/db_iterators_6.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_6.pass.cpp
similarity index 88%
rename from libcxx/test/std/strings/basic.string/string.iterators/db_iterators_6.pass.cpp
rename to libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_6.pass.cpp
index a24c370dea22..802d6b4d986a 100644
--- a/libcxx/test/std/strings/basic.string/string.iterators/db_iterators_6.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_6.pass.cpp
@@ -10,8 +10,10 @@
 
 // Decrement iterator prior to begin.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <string>
@@ -46,13 +48,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/strings/basic.string/string.iterators/db_iterators_7.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_7.pass.cpp
similarity index 88%
rename from libcxx/test/std/strings/basic.string/string.iterators/db_iterators_7.pass.cpp
rename to libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_7.pass.cpp
index 16a20878658d..86b175f2e4f1 100644
--- a/libcxx/test/std/strings/basic.string/string.iterators/db_iterators_7.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_7.pass.cpp
@@ -10,8 +10,10 @@
 
 // Increment iterator past end.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <string>
@@ -46,13 +48,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/std/strings/basic.string/string.iterators/db_iterators_8.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_8.pass.cpp
similarity index 87%
rename from libcxx/test/std/strings/basic.string/string.iterators/db_iterators_8.pass.cpp
rename to libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_8.pass.cpp
index 2275020b4d73..ca3521de189d 100644
--- a/libcxx/test/std/strings/basic.string/string.iterators/db_iterators_8.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_8.pass.cpp
@@ -10,8 +10,10 @@
 
 // Dereference non-dereferenceable iterator.
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <string>
@@ -42,13 +44,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/strings/basic.string/string.modifiers/clear_and_shrink_db1.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.modifiers/clear_and_shrink_db1.pass.cpp
index 6da77e4365b6..5369a8238f9a 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.modifiers/clear_and_shrink_db1.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.modifiers/clear_and_shrink_db1.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call __clear_and_shrink() and ensure string invariants hold
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <string>
@@ -39,13 +41,3 @@ int main(int, char**)
     assert(l.capacity() < cap);
     }
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_db1.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_db1.pass.cpp
index a5258f95d4d2..f9dd19c2ce7c 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_db1.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_db1.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator position) with end()
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <string>
@@ -40,13 +42,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_db2.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_db2.pass.cpp
index 099ce74f7432..3e1b5fc95282 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_db2.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_db2.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator position) with iterator from another container
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <string>
@@ -42,13 +44,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db1.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db1.pass.cpp
index 1802f6287db2..ce0690f93ca8 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db1.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db1.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator first, const_iterator last); with first iterator from another container
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <string>
@@ -40,13 +42,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db2.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db2.pass.cpp
index fe65851ef775..87e2f50389f5 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db2.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db2.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator first, const_iterator last); with second iterator from another container
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <string>
@@ -40,13 +42,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db3.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db3.pass.cpp
index fad146451262..848f34447f0f 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db3.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db3.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator first, const_iterator last); with both iterators from another container
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <string>
@@ -40,13 +42,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db4.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db4.pass.cpp
index 3186ad4492b0..cb87f1f3769c 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db4.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db4.pass.cpp
@@ -10,8 +10,10 @@
 
 // Call erase(const_iterator first, const_iterator last); with a bad range
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
 
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
 
 #include <string>
@@ -38,13 +40,3 @@ int main(int, char**)
     }
 #endif
 }
-
-#else
-
-int main(int, char**)
-{
-
-  return 0;
-}
-
-#endif

diff  --git a/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_pop_back_db1.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_pop_back_db1.pass.cpp
index 2516a69f51f2..af93f57aae06 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_pop_back_db1.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_pop_back_db1.pass.cpp
@@ -10,9 +10,11 @@
 
 // void pop_back();
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
+
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
 
 #include <string>
 #include <cassert>
@@ -21,13 +23,11 @@
 
 int main(int, char**)
 {
-#if _LIBCPP_DEBUG >= 1
     {
         std::string s;
         s.pop_back();
         assert(false);
     }
-#endif
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/libcxx/strings/basic.string/string.modifiers/insert_iter_char_db1.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.modifiers/insert_iter_char_db1.pass.cpp
index eb07fe88a55f..e5814888d9fa 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.modifiers/insert_iter_char_db1.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.modifiers/insert_iter_char_db1.pass.cpp
@@ -10,9 +10,11 @@
 
 // iterator insert(const_iterator p, charT c);
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
+
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
 
 #include <string>
 #include <stdexcept>
@@ -23,7 +25,6 @@
 
 int main(int, char**)
 {
-#if _LIBCPP_DEBUG >= 1
     {
         typedef std::string S;
         S s;
@@ -31,7 +32,6 @@ int main(int, char**)
         s.insert(s2.begin(), '1');
         assert(false);
     }
-#endif
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/libcxx/strings/basic.string/string.modifiers/insert_iter_iter_iter_db1.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.modifiers/insert_iter_iter_iter_db1.pass.cpp
new file mode 100644
index 000000000000..5bbe1468bf35
--- /dev/null
+++ b/libcxx/test/libcxx/strings/basic.string/string.modifiers/insert_iter_iter_iter_db1.pass.cpp
@@ -0,0 +1,38 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// <string>
+
+// template<class InputIterator>
+//   iterator insert(const_iterator p, InputIterator first, InputIterator last);
+
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
+
+#define _LIBCPP_DEBUG 1
+#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
+
+#include <string>
+#include <cassert>
+
+#include "test_macros.h"
+
+
+int main(int, char**)
+{
+    {
+        std::string v;
+        std::string v2;
+        char a[] = "123";
+        const int N = sizeof(a)/sizeof(a[0]);
+        std::string::iterator i = v.insert(v2.cbegin() + 10, a, a+N);
+        assert(false);
+    }
+
+    return 0;
+}

diff  --git a/libcxx/test/libcxx/strings/basic.string/string.modifiers/insert_iter_size_char_db1.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.modifiers/insert_iter_size_char_db1.pass.cpp
index 4db97609ff51..2be5b082ed3d 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.modifiers/insert_iter_size_char_db1.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.modifiers/insert_iter_size_char_db1.pass.cpp
@@ -10,9 +10,11 @@
 
 // iterator insert(const_iterator p, size_type n, charT c);
 
-#if _LIBCPP_DEBUG >= 1
+// This test requires debug mode, which the library on macOS doesn't have.
+// UNSUPPORTED: with_system_cxx_lib=macosx
+
+#define _LIBCPP_DEBUG 1
 #define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
 
 #include <string>
 #include <cassert>
@@ -21,14 +23,12 @@
 
 int main(int, char**)
 {
-#if _LIBCPP_DEBUG >= 1
     {
         std::string s;
         std::string s2;
         s.insert(s2.begin(), 1, 'a');
         assert(false);
     }
-#endif
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/std/containers/unord/unord.map/bucket.pass.cpp b/libcxx/test/std/containers/unord/unord.map/bucket.pass.cpp
index 47bc933c70a2..93c177a7df45 100644
--- a/libcxx/test/std/containers/unord/unord.map/bucket.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.map/bucket.pass.cpp
@@ -14,10 +14,6 @@
 
 // size_type bucket(const key_type& __k) const;
 
-#ifdef _LIBCPP_DEBUG
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
 #include <unordered_map>
 #include <string>
 #include <cassert>
@@ -66,14 +62,6 @@ int main(int, char**)
             LIBCPP_ASSERT(c.bucket(i) == i % bc);
     }
 #endif
-#if _LIBCPP_DEBUG_LEVEL >= 1
-    {
-        typedef std::unordered_map<int, std::string> C;
-        C c;
-        (void) c.bucket(3);
-        assert(false);
-    }
-#endif
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/move.pass.cpp b/libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/move.pass.cpp
index 1be50c4e88df..6efaa63eeb4e 100644
--- a/libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/move.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/move.pass.cpp
@@ -165,17 +165,6 @@ int main(int, char**)
 
         assert(c0.empty());
     }
-#if _LIBCPP_DEBUG >= 1
-    {
-        std::unordered_map<int, int> s1 = {{1, 1}, {2, 2}, {3, 3}};
-        std::unordered_map<int, int>::iterator i = s1.begin();
-        std::pair<const int, int> k = *i;
-        std::unordered_map<int, int> s2 = std::move(s1);
-        assert(*i == k);
-        s2.erase(i);
-        assert(s2.size() == 2);
-    }
-#endif
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_const_lvalue.pass.cpp b/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_const_lvalue.pass.cpp
index 10032c090673..cf18daf767be 100644
--- a/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_const_lvalue.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_const_lvalue.pass.cpp
@@ -14,10 +14,6 @@
 
 // iterator insert(const_iterator p, const value_type& x);
 
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
 #include <unordered_map>
 #include <cassert>
 
@@ -68,19 +64,6 @@ int main(int, char**)
         do_insert_hint_const_lvalue_test<C>();
     }
 #endif
-#if _LIBCPP_DEBUG >= 1
-    {
-        typedef std::unordered_map<double, int> C;
-        typedef C::iterator R;
-        typedef C::value_type P;
-        C c;
-        C c2;
-        C::const_iterator e = c2.end();
-        P v(3.5, 3);
-        R r = c.insert(e, v);
-        assert(false);
-    }
-#endif
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_rvalue.pass.cpp b/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_rvalue.pass.cpp
index 013e5b3efc7c..48293d065d22 100644
--- a/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_rvalue.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_rvalue.pass.cpp
@@ -18,10 +18,6 @@
 //           class = typename enable_if<is_convertible<P, value_type>::value>::type>
 //     iterator insert(const_iterator p, P&& x);
 
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
 #include <unordered_map>
 #include <cassert>
 
@@ -162,18 +158,6 @@ int main(int, char**)
         assert(r->first == 5.5);
         assert(r->second == 4);
     }
-#if _LIBCPP_DEBUG >= 1
-    {
-        typedef std::unordered_map<double, int> C;
-        typedef C::iterator R;
-        typedef C::value_type P;
-        C c;
-        C c2;
-        C::const_iterator e = c2.end();
-        R r = c.insert(e, P(3.5, 3));
-        assert(false);
-    }
-#endif
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move.pass.cpp b/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move.pass.cpp
index 047f7e6d2dd2..a0a707c76002 100644
--- a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move.pass.cpp
@@ -202,17 +202,6 @@ int main(int, char**)
 
         assert(c0.empty());
     }
-#if _LIBCPP_DEBUG >= 1
-    {
-        std::unordered_multimap<int, int> s1 = {{1, 1}, {2, 2}, {3, 3}};
-        std::unordered_multimap<int, int>::iterator i = s1.begin();
-        std::pair<const int, int> k = *i;
-        std::unordered_multimap<int, int> s2 = std::move(s1);
-        assert(*i == k);
-        s2.erase(i);
-        assert(s2.size() == 2);
-    }
-#endif
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_hint_const_lvalue.pass.cpp b/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_hint_const_lvalue.pass.cpp
index ee7b3374ad1a..cb79ddff41f7 100644
--- a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_hint_const_lvalue.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_hint_const_lvalue.pass.cpp
@@ -14,10 +14,6 @@
 
 // iterator insert(const_iterator p, const value_type& x);
 
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
 #include <unordered_map>
 #include <cassert>
 
@@ -67,19 +63,6 @@ int main(int, char**)
         do_insert_const_lvalue_test<C>();
     }
 #endif
-#if _LIBCPP_DEBUG >= 1
-    {
-        typedef std::unordered_multimap<double, int> C;
-        typedef C::iterator R;
-        typedef C::value_type P;
-        C c;
-        C c2;
-        C::const_iterator e = c2.end();
-        P v(3.5, 3);
-        R r = c.insert(e, v);
-        assert(false);
-    }
-#endif
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_hint_rvalue.pass.cpp b/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_hint_rvalue.pass.cpp
index d5d472fa3c6f..6fa3b45fab77 100644
--- a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_hint_rvalue.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_hint_rvalue.pass.cpp
@@ -18,10 +18,6 @@
 //           class = typename enable_if<is_convertible<P, value_type>::value>::type>
 //     iterator insert(const_iterator p, P&& x);
 
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
 #include <unordered_map>
 #include <cassert>
 
@@ -162,18 +158,6 @@ int main(int, char**)
         assert(r->first == 5.5);
         assert(r->second == 4);
     }
-#if _LIBCPP_DEBUG >= 1
-    {
-        typedef std::unordered_multimap<double, int> C;
-        typedef C::iterator R;
-        typedef C::value_type P;
-        C c;
-        C c2;
-        C::const_iterator e = c2.end();
-        R r = c.insert(e, P(3.5, 3));
-        assert(false);
-    }
-#endif
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/std/containers/unord/unord.multiset/insert_hint_const_lvalue.pass.cpp b/libcxx/test/std/containers/unord/unord.multiset/insert_hint_const_lvalue.pass.cpp
index 981481b6cad7..461428e56eb0 100644
--- a/libcxx/test/std/containers/unord/unord.multiset/insert_hint_const_lvalue.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.multiset/insert_hint_const_lvalue.pass.cpp
@@ -14,10 +14,6 @@
 
 // iterator insert(const_iterator p, const value_type& x);
 
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
 #include <unordered_set>
 #include <cassert>
 
@@ -62,19 +58,6 @@ int main(int, char**)
         do_insert_hint_const_lvalue_test<C>();
     }
 #endif
-#if _LIBCPP_DEBUG >= 1
-    {
-        typedef std::unordered_multiset<double> C;
-        typedef C::iterator R;
-        typedef C::value_type P;
-        C c;
-        C c2;
-        C::const_iterator e = c2.end();
-        P v(3.5);
-        R r = c.insert(e, v);
-        assert(false);
-    }
-#endif
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move.pass.cpp b/libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move.pass.cpp
index e480c7db68e1..fbb4f5fbe11a 100644
--- a/libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move.pass.cpp
@@ -160,17 +160,6 @@ int main(int, char**)
 
         assert(c0.empty());
     }
-#if _LIBCPP_DEBUG >= 1
-    {
-        std::unordered_multiset<int> s1 = {1, 2, 3};
-        std::unordered_multiset<int>::iterator i = s1.begin();
-        int k = *i;
-        std::unordered_multiset<int> s2 = std::move(s1);
-        assert(*i == k);
-        s2.erase(i);
-        assert(s2.size() == 2);
-    }
-#endif
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/std/containers/unord/unord.set/insert_hint_const_lvalue.pass.cpp b/libcxx/test/std/containers/unord/unord.set/insert_hint_const_lvalue.pass.cpp
index 0f7c8812e9f1..0532b6813f38 100644
--- a/libcxx/test/std/containers/unord/unord.set/insert_hint_const_lvalue.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.set/insert_hint_const_lvalue.pass.cpp
@@ -14,10 +14,6 @@
 
 // iterator insert(const_iterator p, const value_type& x);
 
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
 #include <unordered_set>
 #include <cassert>
 
@@ -62,19 +58,6 @@ int main(int, char**)
         do_insert_hint_const_lvalue_test<C>();
     }
 #endif
-#if _LIBCPP_DEBUG >= 1
-    {
-        typedef std::unordered_set<double> C;
-        typedef C::iterator R;
-        typedef C::value_type P;
-        C c;
-        C c2;
-        C::const_iterator e = c2.end();
-        P v(3.5);
-        R r = c.insert(e, v);
-        assert(false);
-    }
-#endif
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/move.pass.cpp b/libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/move.pass.cpp
index 8e06551a67ef..2fc64edd3918 100644
--- a/libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/move.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/move.pass.cpp
@@ -160,17 +160,6 @@ int main(int, char**)
 
         assert(c0.empty());
     }
-#if _LIBCPP_DEBUG >= 1
-    {
-        std::unordered_set<int> s1 = {1, 2, 3};
-        std::unordered_set<int>::iterator i = s1.begin();
-        int k = *i;
-        std::unordered_set<int> s2 = std::move(s1);
-        assert(*i == k);
-        s2.erase(i);
-        assert(s2.size() == 2);
-    }
-#endif
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp
index d52a579349df..67ba33debf7d 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp
@@ -11,10 +11,6 @@
 // template<class InputIterator>
 //   iterator insert(const_iterator p, InputIterator first, InputIterator last);
 
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
 #include <string>
 #include <cassert>
 
@@ -159,16 +155,6 @@ int main(int, char**)
     test_exceptions(S(), 0, TIter(s, s+10, 6, TIter::TAComparison), TIter());
     }
 #endif
-#if _LIBCPP_DEBUG >= 1
-    {
-        std::string v;
-        std::string v2;
-        char a[] = "123";
-        const int N = sizeof(a)/sizeof(a[0]);
-        std::string::iterator i = v.insert(v2.cbegin() + 10, a, a+N);
-        assert(false);
-    }
-#endif
 
     { // test inserting into self
     typedef std::string S;


        


More information about the libcxx-commits mailing list