[libcxx-commits] [libcxx] d486c5b - [libc++] Clarify the name of Lit features related to standard library selection

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Tue Sep 28 13:15:40 PDT 2021


Author: Louis Dionne
Date: 2021-09-28T16:15:25-04:00
New Revision: d486c5b11757be769051c1b2b6d6a18e2857dbbd

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

LOG: [libc++] Clarify the name of Lit features related to standard library selection

Before this patch, we had features named 'libc++', 'libstdc++' and
'msvc' to describe the three implementations that use our test suite.
This patch renames them to 'stdlib=libc++', 'stdlib=libstdc++', etc
to avoid confusion between MSVC's STL and the MSVC compiler (or Clang
in MSVC mode).

Furthermore, this prepares the terrain for adding support for additional
"implementations" to the test suite. Basically, I'd like to be able to
treat Apple's libc++ differently from LLVM's libc++ for the purpose of
testing, because those effectively behave in different ways in some aspects.

Added: 
    

Modified: 
    libcxx/test/libcxx/memory/allocator_volatile.verify.cpp
    libcxx/test/std/input.output/iostreams.base/ios.base/ios.base.storage/iword.pass.cpp
    libcxx/test/std/input.output/iostreams.base/ios.base/ios.base.storage/pword.pass.cpp
    libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.random.access/contiguous_iterator.verify.cpp
    libcxx/test/std/ranges/range.access/range.access.begin/incomplete.verify.cpp
    libcxx/test/std/ranges/range.access/range.access.cbegin/incomplete.verify.cpp
    libcxx/test/std/ranges/range.access/range.access.cend/incomplete.verify.cpp
    libcxx/test/std/ranges/range.access/range.access.end/incomplete.verify.cpp
    libcxx/test/std/ranges/range.access/range.prim/data.incomplete.verify.cpp
    libcxx/test/std/ranges/range.access/range.prim/empty.incomplete.verify.cpp
    libcxx/test/std/ranges/range.adaptors/range.all/all.nodiscard.verify.cpp
    libcxx/test/std/ranges/range.adaptors/range.transform/adaptor.nodiscard.verify.cpp
    libcxx/test/std/strings/c.strings/cuchar.pass.cpp
    libcxx/test/std/thread/thread.mutex/thread.lock.algorithm/lock.pass.cpp
    libcxx/test/std/utilities/charconv/charconv.from.chars/integral.bool.fail.cpp
    libcxx/test/std/utilities/charconv/charconv.from.chars/integral.pass.cpp
    libcxx/test/std/utilities/charconv/charconv.from.chars/integral.roundtrip.pass.cpp
    libcxx/test/std/utilities/charconv/charconv.to.chars/integral.bool.fail.cpp
    libcxx/test/std/utilities/charconv/charconv.to.chars/integral.pass.cpp
    libcxx/test/std/utilities/function.objects/func.search/func.search.bm/default.pass.cpp
    libcxx/test/std/utilities/function.objects/func.search/func.search.bm/hash.pass.cpp
    libcxx/test/std/utilities/function.objects/func.search/func.search.bm/hash.pred.pass.cpp
    libcxx/test/std/utilities/function.objects/func.search/func.search.bm/pred.pass.cpp
    libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/default.pass.cpp
    libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/hash.pass.cpp
    libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/hash.pred.pass.cpp
    libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/pred.pass.cpp
    libcxx/test/std/utilities/intseq/intseq.make/make_integer_seq.fail.cpp
    libcxx/test/std/utilities/intseq/intseq.make/make_integer_seq_fallback.compile.fail.cpp
    libcxx/utils/libcxx/test/params.py

Removed: 
    


################################################################################
diff  --git a/libcxx/test/libcxx/memory/allocator_volatile.verify.cpp b/libcxx/test/libcxx/memory/allocator_volatile.verify.cpp
index b3ee09def3a30..1d17c3a9ac44a 100644
--- a/libcxx/test/libcxx/memory/allocator_volatile.verify.cpp
+++ b/libcxx/test/libcxx/memory/allocator_volatile.verify.cpp
@@ -6,7 +6,7 @@
 //
 //===----------------------------------------------------------------------===//
 
-// REQUIRES: libc++
+// REQUIRES: stdlib=libc++
 
 // http://wg21.link/LWG2447 gives implementors freedom to reject volatile types in `std::allocator`.
 

