From 4537bda929bd874658f9d66ad2c55d81268c8b98 Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Sat, 11 Feb 2023 09:41:56 -0800 Subject: [PATCH] [libc++][NFC] Change some std::pair tests from .compile.fail.cpp to .verify.cpp Those tests are arguably not great anyways, but it's better to have then as .verify tests than compile failure tests, which are too brittle. --- ...{get_const.compile.fail.cpp => get_const.verify.cpp} | 16 ++++------------ ...type3.compile.fail.cpp => pairs.by.type1.verify.cpp} | 14 +++++--------- ...type2.compile.fail.cpp => pairs.by.type2.verify.cpp} | 14 +++++--------- ...type1.compile.fail.cpp => pairs.by.type3.verify.cpp} | 16 ++++++---------- ...{tuple_element.fail.cpp => tuple_element.verify.cpp} | 9 +++------ ...ruct_t.fail.cpp => piecewise_construct_t.verify.cpp} | 5 ----- ...lt.explicit.fail.cpp => default.explicit.verify.cpp} | 4 ---- ...pr_cxx11.fail.cpp => not_constexpr_cxx11.verify.cpp} | 17 +++++++---------- 8 files changed, 30 insertions(+), 65 deletions(-) rename libcxx/test/std/utilities/utility/pairs/pair.astuple/{get_const.compile.fail.cpp => get_const.verify.cpp} (71%) rename libcxx/test/std/utilities/utility/pairs/pair.astuple/{pairs.by.type3.compile.fail.cpp => pairs.by.type1.verify.cpp} (70%) rename libcxx/test/std/utilities/utility/pairs/pair.astuple/{pairs.by.type2.compile.fail.cpp => pairs.by.type2.verify.cpp} (69%) rename libcxx/test/std/utilities/utility/pairs/pair.astuple/{pairs.by.type1.compile.fail.cpp => pairs.by.type3.verify.cpp} (64%) rename libcxx/test/std/utilities/utility/pairs/pair.astuple/{tuple_element.fail.cpp => tuple_element.verify.cpp} (70%) rename libcxx/test/std/utilities/utility/pairs/pair.piecewise/{piecewise_construct_t.fail.cpp => piecewise_construct_t.verify.cpp} (94%) rename libcxx/test/std/utilities/utility/pairs/pairs.pair/{default.explicit.fail.cpp => default.explicit.verify.cpp} (97%) rename libcxx/test/std/utilities/utility/pairs/pairs.pair/{not_constexpr_cxx11.fail.cpp => not_constexpr_cxx11.verify.cpp} (86%) diff --git a/libcxx/test/std/utilities/utility/pairs/pair.astuple/get_const.compile.fail.cpp b/libcxx/test/std/utilities/utility/pairs/pair.astuple/get_const.verify.cpp similarity index 71% rename from libcxx/test/std/utilities/utility/pairs/pair.astuple/get_const.compile.fail.cpp rename to libcxx/test/std/utilities/utility/pairs/pair.astuple/get_const.verify.cpp index e186514..a920c69 100644 --- a/libcxx/test/std/utilities/utility/pairs/pair.astuple/get_const.compile.fail.cpp +++ b/libcxx/test/std/utilities/utility/pairs/pair.astuple/get_const.verify.cpp @@ -15,17 +15,9 @@ // get(const pair&); #include -#include -int main(int, char**) -{ - { - typedef std::pair P; - const P p(3, 4); - assert(std::get<0>(p) == 3); - assert(std::get<1>(p) == 4); - std::get<0>(p) = 5; - } - - return 0; +void f() { + typedef std::pair P; + const P p(3, 4); + std::get<0>(p) = 5; // expected-error {{cannot assign to return value}} } diff --git a/libcxx/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type3.compile.fail.cpp b/libcxx/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type1.verify.cpp similarity index 70% rename from libcxx/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type3.compile.fail.cpp rename to libcxx/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type1.verify.cpp index 559ff3c..cae19a1 100644 --- a/libcxx/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type3.compile.fail.cpp +++ b/libcxx/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type1.verify.cpp @@ -7,16 +7,12 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++03, c++11 + #include #include -#include - -int main(int, char**) -{ - typedef std::unique_ptr upint; - std::pair t(upint(new int(4)), 23); - upint p = std::get(t); - - return 0; +void f() { + typedef std::complex cf; + auto t1 = std::make_pair(42, 3.4); + (void)std::get(t1); // expected-error {{no matching function for call to 'get'}} } diff --git a/libcxx/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type2.compile.fail.cpp b/libcxx/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type2.verify.cpp similarity index 69% rename from libcxx/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type2.compile.fail.cpp rename to libcxx/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type2.verify.cpp index aa6eaaa..1ba894b 100644 --- a/libcxx/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type2.compile.fail.cpp +++ b/libcxx/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type2.verify.cpp @@ -7,16 +7,12 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++03, c++11 + #include #include -#include - -int main(int, char**) -{ - typedef std::complex cf; - auto t1 = std::make_pair ( 42, 43 ); - assert ( std::get(t1) == 42 ); // two ints - - return 0; +void f() { + typedef std::complex cf; + auto t1 = std::make_pair ( 42, 43 ); + (void)std::get(t1); // expected-error {{call to 'get' is ambiguous}} } diff --git a/libcxx/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type1.compile.fail.cpp b/libcxx/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type3.verify.cpp similarity index 64% rename from libcxx/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type1.compile.fail.cpp rename to libcxx/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type3.verify.cpp index 931ec31..d2d9b67 100644 --- a/libcxx/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type1.compile.fail.cpp +++ b/libcxx/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type3.verify.cpp @@ -7,16 +7,12 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++03, c++11 -#include -#include - -#include -int main(int, char**) -{ - typedef std::complex cf; - auto t1 = std::make_pair ( 42, 3.4 ); - assert (( std::get(t1) == cf {1,2} )); // no such type +#include +#include - return 0; +void f() { + typedef std::unique_ptr Ptr; + std::pair t(Ptr(new int(4)), 23); + Ptr p = std::get(t); // expected-error {{call to implicitly-deleted copy constructor of 'Ptr'}} } diff --git a/libcxx/test/std/utilities/utility/pairs/pair.astuple/tuple_element.fail.cpp b/libcxx/test/std/utilities/utility/pairs/pair.astuple/tuple_element.verify.cpp similarity index 70% rename from libcxx/test/std/utilities/utility/pairs/pair.astuple/tuple_element.fail.cpp rename to libcxx/test/std/utilities/utility/pairs/pair.astuple/tuple_element.verify.cpp index a9a16a4..4f70e9f 100644 --- a/libcxx/test/std/utilities/utility/pairs/pair.astuple/tuple_element.fail.cpp +++ b/libcxx/test/std/utilities/utility/pairs/pair.astuple/tuple_element.verify.cpp @@ -14,10 +14,7 @@ #include -int main(int, char**) -{ - typedef std::pair T; - std::tuple_element<2, T>::type foo; // expected-error@*:* {{Index out of bounds in std::tuple_element>}} - - return 0; +void f() { + typedef std::pair T; + std::tuple_element<2, T>::type foo; // expected-error@*:* {{Index out of bounds in std::tuple_element>}} } diff --git a/libcxx/test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct_t.fail.cpp b/libcxx/test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct_t.verify.cpp similarity index 94% rename from libcxx/test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct_t.fail.cpp rename to libcxx/test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct_t.verify.cpp index 3a7af09..a72a99d 100644 --- a/libcxx/test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct_t.fail.cpp +++ b/libcxx/test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct_t.verify.cpp @@ -17,9 +17,4 @@ #include - std::piecewise_construct_t f() { return {}; } // expected-error 1 {{chosen constructor is explicit in copy-initialization}} - -int main(int, char**) { - return 0; -} diff --git a/libcxx/test/std/utilities/utility/pairs/pairs.pair/default.explicit.fail.cpp b/libcxx/test/std/utilities/utility/pairs/pairs.pair/default.explicit.verify.cpp similarity index 97% rename from libcxx/test/std/utilities/utility/pairs/pairs.pair/default.explicit.fail.cpp rename to libcxx/test/std/utilities/utility/pairs/pairs.pair/default.explicit.verify.cpp index 2c4106f..50a4eb7 100644 --- a/libcxx/test/std/utilities/utility/pairs/pairs.pair/default.explicit.fail.cpp +++ b/libcxx/test/std/utilities/utility/pairs/pairs.pair/default.explicit.verify.cpp @@ -32,7 +32,3 @@ std::pair test1( std::pair test2() { return {}; } // expected-error 1 {{chosen constructor is explicit in copy-initialization}} std::pair test3() { return {}; } // expected-error 1 {{chosen constructor is explicit in copy-initialization}} std::pair test4() { return {}; } - -int main(int, char**) { - return 0; -} diff --git a/libcxx/test/std/utilities/utility/pairs/pairs.pair/not_constexpr_cxx11.fail.cpp b/libcxx/test/std/utilities/utility/pairs/pairs.pair/not_constexpr_cxx11.verify.cpp similarity index 86% rename from libcxx/test/std/utilities/utility/pairs/pairs.pair/not_constexpr_cxx11.fail.cpp rename to libcxx/test/std/utilities/utility/pairs/pairs.pair/not_constexpr_cxx11.verify.cpp index 88d0f96..e994734 100644 --- a/libcxx/test/std/utilities/utility/pairs/pairs.pair/not_constexpr_cxx11.fail.cpp +++ b/libcxx/test/std/utilities/utility/pairs/pairs.pair/not_constexpr_cxx11.verify.cpp @@ -16,19 +16,18 @@ #include struct ExplicitT { - constexpr explicit ExplicitT(int x) : value(x) {} - constexpr explicit ExplicitT(ExplicitT const& o) : value(o.value) {} - int value; + constexpr explicit ExplicitT(int x) : value(x) {} + constexpr explicit ExplicitT(ExplicitT const& o) : value(o.value) {} + int value; }; struct ImplicitT { - constexpr ImplicitT(int x) : value(x) {} - constexpr ImplicitT(ImplicitT const& o) : value(o.value) {} - int value; + constexpr ImplicitT(int x) : value(x) {} + constexpr ImplicitT(ImplicitT const& o) : value(o.value) {} + int value; }; -int main(int, char**) -{ +void f() { { using P = std::pair; constexpr int x = 42; @@ -53,6 +52,4 @@ int main(int, char**) constexpr P U_V = {42, 101}; // expected-error {{must be initialized by a constant expression}} constexpr P pair_U_V = other; // expected-error {{must be initialized by a constant expression}} } - - return 0; } -- 2.7.4