[libcxx-commits] [libcxx] [RFC][libc++][test] Improves C++ Standard filtering. (PR #89499)
Mark de Wever via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Nov 26 08:31:25 PST 2024
https://github.com/mordante updated https://github.com/llvm/llvm-project/pull/89499
>From 36d446fba2e3d9dfe12de946e16c18460abd52d9 Mon Sep 17 00:00:00 2001
From: Mark de Wever <koraq at xs4all.nl>
Date: Fri, 19 Apr 2024 20:31:19 +0200
Subject: [PATCH] [RFC][libc++][test] Improves C++ Standard filtering.
This is a proof-of-concept how we could improve the C++ language filtering
in lit. There will be a Discourse post for adding feedback on the
approach.
---
.../iostream.format/print.fun/includes.compile.pass.cpp | 2 +-
.../iostream.format/print.fun/no_file_description.pass.cpp | 2 +-
libcxx/test/std/localization/locale.stdcvt/depr.verify.cpp | 2 +-
.../conversions/conversions.buffer/depr.verify.cpp | 3 ++-
.../conversions/conversions.string/depr.verify.cpp | 2 +-
.../string.capacity/reserve.deprecated_in_cxx20.verify.cpp | 2 +-
libcxx/utils/libcxx/test/params.py | 4 +++-
7 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/libcxx/test/std/input.output/iostream.format/print.fun/includes.compile.pass.cpp b/libcxx/test/std/input.output/iostream.format/print.fun/includes.compile.pass.cpp
index 34eff101d730aa..b1406b75d23728 100644
--- a/libcxx/test/std/input.output/iostream.format/print.fun/includes.compile.pass.cpp
+++ b/libcxx/test/std/input.output/iostream.format/print.fun/includes.compile.pass.cpp
@@ -5,7 +5,7 @@
//
//===----------------------------------------------------------------------===//
-// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
+// REQUIRES: standard-ge-c++23
// UNSUPPORTED: no-filesystem
// UNSUPPORTED: GCC-ALWAYS_INLINE-FIXME
diff --git a/libcxx/test/std/input.output/iostream.format/print.fun/no_file_description.pass.cpp b/libcxx/test/std/input.output/iostream.format/print.fun/no_file_description.pass.cpp
index ffa48c5e745d65..b985d18e2e4af6 100644
--- a/libcxx/test/std/input.output/iostream.format/print.fun/no_file_description.pass.cpp
+++ b/libcxx/test/std/input.output/iostream.format/print.fun/no_file_description.pass.cpp
@@ -5,7 +5,7 @@
//
//===----------------------------------------------------------------------===//
-// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
+// UNSUPPORTED: standard-le-c++20
// UNSUPPORTED: no-filesystem
// UNSUPPORTED: GCC-ALWAYS_INLINE-FIXME
diff --git a/libcxx/test/std/localization/locale.stdcvt/depr.verify.cpp b/libcxx/test/std/localization/locale.stdcvt/depr.verify.cpp
index b3c6fc8674f8a2..b02d4de8c17c5c 100644
--- a/libcxx/test/std/localization/locale.stdcvt/depr.verify.cpp
+++ b/libcxx/test/std/localization/locale.stdcvt/depr.verify.cpp
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-// UNSUPPORTED: c++03, c++11, c++14, c++26
+// UNSUPPORTED: standard-le-c++14, standard-ge-c++26
// UNSUPPORTED: no-wide-characters
// <codecvt>
diff --git a/libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/depr.verify.cpp b/libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/depr.verify.cpp
index cb067e99a4764b..325f3d24c3ae28 100644
--- a/libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/depr.verify.cpp
+++ b/libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/depr.verify.cpp
@@ -6,7 +6,8 @@
//
//===----------------------------------------------------------------------===//
-// UNSUPPORTED: c++03, c++11, c++14, c++26
+// REQUIRES: standard-ge-c++17
+// UNSUPPORTED: standard-ge-c++26
// XFAIL: no-wide-characters
diff --git a/libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/depr.verify.cpp b/libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/depr.verify.cpp
index f8bd156bdd5f6a..3b6d751e44e308 100644
--- a/libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/depr.verify.cpp
+++ b/libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/depr.verify.cpp
@@ -8,7 +8,7 @@
// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_ENABLE_CXX26_REMOVED_WSTRING_CONVERT
-// UNSUPPORTED: c++03, c++11, c++14, c++26
+// UNSUPPORTED: standard-le-c++14, standard-ge-c++26
// UNSUPPORTED: no-wide-characters
// <codecvt>
diff --git a/libcxx/test/std/strings/basic.string/string.capacity/reserve.deprecated_in_cxx20.verify.cpp b/libcxx/test/std/strings/basic.string/string.capacity/reserve.deprecated_in_cxx20.verify.cpp
index 81edd9b83d184d..ea3753d194620b 100644
--- a/libcxx/test/std/strings/basic.string/string.capacity/reserve.deprecated_in_cxx20.verify.cpp
+++ b/libcxx/test/std/strings/basic.string/string.capacity/reserve.deprecated_in_cxx20.verify.cpp
@@ -10,7 +10,7 @@
// void reserve(); // Deprecated in C++20
-// UNSUPPORTED: c++03, c++11, c++14, c++17, c++26
+// UNSUPPORTED: standard-le-c++17, standard-ge-c++26
#include <string>
diff --git a/libcxx/utils/libcxx/test/params.py b/libcxx/utils/libcxx/test/params.py
index c2d294e49f4884..1481051008f9b9 100644
--- a/libcxx/utils/libcxx/test/params.py
+++ b/libcxx/utils/libcxx/test/params.py
@@ -169,7 +169,9 @@ def getSuitableClangTidy(cfg):
AddFeature(std),
AddSubstitution("%{cxx_std}", re.sub(r"\+", "x", std)),
AddCompileFlag(lambda cfg: getStdFlag(cfg, std)),
- ],
+ ]
+ + [AddFeature(f"standard-ge-{s}") for s in _allStandards if s <= std]
+ + [AddFeature(f"standard-le-{s}") for s in _allStandards if s >= std],
),
Parameter(
name="optimization",
More information about the libcxx-commits
mailing list