[libcxx-commits] [libcxx] [libc++] Make .verify.cpp tests more robust against changing headers (PR #128703)
via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Feb 25 09:03:11 PST 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libcxx
Author: Nikolas Klauser (philnik777)
<details>
<summary>Changes</summary>
This is fixes the tests for the frozen headers, but is an improvement either way.
---
Full diff: https://github.com/llvm/llvm-project/pull/128703.diff
11 Files Affected:
- (modified) libcxx/test/libcxx/atomics/atomics.syn/compatible_with_stdatomic.compile.pass.cpp (-2)
- (modified) libcxx/test/libcxx/input.output/file.streams/fstreams/filebuf/traits_mismatch.verify.cpp (+2-12)
- (modified) libcxx/test/libcxx/input.output/file.streams/fstreams/traits_mismatch.verify.cpp (+2-4)
- (modified) libcxx/test/libcxx/input.output/iostream.format/input.streams/traits_mismatch.verify.cpp (+2-4)
- (modified) libcxx/test/libcxx/input.output/iostream.format/output.streams/traits_mismatch.verify.cpp (+1-3)
- (modified) libcxx/test/libcxx/input.output/string.streams/traits_mismatch.verify.cpp (+3-9)
- (modified) libcxx/test/std/containers/sequences/array/array.fill/fill.verify.cpp (+1-3)
- (modified) libcxx/test/std/containers/sequences/array/array.swap/swap.verify.cpp (+1-3)
- (modified) libcxx/test/std/containers/sequences/array/array.tuple/get.verify.cpp (+1-3)
- (modified) libcxx/test/std/containers/sequences/array/array.tuple/tuple_element.verify.cpp (+1-3)
- (modified) libcxx/test/std/strings/basic.string/char.bad.verify.cpp (+3-5)
``````````diff
diff --git a/libcxx/test/libcxx/atomics/atomics.syn/compatible_with_stdatomic.compile.pass.cpp b/libcxx/test/libcxx/atomics/atomics.syn/compatible_with_stdatomic.compile.pass.cpp
index 30e9672a25683..349dc51aaa0e6 100644
--- a/libcxx/test/libcxx/atomics/atomics.syn/compatible_with_stdatomic.compile.pass.cpp
+++ b/libcxx/test/libcxx/atomics/atomics.syn/compatible_with_stdatomic.compile.pass.cpp
@@ -9,8 +9,6 @@
// UNSUPPORTED: no-threads
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
-// XFAIL: FROZEN-CXX03-HEADERS-FIXME
-
// This test verifies that <stdatomic.h> redirects to <atomic>.
// Before C++23, <stdatomic.h> can be included after <atomic>, but including it
diff --git a/libcxx/test/libcxx/input.output/file.streams/fstreams/filebuf/traits_mismatch.verify.cpp b/libcxx/test/libcxx/input.output/file.streams/fstreams/filebuf/traits_mismatch.verify.cpp
index 37ab176ea26a0..455c9979ae57d 100644
--- a/libcxx/test/libcxx/input.output/file.streams/fstreams/filebuf/traits_mismatch.verify.cpp
+++ b/libcxx/test/libcxx/input.output/file.streams/fstreams/filebuf/traits_mismatch.verify.cpp
@@ -15,18 +15,8 @@
// UNSUPPORTED: no-wide-characters
-// XFAIL: FROZEN-CXX03-HEADERS-FIXME
-
#include <fstream>
std::basic_filebuf<char, std::char_traits<wchar_t> > f;
-// expected-error-re at streambuf:* {{static assertion failed{{.*}}traits_type::char_type must be the same type as CharT}}
-// expected-error at fstream:* {{only virtual member functions can be marked 'override'}}
-// expected-error at fstream:* {{only virtual member functions can be marked 'override'}}
-// expected-error at fstream:* {{only virtual member functions can be marked 'override'}}
-// expected-error at fstream:* {{only virtual member functions can be marked 'override'}}
-// expected-error at fstream:* {{only virtual member functions can be marked 'override'}}
-// expected-error at fstream:* {{only virtual member functions can be marked 'override'}}
-// expected-error at fstream:* {{only virtual member functions can be marked 'override'}}
-// expected-error at fstream:* {{only virtual member functions can be marked 'override'}}
-// expected-error at fstream:* {{only virtual member functions can be marked 'override'}}
+// expected-error-re@*:* {{static assertion failed{{.*}}traits_type::char_type must be the same type as CharT}}
+// expected-error@*:* 9 {{only virtual member functions can be marked 'override'}}
diff --git a/libcxx/test/libcxx/input.output/file.streams/fstreams/traits_mismatch.verify.cpp b/libcxx/test/libcxx/input.output/file.streams/fstreams/traits_mismatch.verify.cpp
index f936d8db47af5..cc52cc119d50e 100644
--- a/libcxx/test/libcxx/input.output/file.streams/fstreams/traits_mismatch.verify.cpp
+++ b/libcxx/test/libcxx/input.output/file.streams/fstreams/traits_mismatch.verify.cpp
@@ -15,13 +15,11 @@
// UNSUPPORTED: no-wide-characters
-// XFAIL: FROZEN-CXX03-HEADERS-FIXME
-
#include <fstream>
std::basic_fstream<char, std::char_traits<wchar_t> > f;
-// expected-error-re at ios:* {{static assertion failed{{.*}}traits_type::char_type must be the same type as CharT}}
-// expected-error-re at streambuf:* {{static assertion failed{{.*}}traits_type::char_type must be the same type as CharT}}
+// expected-error-re@*:* {{static assertion failed{{.*}}traits_type::char_type must be the same type as CharT}}
+// expected-error-re@*:* {{static assertion failed{{.*}}traits_type::char_type must be the same type as CharT}}
// expected-error@*:* 11 {{only virtual member functions can be marked 'override'}}
diff --git a/libcxx/test/libcxx/input.output/iostream.format/input.streams/traits_mismatch.verify.cpp b/libcxx/test/libcxx/input.output/iostream.format/input.streams/traits_mismatch.verify.cpp
index 7d713ed581631..a03aed123c03c 100644
--- a/libcxx/test/libcxx/input.output/iostream.format/input.streams/traits_mismatch.verify.cpp
+++ b/libcxx/test/libcxx/input.output/iostream.format/input.streams/traits_mismatch.verify.cpp
@@ -15,13 +15,11 @@
// UNSUPPORTED: no-wide-characters
-// XFAIL: FROZEN-CXX03-HEADERS-FIXME
-
#include <istream>
#include <string>
struct test_istream
: public std::basic_istream<char, std::char_traits<wchar_t> > {};
-// expected-error-re at ios:* {{static assertion failed{{.*}}traits_type::char_type must be the same type as CharT}}
-// expected-error at istream:* {{only virtual member functions can be marked 'override'}}
+// expected-error-re@*:* {{static assertion failed{{.*}}traits_type::char_type must be the same type as CharT}}
+// expected-error@*:* {{only virtual member functions can be marked 'override'}}
diff --git a/libcxx/test/libcxx/input.output/iostream.format/output.streams/traits_mismatch.verify.cpp b/libcxx/test/libcxx/input.output/iostream.format/output.streams/traits_mismatch.verify.cpp
index 445ddd1eb9e42..9e7bc998eb91c 100644
--- a/libcxx/test/libcxx/input.output/iostream.format/output.streams/traits_mismatch.verify.cpp
+++ b/libcxx/test/libcxx/input.output/iostream.format/output.streams/traits_mismatch.verify.cpp
@@ -15,13 +15,11 @@
// UNSUPPORTED: no-wide-characters
-// XFAIL: FROZEN-CXX03-HEADERS-FIXME
-
#include <ostream>
#include <string>
struct test_ostream
: public std::basic_ostream<char, std::char_traits<wchar_t> > {};
-// expected-error-re at ios:* {{static assertion failed{{.*}}traits_type::char_type must be the same type as CharT}}
+// expected-error-re@*:* {{static assertion failed{{.*}}traits_type::char_type must be the same type as CharT}}
// expected-error@*:* {{only virtual member functions can be marked 'override'}}
diff --git a/libcxx/test/libcxx/input.output/string.streams/traits_mismatch.verify.cpp b/libcxx/test/libcxx/input.output/string.streams/traits_mismatch.verify.cpp
index 89dc884c5da12..36f3222c3a7ac 100644
--- a/libcxx/test/libcxx/input.output/string.streams/traits_mismatch.verify.cpp
+++ b/libcxx/test/libcxx/input.output/string.streams/traits_mismatch.verify.cpp
@@ -16,16 +16,10 @@
// UNSUPPORTED: no-wide-characters
-// XFAIL: FROZEN-CXX03-HEADERS-FIXME
-
#include <sstream>
std::basic_stringbuf<char, std::char_traits<wchar_t> > sb;
-// expected-error-re at streambuf:* {{static assertion failed{{.*}}traits_type::char_type must be the same type as CharT}}
-// expected-error-re at string:* {{static assertion failed{{.*}}traits_type::char_type must be the same type as CharT}}
+// expected-error-re@*:* {{static assertion failed{{.*}}traits_type::char_type must be the same type as CharT}}
+// expected-error-re@*:* {{static assertion failed{{.*}}traits_type::char_type must be the same type as CharT}}
-// expected-error at sstream:* {{only virtual member functions can be marked 'override'}}
-// expected-error at sstream:* {{only virtual member functions can be marked 'override'}}
-// expected-error at sstream:* {{only virtual member functions can be marked 'override'}}
-// expected-error at sstream:* {{only virtual member functions can be marked 'override'}}
-// expected-error at sstream:* {{only virtual member functions can be marked 'override'}}
+// expected-error@*:* 5 {{only virtual member functions can be marked 'override'}}
diff --git a/libcxx/test/std/containers/sequences/array/array.fill/fill.verify.cpp b/libcxx/test/std/containers/sequences/array/array.fill/fill.verify.cpp
index d82d0d6249b00..199081677c1a7 100644
--- a/libcxx/test/std/containers/sequences/array/array.fill/fill.verify.cpp
+++ b/libcxx/test/std/containers/sequences/array/array.fill/fill.verify.cpp
@@ -10,8 +10,6 @@
// void fill(const T& u);
-// XFAIL: FROZEN-CXX03-HEADERS-FIXME
-
#include <array>
#include <cassert>
@@ -20,7 +18,7 @@ int main(int, char**) {
typedef double T;
typedef std::array<const T, 0> C;
C c = {};
- // expected-error-re at array:* {{static assertion failed{{.*}}cannot fill zero-sized array of type 'const T'}}
+ // expected-error-re@*:* {{static assertion failed{{.*}}cannot fill zero-sized array of type 'const T'}}
c.fill(5.5); // expected-note {{requested here}}
}
diff --git a/libcxx/test/std/containers/sequences/array/array.swap/swap.verify.cpp b/libcxx/test/std/containers/sequences/array/array.swap/swap.verify.cpp
index 4d0ee390726ca..337815c6a73f2 100644
--- a/libcxx/test/std/containers/sequences/array/array.swap/swap.verify.cpp
+++ b/libcxx/test/std/containers/sequences/array/array.swap/swap.verify.cpp
@@ -10,8 +10,6 @@
// void swap(array& a);
-// XFAIL: FROZEN-CXX03-HEADERS-FIXME
-
#include <array>
#include <cassert>
@@ -21,7 +19,7 @@ int main(int, char**) {
typedef std::array<const T, 0> C;
C c = {};
C c2 = {};
- // expected-error-re at array:* {{static assertion failed{{.*}}cannot swap zero-sized array of type 'const T'}}
+ // expected-error-re@*:* {{static assertion failed{{.*}}cannot swap zero-sized array of type 'const T'}}
c.swap(c2); // expected-note {{requested here}}
}
diff --git a/libcxx/test/std/containers/sequences/array/array.tuple/get.verify.cpp b/libcxx/test/std/containers/sequences/array/array.tuple/get.verify.cpp
index 169f06f44e19c..02368314f17a8 100644
--- a/libcxx/test/std/containers/sequences/array/array.tuple/get.verify.cpp
+++ b/libcxx/test/std/containers/sequences/array/array.tuple/get.verify.cpp
@@ -10,8 +10,6 @@
// template <size_t I, class T, size_t N> T& get(array<T, N>& a);
-// XFAIL: FROZEN-CXX03-HEADERS-FIXME
-
// Prevent -Warray-bounds from issuing a diagnostic when testing with clang verify.
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-array-bounds
@@ -23,5 +21,5 @@ void f() {
typedef std::array<T, 3> C;
C c = {1, 2, 3.5};
std::get<3>(c) = 5.5; // expected-note {{requested here}}
- // expected-error-re at array:* {{static assertion failed{{( due to requirement '3U[L]{0,2} < 3U[L]{0,2}')?}}{{.*}}Index out of bounds in std::get<> (std::array)}}
+ // expected-error-re@*:* {{static assertion failed{{( due to requirement '3U[L]{0,2} < 3U[L]{0,2}')?}}{{.*}}Index out of bounds in std::get<> (std::array)}}
}
diff --git a/libcxx/test/std/containers/sequences/array/array.tuple/tuple_element.verify.cpp b/libcxx/test/std/containers/sequences/array/array.tuple/tuple_element.verify.cpp
index b5c852225e7df..fad333e7f5c44 100644
--- a/libcxx/test/std/containers/sequences/array/array.tuple/tuple_element.verify.cpp
+++ b/libcxx/test/std/containers/sequences/array/array.tuple/tuple_element.verify.cpp
@@ -10,12 +10,10 @@
// tuple_element<I, array<T, N> >::type
-// XFAIL: FROZEN-CXX03-HEADERS-FIXME
-
#include <array>
#include <cassert>
typedef double T;
typedef std::array<T, 3> C;
std::tuple_element<3, C> foo; // expected-note {{requested here}}
-// expected-error-re at array:* {{static assertion failed{{( due to requirement '3U[L]{0,2} < 3U[L]{0,2}')?}}{{.*}}Index out of bounds in std::tuple_element<> (std::array)}}
+// expected-error-re@*:* {{static assertion failed{{( due to requirement '3U[L]{0,2} < 3U[L]{0,2}')?}}{{.*}}Index out of bounds in std::tuple_element<> (std::array)}}
diff --git a/libcxx/test/std/strings/basic.string/char.bad.verify.cpp b/libcxx/test/std/strings/basic.string/char.bad.verify.cpp
index c206c1ce8df45..557604b415de3 100644
--- a/libcxx/test/std/strings/basic.string/char.bad.verify.cpp
+++ b/libcxx/test/std/strings/basic.string/char.bad.verify.cpp
@@ -9,8 +9,6 @@
// <string>
// ... manipulating sequences of any non-array trivial standard-layout types.
-// XFAIL: FROZEN-CXX03-HEADERS-FIXME
-
#include <string>
#include "test_traits.h"
@@ -35,20 +33,20 @@ void f() {
typedef char C[3];
static_assert(std::is_array<C>::value, "");
std::basic_string<C, test_traits<C> > s;
- // expected-error-re at string:* {{static assertion failed{{.*}}Character type of basic_string must not be an array}}
+ // expected-error-re@*:* {{static assertion failed{{.*}}Character type of basic_string must not be an array}}
}
{
// not trivial
static_assert(!std::is_trivial<NotTrivial>::value, "");
std::basic_string<NotTrivial, test_traits<NotTrivial> > s;
- // expected-error-re at string:* {{static assertion failed{{.*}}Character type of basic_string must be trivial}}
+ // expected-error-re@*:* {{static assertion failed{{.*}}Character type of basic_string must be trivial}}
}
{
// not standard layout
static_assert(!std::is_standard_layout<NotStandardLayout>::value, "");
std::basic_string<NotStandardLayout, test_traits<NotStandardLayout> > s;
- // expected-error-re at string:* {{static assertion failed{{.*}}Character type of basic_string must be standard-layout}}
+ // expected-error-re@*:* {{static assertion failed{{.*}}Character type of basic_string must be standard-layout}}
}
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/128703
More information about the libcxx-commits
mailing list