Merge "Test libc++ on all platform levels."
diff --git a/tests/libc++/test/std/language_support/support_dynamic/new_delete/new_delete_array/test_config.py b/tests/libc++/test/std/language_support/support_dynamic/new_delete/new_delete_array/test_config.py
new file mode 100644
index 0000000..cb9c345
--- /dev/null
+++ b/tests/libc++/test/std/language_support/support_dynamic/new_delete/new_delete_array/test_config.py
@@ -0,0 +1,8 @@
+def run_broken(abi, device_api, toolchain, name):
+    failing_tests = [
+        'new_array_nothrow_replace.pass',
+        'new_array_replace.pass',
+    ]
+    if name in failing_tests and device_api < 21:
+        return 'android-{}'.format(device_api), 'http://b/2643900'
+    return None, None
diff --git a/tests/libc++/test/std/language_support/support_dynamic/new_delete/new_delete_single/test_config.py b/tests/libc++/test/std/language_support/support_dynamic/new_delete/new_delete_single/test_config.py
new file mode 100644
index 0000000..1dfb471
--- /dev/null
+++ b/tests/libc++/test/std/language_support/support_dynamic/new_delete/new_delete_single/test_config.py
@@ -0,0 +1,4 @@
+def run_broken(abi, device_api, toolchain, name):
+    if name == 'new_nothrow_replace.pass' and device_api < 21:
+        return 'android-{}'.format(device_api), 'http://b/2643900'
+    return None, None
diff --git a/tests/libc++/test/std/localization/locale_categories/category_ctype/facet_ctype_special/facet_ctype_char_dtor/test_config.py b/tests/libc++/test/std/localization/locale_categories/category_ctype/facet_ctype_special/facet_ctype_char_dtor/test_config.py
new file mode 100644
index 0000000..e86141e
--- /dev/null
+++ b/tests/libc++/test/std/localization/locale_categories/category_ctype/facet_ctype_special/facet_ctype_char_dtor/test_config.py
@@ -0,0 +1,4 @@
+def run_broken(abi, device_api, toolchain, name):
+    if name == 'dtor.pass' and device_api < 21:
+        return 'android-{}'.format(device_api), 'http://b/2643900'
+    return None, None
diff --git a/tests/libc++/test/std/thread/thread_threads/thread_thread_class/thread_thread_constr/test_config.py b/tests/libc++/test/std/thread/thread_threads/thread_thread_class/thread_thread_constr/test_config.py
new file mode 100644
index 0000000..0ee91d9
--- /dev/null
+++ b/tests/libc++/test/std/thread/thread_threads/thread_thread_class/thread_thread_constr/test_config.py
@@ -0,0 +1,4 @@
+def run_broken(abi, device_api, toolchain, name):
+    if name == 'F.pass' and device_api < 21:
+        return 'android-{}'.format(device_api), 'http://b/2643900'
+    return None, None
diff --git a/tests/testlib.py b/tests/testlib.py
index cd1c7fe..ee713bf 100644
--- a/tests/testlib.py
+++ b/tests/testlib.py
@@ -1372,9 +1372,6 @@
             # bother wasting time running them until we get to that point.
             return self.abi
 
-        if self.device is not None and self.device_api < 21:
-            return 'android-{}'.format(self.device_api)
-
         return None
 
     def is_negative_test(self):