diff  --git a/libcxx/test/std/input.output/iostreams.base/ios.base/ios.base.storage/iword.pass.cpp b/libcxx/test/std/input.output/iostreams.base/ios.base/ios.base.storage/iword.pass.cpp
index 336d4091740b3..44f94ee281cd0 100644
--- a/libcxx/test/std/input.output/iostreams.base/ios.base/ios.base.storage/iword.pass.cpp
+++ b/libcxx/test/std/input.output/iostreams.base/ios.base/ios.base.storage/iword.pass.cpp
@@ -13,7 +13,7 @@
 // long& iword(int idx);
 
 // This test compiles but never completes when compiled against the MSVC STL
-// UNSUPPORTED: msvc
+// UNSUPPORTED: stdlib=msvc
 
 #include <ios>
 #include <string>

diff  --git a/libcxx/test/std/input.output/iostreams.base/ios.base/ios.base.storage/pword.pass.cpp b/libcxx/test/std/input.output/iostreams.base/ios.base/ios.base.storage/pword.pass.cpp
index 4b479a90f79bd..35d52c471e18e 100644
--- a/libcxx/test/std/input.output/iostreams.base/ios.base/ios.base.storage/pword.pass.cpp
+++ b/libcxx/test/std/input.output/iostreams.base/ios.base/ios.base.storage/pword.pass.cpp
@@ -13,7 +13,7 @@
 // void*& pword(int idx);
 
 // This test compiles but never completes when compiled against the MSVC STL
-// UNSUPPORTED: msvc
+// UNSUPPORTED: stdlib=msvc
 
 #include <ios>
 #include <string>

diff  --git a/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.random.access/contiguous_iterator.verify.cpp b/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.random.access/contiguous_iterator.verify.cpp
index 189a00d7975a8..a2bab2813aca5 100644
--- a/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.random.access/contiguous_iterator.verify.cpp
+++ b/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.random.access/contiguous_iterator.verify.cpp
@@ -8,7 +8,7 @@
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
 // UNSUPPORTED: libcpp-no-concepts
-// REQUIRES: libc++
+// REQUIRES: stdlib=libc++
 
 // This test checks that std::contiguous_iterator uses std::to_address, which is not SFINAE-friendly
 // when the type is missing the `T::element_type` typedef.

diff  --git a/libcxx/test/std/ranges/range.access/range.access.begin/incomplete.verify.cpp b/libcxx/test/std/ranges/range.access/range.access.begin/incomplete.verify.cpp
index 49ecaed006701..ef9356331ba7b 100644
--- a/libcxx/test/std/ranges/range.access/range.access.begin/incomplete.verify.cpp
+++ b/libcxx/test/std/ranges/range.access/range.access.begin/incomplete.verify.cpp
@@ -9,7 +9,7 @@
 // UNSUPPORTED: c++03, c++11, c++14, c++17
 // UNSUPPORTED: libcpp-no-concepts
 // UNSUPPORTED: libcpp-has-no-incomplete-ranges
-// REQUIRES: libc++
+// REQUIRES: stdlib=libc++
 
 // Test the libc++ specific behavior that we provide a better diagnostic when calling
 // std::ranges::begin on an array of incomplete type.

diff  --git a/libcxx/test/std/ranges/range.access/range.access.cbegin/incomplete.verify.cpp b/libcxx/test/std/ranges/range.access/range.access.cbegin/incomplete.verify.cpp
index ca9036d447607..ef7612a469115 100644
--- a/libcxx/test/std/ranges/range.access/range.access.cbegin/incomplete.verify.cpp
+++ b/libcxx/test/std/ranges/range.access/range.access.cbegin/incomplete.verify.cpp
@@ -9,7 +9,7 @@
 // UNSUPPORTED: c++03, c++11, c++14, c++17
 // UNSUPPORTED: libcpp-no-concepts
 // UNSUPPORTED: libcpp-has-no-incomplete-ranges
-// REQUIRES: libc++
+// REQUIRES: stdlib=libc++
 
 // Test the libc++ specific behavior that we provide a better diagnostic when calling
 // std::ranges::cbegin on an array of incomplete type.

