[libcxx] Improve tests to use the UNSUPPORTED lit directive
Quite a few libcxx tests seem to follow the format:
#if _LIBCPP_STD_VER > X
// Do test.
#else
// Empty test.
#endif
We should instead use the UNSUPPORTED lit directive to exclude the test on
earlier C++ standards. This gives us a more accurate number of test passes
for those standards and avoids unnecessary conflicts with other lit
directives on the same tests.
Reviewers: bcraig, ericwf, mclow.lists
Differential revision: http://reviews.llvm.org/D20730
llvm-svn: 271108
diff --git a/libcxx/test/std/strings/basic.string.literals/literal.pass.cpp b/libcxx/test/std/strings/basic.string.literals/literal.pass.cpp
index dbb5f68..2622766 100644
--- a/libcxx/test/std/strings/basic.string.literals/literal.pass.cpp
+++ b/libcxx/test/std/strings/basic.string.literals/literal.pass.cpp
@@ -7,12 +7,14 @@
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
+
+// UNSUPPORTED: c++98, c++03, c++11
+
#include <string>
#include <cassert>
int main()
{
-#if _LIBCPP_STD_VER > 11
using namespace std::literals::string_literals;
static_assert ( std::is_same<decltype( "Hi"s), std::string>::value, "" );
@@ -43,5 +45,4 @@
Lfoo = L"ABC"s; assert(Lfoo == L"ABC"); assert(Lfoo == std::wstring ( L"ABC"));
ufoo = u"ABC"s; assert(ufoo == u"ABC"); assert(ufoo == std::u16string( u"ABC"));
Ufoo = U"ABC"s; assert(Ufoo == U"ABC"); assert(Ufoo == std::u32string( U"ABC"));
-#endif
}
diff --git a/libcxx/test/std/strings/basic.string.literals/literal1.fail.cpp b/libcxx/test/std/strings/basic.string.literals/literal1.fail.cpp
index 6ba0b30..721440d 100644
--- a/libcxx/test/std/strings/basic.string.literals/literal1.fail.cpp
+++ b/libcxx/test/std/strings/basic.string.literals/literal1.fail.cpp
@@ -7,16 +7,15 @@
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
+
+// UNSUPPORTED: c++98, c++03, c++11
+
#include <string>
#include <cassert>
int main()
{
-#if _LIBCPP_STD_VER > 11
using std::string;
string foo = ""s; // should fail w/conversion operator not found
-#else
-#error
-#endif
}
diff --git a/libcxx/test/std/strings/basic.string.literals/literal1.pass.cpp b/libcxx/test/std/strings/basic.string.literals/literal1.pass.cpp
index f514374..f0b7b46 100644
--- a/libcxx/test/std/strings/basic.string.literals/literal1.pass.cpp
+++ b/libcxx/test/std/strings/basic.string.literals/literal1.pass.cpp
@@ -7,14 +7,15 @@
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
+
+// UNSUPPORTED: c++98, c++03, c++11
+
#include <string>
#include <cassert>
int main()
{
-#if _LIBCPP_STD_VER > 11
using namespace std::literals;
std::string foo = ""s;
-#endif
}
diff --git a/libcxx/test/std/strings/basic.string.literals/literal2.fail.cpp b/libcxx/test/std/strings/basic.string.literals/literal2.fail.cpp
index 68f1d25..99f92fd 100644
--- a/libcxx/test/std/strings/basic.string.literals/literal2.fail.cpp
+++ b/libcxx/test/std/strings/basic.string.literals/literal2.fail.cpp
@@ -7,14 +7,13 @@
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
+
+// UNSUPPORTED: c++98, c++03, c++11
+
#include <string>
#include <cassert>
int main()
{
-#if _LIBCPP_STD_VER > 11
std::string foo = ""s; // should fail w/conversion operator not found
-#else
-#error
-#endif
}
diff --git a/libcxx/test/std/strings/basic.string.literals/literal2.pass.cpp b/libcxx/test/std/strings/basic.string.literals/literal2.pass.cpp
index 86d28e6..3cc2936 100644
--- a/libcxx/test/std/strings/basic.string.literals/literal2.pass.cpp
+++ b/libcxx/test/std/strings/basic.string.literals/literal2.pass.cpp
@@ -7,14 +7,15 @@
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
+
+// UNSUPPORTED: c++98, c++03, c++11
+
#include <string>
#include <cassert>
int main()
{
-#if _LIBCPP_STD_VER > 11
using namespace std::literals::string_literals;
std::string foo = ""s;
-#endif
}
diff --git a/libcxx/test/std/strings/basic.string.literals/literal3.pass.cpp b/libcxx/test/std/strings/basic.string.literals/literal3.pass.cpp
index 98e3e40..d6e8c8f 100644
--- a/libcxx/test/std/strings/basic.string.literals/literal3.pass.cpp
+++ b/libcxx/test/std/strings/basic.string.literals/literal3.pass.cpp
@@ -7,14 +7,15 @@
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
+
+// UNSUPPORTED: c++98, c++03, c++11
+
#include <string>
#include <cassert>
int main()
{
-#if _LIBCPP_STD_VER > 11
using namespace std;
string foo = ""s;
-#endif
}