[libcxx-commits] [libcxx] [libc++][NFC] Refactor `std::array`'s `verify.cpp` tests (PR #173455)
via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Dec 23 21:51:07 PST 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libcxx
Author: Hristo Hristov (H-G-Hristov)
<details>
<summary>Changes</summary>
This came up in a review previously: replaces `main()` in some `verify.cpp` tests.
---
Full diff: https://github.com/llvm/llvm-project/pull/173455.diff
7 Files Affected:
- (modified) libcxx/test/std/containers/sequences/array/array.cons/deduct.verify.cpp (+3-4)
- (modified) libcxx/test/std/containers/sequences/array/array.creation/to_array.verify.cpp (+3-4)
- (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 (+7-11)
- (modified) libcxx/test/std/containers/sequences/array/array.tuple/get.verify.cpp (+1-1)
- (modified) libcxx/test/std/containers/sequences/array/compare.verify.cpp (+1-3)
- (modified) libcxx/test/std/containers/sequences/array/empty.verify.cpp (+3-3)
``````````diff
diff --git a/libcxx/test/std/containers/sequences/array/array.cons/deduct.verify.cpp b/libcxx/test/std/containers/sequences/array/array.cons/deduct.verify.cpp
index 92dac11501185..96bed04adfbea 100644
--- a/libcxx/test/std/containers/sequences/array/array.cons/deduct.verify.cpp
+++ b/libcxx/test/std/containers/sequences/array/array.cons/deduct.verify.cpp
@@ -6,8 +6,9 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: std-at-least-c++17
+
// <array>
-// UNSUPPORTED: c++03, c++11, c++14
// template <class T, class... U>
// array(T, U...) -> array<T, 1 + sizeof...(U)>;
@@ -20,11 +21,9 @@
#include "test_macros.h"
-int main(int, char**) {
+void test() {
{
std::array arr{1, 2, 3L};
// expected-error-re at -1 {{no viable constructor or deduction guide for deduction of template arguments of '{{(std::)?}}array'}}
}
-
- return 0;
}
diff --git a/libcxx/test/std/containers/sequences/array/array.creation/to_array.verify.cpp b/libcxx/test/std/containers/sequences/array/array.creation/to_array.verify.cpp
index ee8d8e6cfb2e5..65315dc79d31f 100644
--- a/libcxx/test/std/containers/sequences/array/array.creation/to_array.verify.cpp
+++ b/libcxx/test/std/containers/sequences/array/array.creation/to_array.verify.cpp
@@ -6,8 +6,9 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: std-at-least-c++20
+
// <array>
-// UNSUPPORTED: c++03, c++11, c++14, c++17
#include <array>
@@ -16,7 +17,7 @@
// expected-warning at array:* 0-1 {{suggest braces around initialization of subobject}}
-int main(int, char**) {
+void test() {
{
char source[3][6] = {"hi", "world"};
// expected-error at array:* {{to_array does not accept multidimensional arrays}}
@@ -38,6 +39,4 @@ int main(int, char**) {
// expected-error-re at array:* 0-1{{{{(call to implicitly-deleted copy constructor of 'MoveOnly')|(call to deleted constructor of 'MoveOnly')}}}}
(void)std::to_array(std::move(cmo)); // expected-note {{requested here}}
}
-
- return 0;
}
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 199081677c1a7..99dd4fa36d89a 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
@@ -13,7 +13,7 @@
#include <array>
#include <cassert>
-int main(int, char**) {
+void test() {
{
typedef double T;
typedef std::array<const T, 0> C;
@@ -21,6 +21,4 @@ int main(int, char**) {
// expected-error-re@*:* {{static assertion failed{{.*}}cannot fill zero-sized array of type 'const T'}}
c.fill(5.5); // expected-note {{requested here}}
}
-
- return 0;
}
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 337815c6a73f2..2a898d23493ef 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
@@ -13,15 +13,11 @@
#include <array>
#include <cassert>
-int main(int, char**) {
- {
- typedef double T;
- typedef std::array<const T, 0> C;
- C c = {};
- C c2 = {};
- // expected-error-re@*:* {{static assertion failed{{.*}}cannot swap zero-sized array of type 'const T'}}
- c.swap(c2); // expected-note {{requested here}}
- }
-
- return 0;
+void test() {
+ typedef double T;
+ typedef std::array<const T, 0> C;
+ C c = {};
+ C c2 = {};
+ // 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 02368314f17a8..78054e8a12b68 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
@@ -16,7 +16,7 @@
#include <array>
#include <cassert>
-void f() {
+void test() {
typedef double T;
typedef std::array<T, 3> C;
C c = {1, 2, 3.5};
diff --git a/libcxx/test/std/containers/sequences/array/compare.verify.cpp b/libcxx/test/std/containers/sequences/array/compare.verify.cpp
index 4b001601a4fe2..c49f83e2e1f2c 100644
--- a/libcxx/test/std/containers/sequences/array/compare.verify.cpp
+++ b/libcxx/test/std/containers/sequences/array/compare.verify.cpp
@@ -28,7 +28,7 @@
template <int>
struct NoCompare {};
-int main(int, char**) {
+void test() {
{
typedef NoCompare<0> T;
typedef std::array<T, 3> C;
@@ -53,6 +53,4 @@ int main(int, char**) {
TEST_IGNORE_NODISCARD(c1 == c1);
TEST_IGNORE_NODISCARD(c1 < c1);
}
-
- return 0;
}
diff --git a/libcxx/test/std/containers/sequences/array/empty.verify.cpp b/libcxx/test/std/containers/sequences/array/empty.verify.cpp
index 2fc821e08a106..2eaa184ca9b6c 100644
--- a/libcxx/test/std/containers/sequences/array/empty.verify.cpp
+++ b/libcxx/test/std/containers/sequences/array/empty.verify.cpp
@@ -6,17 +6,17 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: std-at-least-c++20
+
// <array>
// class array
// bool empty() const noexcept;
-// UNSUPPORTED: c++03, c++11, c++14, c++17
-
#include <array>
-void f() {
+void test() {
std::array<int, 1> c;
c.empty(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
std::array<int, 0> c0;
``````````
</details>
https://github.com/llvm/llvm-project/pull/173455
More information about the libcxx-commits
mailing list