diff  --git a/libcxx/test/std/ranges/range.access/range.access.cend/incomplete.verify.cpp b/libcxx/test/std/ranges/range.access/range.access.cend/incomplete.verify.cpp
index c0aff19614bb2..42c12abe16f29 100644
--- a/libcxx/test/std/ranges/range.access/range.access.cend/incomplete.verify.cpp
+++ b/libcxx/test/std/ranges/range.access/range.access.cend/incomplete.verify.cpp
@@ -9,7 +9,7 @@
 // UNSUPPORTED: c++03, c++11, c++14, c++17
 // UNSUPPORTED: libcpp-no-concepts
 // UNSUPPORTED: libcpp-has-no-incomplete-ranges
-// REQUIRES: libc++
+// REQUIRES: stdlib=libc++
 
 // Test the libc++ specific behavior that we provide a better diagnostic when calling
 // std::ranges::cend on an array of incomplete type.

diff  --git a/libcxx/test/std/ranges/range.access/range.access.end/incomplete.verify.cpp b/libcxx/test/std/ranges/range.access/range.access.end/incomplete.verify.cpp
index fe860ebfc1999..6435f3edcdde0 100644
--- a/libcxx/test/std/ranges/range.access/range.access.end/incomplete.verify.cpp
+++ b/libcxx/test/std/ranges/range.access/range.access.end/incomplete.verify.cpp
@@ -9,7 +9,7 @@
 // UNSUPPORTED: c++03, c++11, c++14, c++17
 // UNSUPPORTED: libcpp-no-concepts
 // UNSUPPORTED: libcpp-has-no-incomplete-ranges
-// REQUIRES: libc++
+// REQUIRES: stdlib=libc++
 
 // Test the libc++ specific behavior that we provide a better diagnostic when calling
 // std::ranges::end on an array of incomplete type.

diff  --git a/libcxx/test/std/ranges/range.access/range.prim/data.incomplete.verify.cpp b/libcxx/test/std/ranges/range.access/range.prim/data.incomplete.verify.cpp
index 2b8b28fd771c6..f663bafd792f9 100644
--- a/libcxx/test/std/ranges/range.access/range.prim/data.incomplete.verify.cpp
+++ b/libcxx/test/std/ranges/range.access/range.prim/data.incomplete.verify.cpp
@@ -9,7 +9,7 @@
 // UNSUPPORTED: c++03, c++11, c++14, c++17
 // UNSUPPORTED: libcpp-no-concepts
 // UNSUPPORTED: libcpp-has-no-incomplete-ranges
-// REQUIRES: libc++
+// REQUIRES: stdlib=libc++
 
 // Test the libc++ specific behavior that we provide a better diagnostic when calling
 // std::ranges::data on an array of incomplete type.

diff  --git a/libcxx/test/std/ranges/range.access/range.prim/empty.incomplete.verify.cpp b/libcxx/test/std/ranges/range.access/range.prim/empty.incomplete.verify.cpp
index 8d32431a13b1b..9defe751af5b7 100644
--- a/libcxx/test/std/ranges/range.access/range.prim/empty.incomplete.verify.cpp
+++ b/libcxx/test/std/ranges/range.access/range.prim/empty.incomplete.verify.cpp
@@ -9,7 +9,7 @@
 // UNSUPPORTED: c++03, c++11, c++14, c++17
 // UNSUPPORTED: libcpp-no-concepts
 // UNSUPPORTED: libcpp-has-no-incomplete-ranges
-// REQUIRES: libc++
+// REQUIRES: stdlib=libc++
 
 // Test the libc++ specific behavior that we provide a better diagnostic when calling
 // std::ranges::empty on an array of incomplete type.

diff  --git a/libcxx/test/std/ranges/range.adaptors/range.all/all.nodiscard.verify.cpp b/libcxx/test/std/ranges/range.adaptors/range.all/all.nodiscard.verify.cpp
index f3981f95e685d..20706c17545c5 100644
--- a/libcxx/test/std/ranges/range.adaptors/range.all/all.nodiscard.verify.cpp
+++ b/libcxx/test/std/ranges/range.adaptors/range.all/all.nodiscard.verify.cpp
@@ -9,7 +9,7 @@
 // UNSUPPORTED: c++03, c++11, c++14, c++17
 // UNSUPPORTED: libcpp-no-concepts
 // UNSUPPORTED: libcpp-has-no-incomplete-ranges
-// REQUIRES: libc++
+// REQUIRES: stdlib=libc++
 
 // Test the libc++ extension that std::views::all is marked as [[nodiscard]].
 

diff  --git a/libcxx/test/std/ranges/range.adaptors/range.transform/adaptor.nodiscard.verify.cpp b/libcxx/test/std/ranges/range.adaptors/range.transform/adaptor.nodiscard.verify.cpp
index 05eb468559b07..9462c458d9c9d 100644
--- a/libcxx/test/std/ranges/range.adaptors/range.transform/adaptor.nodiscard.verify.cpp
+++ b/libcxx/test/std/ranges/range.adaptors/range.transform/adaptor.nodiscard.verify.cpp
@@ -9,7 +9,7 @@
 // UNSUPPORTED: c++03, c++11, c++14, c++17
 // UNSUPPORTED: libcpp-no-concepts
 // UNSUPPORTED: libcpp-has-no-incomplete-ranges
-// REQUIRES: libc++
+// REQUIRES: stdlib=libc++
 
 // Test the libc++ extension that std::views::transform is marked as [[nodiscard]] to avoid
 // the potential for user mistakenly thinking they're calling an algorithm.

diff  --git a/libcxx/test/std/strings/c.strings/cuchar.pass.cpp b/libcxx/test/std/strings/c.strings/cuchar.pass.cpp
index ee436b5d06f7a..b63df56c42952 100644
--- a/libcxx/test/std/strings/c.strings/cuchar.pass.cpp
+++ b/libcxx/test/std/strings/c.strings/cuchar.pass.cpp
@@ -6,7 +6,7 @@
 //
 //===----------------------------------------------------------------------===//
 //
-// XFAIL: libc++
+// XFAIL: stdlib=libc++
 
 // Skip this test on windows. If built on top of the MSVC runtime, the
 // <cuchar> header actually does exist (although not provided by us).

diff  --git a/libcxx/test/std/thread/thread.mutex/thread.lock.algorithm/lock.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.lock.algorithm/lock.pass.cpp
index 8a6e83c6c5b7c..ccf476c81c9d5 100644
--- a/libcxx/test/std/thread/thread.mutex/thread.lock.algorithm/lock.pass.cpp
+++ b/libcxx/test/std/thread/thread.mutex/thread.lock.algorithm/lock.pass.cpp
@@ -11,7 +11,7 @@
 // This test hangs forever when built against libstdc++ and MSVC. In order to allow
 // validation of the test suite against other STLs we have to mark it
 // unsupported.
-// UNSUPPORTED: libstdc++, msvc
+// UNSUPPORTED: stdlib=libstdc++, stdlib=msvc
 
 // <mutex>
 

diff  --git a/libcxx/test/std/utilities/charconv/charconv.from.chars/integral.bool.fail.cpp b/libcxx/test/std/utilities/charconv/charconv.from.chars/integral.bool.fail.cpp
index 1a4d59d653e4a..d77131775dfcb 100644
--- a/libcxx/test/std/utilities/charconv/charconv.from.chars/integral.bool.fail.cpp
+++ b/libcxx/test/std/utilities/charconv/charconv.from.chars/integral.bool.fail.cpp
@@ -7,8 +7,8 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03
-// UNSUPPORTED: !libc++ && c++11
-// UNSUPPORTED: !libc++ && c++14
+// UNSUPPORTED: !stdlib=libc++ && c++11
+// UNSUPPORTED: !stdlib=libc++ && c++14
 // <charconv>
 
 // In

diff  --git a/libcxx/test/std/utilities/charconv/charconv.from.chars/integral.pass.cpp b/libcxx/test/std/utilities/charconv/charconv.from.chars/integral.pass.cpp
index 2a3bbfd89c47f..0c10c0dfb5bca 100644
--- a/libcxx/test/std/utilities/charconv/charconv.from.chars/integral.pass.cpp
+++ b/libcxx/test/std/utilities/charconv/charconv.from.chars/integral.pass.cpp
@@ -7,8 +7,8 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03
-// UNSUPPORTED: !libc++ && c++11
-// UNSUPPORTED: !libc++ && c++14
+// UNSUPPORTED: !stdlib=libc++ && c++11
+// UNSUPPORTED: !stdlib=libc++ && c++14
 
 // <charconv>
 

diff  --git a/libcxx/test/std/utilities/charconv/charconv.from.chars/integral.roundtrip.pass.cpp b/libcxx/test/std/utilities/charconv/charconv.from.chars/integral.roundtrip.pass.cpp
index 88450a33afdc9..6aa49534d243d 100644
--- a/libcxx/test/std/utilities/charconv/charconv.from.chars/integral.roundtrip.pass.cpp
+++ b/libcxx/test/std/utilities/charconv/charconv.from.chars/integral.roundtrip.pass.cpp
@@ -7,8 +7,8 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03
-// UNSUPPORTED: !libc++ && c++11
-// UNSUPPORTED: !libc++ && c++14
+// UNSUPPORTED: !stdlib=libc++ && c++11
+// UNSUPPORTED: !stdlib=libc++ && c++14
 
 // The roundtrip test uses to_chars, which requires functions in the dylib
 // that were introduced in Mac OS 10.15.

diff  --git a/libcxx/test/std/utilities/charconv/charconv.to.chars/integral.bool.fail.cpp b/libcxx/test/std/utilities/charconv/charconv.to.chars/integral.bool.fail.cpp
index 051510119650e..096d979a2fc1c 100644
--- a/libcxx/test/std/utilities/charconv/charconv.to.chars/integral.bool.fail.cpp
+++ b/libcxx/test/std/utilities/charconv/charconv.to.chars/integral.bool.fail.cpp
@@ -7,8 +7,8 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03
-// UNSUPPORTED: !libc++ && c++11
-// UNSUPPORTED: !libc++ && c++14
+// UNSUPPORTED: !stdlib=libc++ && c++11
+// UNSUPPORTED: !stdlib=libc++ && c++14
 // <charconv>
 
 // In

diff  --git a/libcxx/test/std/utilities/charconv/charconv.to.chars/integral.pass.cpp b/libcxx/test/std/utilities/charconv/charconv.to.chars/integral.pass.cpp
index 4afe49190603d..d137461ea3bc2 100644
--- a/libcxx/test/std/utilities/charconv/charconv.to.chars/integral.pass.cpp
+++ b/libcxx/test/std/utilities/charconv/charconv.to.chars/integral.pass.cpp
@@ -7,8 +7,8 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03
-// UNSUPPORTED: !libc++ && c++11
-// UNSUPPORTED: !libc++ && c++14
+// UNSUPPORTED: !stdlib=libc++ && c++11
+// UNSUPPORTED: !stdlib=libc++ && c++14
 
 // to_chars requires functions in the dylib that were introduced in Mac OS 10.15.
 //

diff  --git a/libcxx/test/std/utilities/function.objects/func.search/func.search.bm/default.pass.cpp b/libcxx/test/std/utilities/function.objects/func.search/func.search.bm/default.pass.cpp
index ba602a7aca0bc..8bcd525f9a148 100644
--- a/libcxx/test/std/utilities/function.objects/func.search/func.search.bm/default.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/func.search/func.search.bm/default.pass.cpp
@@ -7,7 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14
-// XFAIL: libc++
+// XFAIL: stdlib=libc++
 
 // <functional>
 

diff  --git a/libcxx/test/std/utilities/function.objects/func.search/func.search.bm/hash.pass.cpp b/libcxx/test/std/utilities/function.objects/func.search/func.search.bm/hash.pass.cpp
index 15949e96b50e9..3ff0f0d27f675 100644
--- a/libcxx/test/std/utilities/function.objects/func.search/func.search.bm/hash.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/func.search/func.search.bm/hash.pass.cpp
@@ -7,7 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14
-// XFAIL: libc++
+// XFAIL: stdlib=libc++
 
 // <functional>
 

diff  --git a/libcxx/test/std/utilities/function.objects/func.search/func.search.bm/hash.pred.pass.cpp b/libcxx/test/std/utilities/function.objects/func.search/func.search.bm/hash.pred.pass.cpp
index 81b8960effd73..e4e72be2b6b37 100644
--- a/libcxx/test/std/utilities/function.objects/func.search/func.search.bm/hash.pred.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/func.search/func.search.bm/hash.pred.pass.cpp
@@ -7,7 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14
-// XFAIL: libc++
+// XFAIL: stdlib=libc++
 
 // <functional>
 

diff  --git a/libcxx/test/std/utilities/function.objects/func.search/func.search.bm/pred.pass.cpp b/libcxx/test/std/utilities/function.objects/func.search/func.search.bm/pred.pass.cpp
index 3cf7850e14e7e..f6f88518c8889 100644
--- a/libcxx/test/std/utilities/function.objects/func.search/func.search.bm/pred.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/func.search/func.search.bm/pred.pass.cpp
@@ -7,7 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14
-// XFAIL: libc++
+// XFAIL: stdlib=libc++
 
 // <functional>
 

diff  --git a/libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/default.pass.cpp b/libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/default.pass.cpp
index 3cf2892e0f2a4..828d6fc72157e 100644
--- a/libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/default.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/default.pass.cpp
@@ -7,7 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14
-// XFAIL: libc++
+// XFAIL: stdlib=libc++
 
 // <functional>
 

diff  --git a/libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/hash.pass.cpp b/libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/hash.pass.cpp
index c3d72346ed1ee..904623ff27819 100644
--- a/libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/hash.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/hash.pass.cpp
@@ -7,7 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14
-// XFAIL: libc++
+// XFAIL: stdlib=libc++
 
 // <functional>
 

diff  --git a/libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/hash.pred.pass.cpp b/libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/hash.pred.pass.cpp
index 3c1c749caef93..53700884cd446 100644
--- a/libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/hash.pred.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/hash.pred.pass.cpp
@@ -7,7 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14
-// XFAIL: libc++
+// XFAIL: stdlib=libc++
 
 // <functional>
 

diff  --git a/libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/pred.pass.cpp b/libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/pred.pass.cpp
index eeadd06f98fda..137d1a66ad32c 100644
--- a/libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/pred.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/pred.pass.cpp
@@ -7,7 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14
-// XFAIL: libc++
+// XFAIL: stdlib=libc++
 
 // <functional>
 

diff  --git a/libcxx/test/std/utilities/intseq/intseq.make/make_integer_seq.fail.cpp b/libcxx/test/std/utilities/intseq/intseq.make/make_integer_seq.fail.cpp
index 8da2b67982e55..9f227757e1dee 100644
--- a/libcxx/test/std/utilities/intseq/intseq.make/make_integer_seq.fail.cpp
+++ b/libcxx/test/std/utilities/intseq/intseq.make/make_integer_seq.fail.cpp
@@ -14,7 +14,7 @@
 // UNSUPPORTED: c++03, c++11
 
 // This test hangs during recursive template instantiation with libstdc++
-// UNSUPPORTED: libstdc++
+// UNSUPPORTED: stdlib=libstdc++
 
 #include <utility>
 #include <type_traits>

diff  --git a/libcxx/test/std/utilities/intseq/intseq.make/make_integer_seq_fallback.compile.fail.cpp b/libcxx/test/std/utilities/intseq/intseq.make/make_integer_seq_fallback.compile.fail.cpp
index 9661f323f6f59..23dd15414a15d 100644
--- a/libcxx/test/std/utilities/intseq/intseq.make/make_integer_seq_fallback.compile.fail.cpp
+++ b/libcxx/test/std/utilities/intseq/intseq.make/make_integer_seq_fallback.compile.fail.cpp
@@ -14,7 +14,7 @@
 // UNSUPPORTED: c++03, c++11
 
 // This test hangs during recursive template instantiation with libstdc++
-// UNSUPPORTED: libstdc++
+// UNSUPPORTED: stdlib=libstdc++
 
 #define _LIBCPP_TESTING_FALLBACK_MAKE_INTEGER_SEQUENCE
 #include "make_integer_seq.fail.cpp"

diff  --git a/libcxx/utils/libcxx/test/params.py b/libcxx/utils/libcxx/test/params.py
index ee233e09406ac..090e0589789a7 100644
--- a/libcxx/utils/libcxx/test/params.py
+++ b/libcxx/utils/libcxx/test/params.py
@@ -94,7 +94,7 @@ def getStdFlag(cfg, std):
   Parameter(name='stdlib', choices=['libc++', 'libstdc++', 'msvc'], type=str, default='libc++',
             help="The C++ Standard Library implementation being tested.",
             actions=lambda stdlib: [
-              AddFeature(stdlib)
+              AddFeature('stdlib={}'.format(stdlib))
             ]),
 
   Parameter(name='enable_warnings', choices=[True, False], type=bool, default=True,


        


More information about the libcxx-commits mailing list