[libcxx-commits] [libcxx] [libc++] XFAIL localized chrono formatter tests on OpenBSD (PR #233774)
via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Oct 20 03:23:37 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libcxx
Author: Brad Smith (brad0)
<details>
<summary>Changes</summary>
OpenBSD's setlocale() accepts fr_FR.UTF-8 and ja_JP.UTF-8, so the
locale.fr_FR.UTF-8 and locale.ja_JP.UTF-8 lit features are enabled,
but only LC_CTYPE is implemented. LC_TIME always behaves as "C", so
the tests expecting French and Japanese day/month names, AM/PM
strings, eras and alternate numerals fail.
---
Full diff: https://github.com/llvm/llvm-project/pull/233774.diff
18 Files Affected:
- (modified) libcxx/test/std/time/time.syn/formatter.day.pass.cpp (+3)
- (modified) libcxx/test/std/time/time.syn/formatter.duration.pass.cpp (+3)
- (modified) libcxx/test/std/time/time.syn/formatter.file_time.pass.cpp (+3)
- (modified) libcxx/test/std/time/time.syn/formatter.hh_mm_ss.pass.cpp (+3)
- (modified) libcxx/test/std/time/time.syn/formatter.local_time.pass.cpp (+3)
- (modified) libcxx/test/std/time/time.syn/formatter.month.pass.cpp (+3)
- (modified) libcxx/test/std/time/time.syn/formatter.month_day.pass.cpp (+3)
- (modified) libcxx/test/std/time/time.syn/formatter.month_day_last.pass.cpp (+3)
- (modified) libcxx/test/std/time/time.syn/formatter.month_weekday.pass.cpp (+3)
- (modified) libcxx/test/std/time/time.syn/formatter.sys_time.pass.cpp (+3)
- (modified) libcxx/test/std/time/time.syn/formatter.weekday.pass.cpp (+3)
- (modified) libcxx/test/std/time/time.syn/formatter.weekday_index.pass.cpp (+3)
- (modified) libcxx/test/std/time/time.syn/formatter.weekday_last.pass.cpp (+3)
- (modified) libcxx/test/std/time/time.syn/formatter.year.pass.cpp (+3)
- (modified) libcxx/test/std/time/time.syn/formatter.year_month.pass.cpp (+3)
- (modified) libcxx/test/std/time/time.syn/formatter.year_month_day.pass.cpp (+3)
- (modified) libcxx/test/std/time/time.syn/formatter.year_month_day_last.pass.cpp (+3)
- (modified) libcxx/test/std/time/time.syn/formatter.year_month_weekday.pass.cpp (+3)
``````````diff
diff --git a/libcxx/test/std/time/time.syn/formatter.day.pass.cpp b/libcxx/test/std/time/time.syn/formatter.day.pass.cpp
index 02dc215d35c532..ddecc629a50e7c 100644
--- a/libcxx/test/std/time/time.syn/formatter.day.pass.cpp
+++ b/libcxx/test/std/time/time.syn/formatter.day.pass.cpp
@@ -16,6 +16,9 @@
// TODO FMT Investigate Windows issues.
// XFAIL: msvc
+// OpenBSD only implements LC_CTYPE, so LC_TIME output in these locales is that of "C".
+// XFAIL: target={{.+}}-openbsd{{.*}}
+
// REQUIRES: locale.fr_FR.UTF-8
// REQUIRES: locale.ja_JP.UTF-8
diff --git a/libcxx/test/std/time/time.syn/formatter.duration.pass.cpp b/libcxx/test/std/time/time.syn/formatter.duration.pass.cpp
index f1f7debed24646..baed260b29baaa 100644
--- a/libcxx/test/std/time/time.syn/formatter.duration.pass.cpp
+++ b/libcxx/test/std/time/time.syn/formatter.duration.pass.cpp
@@ -12,6 +12,9 @@
// XFAIL: availability-fp_to_chars-missing
+// OpenBSD only implements LC_CTYPE, so LC_TIME output in these locales is that of "C".
+// XFAIL: target={{.+}}-openbsd{{.*}}
+
// REQUIRES: locale.fr_FR.UTF-8
// REQUIRES: locale.ja_JP.UTF-8
diff --git a/libcxx/test/std/time/time.syn/formatter.file_time.pass.cpp b/libcxx/test/std/time/time.syn/formatter.file_time.pass.cpp
index 379d2bd9399088..0f1250049c7f8a 100644
--- a/libcxx/test/std/time/time.syn/formatter.file_time.pass.cpp
+++ b/libcxx/test/std/time/time.syn/formatter.file_time.pass.cpp
@@ -13,6 +13,9 @@
// TODO FMT This test should not require std::to_chars(floating-point)
// XFAIL: availability-fp_to_chars-missing
+// OpenBSD only implements LC_CTYPE, so LC_TIME output in these locales is that of "C".
+// XFAIL: target={{.+}}-openbsd{{.*}}
+
// REQUIRES: locale.fr_FR.UTF-8
// REQUIRES: locale.ja_JP.UTF-8
diff --git a/libcxx/test/std/time/time.syn/formatter.hh_mm_ss.pass.cpp b/libcxx/test/std/time/time.syn/formatter.hh_mm_ss.pass.cpp
index bbd9c074bef24c..6c6795daf0b2e2 100644
--- a/libcxx/test/std/time/time.syn/formatter.hh_mm_ss.pass.cpp
+++ b/libcxx/test/std/time/time.syn/formatter.hh_mm_ss.pass.cpp
@@ -12,6 +12,9 @@
// XFAIL: availability-fp_to_chars-missing
+// OpenBSD only implements LC_CTYPE, so LC_TIME output in these locales is that of "C".
+// XFAIL: target={{.+}}-openbsd{{.*}}
+
// REQUIRES: locale.fr_FR.UTF-8
// REQUIRES: locale.ja_JP.UTF-8
diff --git a/libcxx/test/std/time/time.syn/formatter.local_time.pass.cpp b/libcxx/test/std/time/time.syn/formatter.local_time.pass.cpp
index b8e208fef619c2..ec35c6630b99b2 100644
--- a/libcxx/test/std/time/time.syn/formatter.local_time.pass.cpp
+++ b/libcxx/test/std/time/time.syn/formatter.local_time.pass.cpp
@@ -13,6 +13,9 @@
// TODO FMT This test should not require std::to_chars(floating-point)
// XFAIL: availability-fp_to_chars-missing
+// OpenBSD only implements LC_CTYPE, so LC_TIME output in these locales is that of "C".
+// XFAIL: target={{.+}}-openbsd{{.*}}
+
// REQUIRES: locale.fr_FR.UTF-8
// REQUIRES: locale.ja_JP.UTF-8
diff --git a/libcxx/test/std/time/time.syn/formatter.month.pass.cpp b/libcxx/test/std/time/time.syn/formatter.month.pass.cpp
index ea07d7c829816c..7238f55f9864cb 100644
--- a/libcxx/test/std/time/time.syn/formatter.month.pass.cpp
+++ b/libcxx/test/std/time/time.syn/formatter.month.pass.cpp
@@ -13,6 +13,9 @@
// TODO FMT This test should not require std::to_chars(floating-point)
// XFAIL: availability-fp_to_chars-missing
+// OpenBSD only implements LC_CTYPE, so LC_TIME output in these locales is that of "C".
+// XFAIL: target={{.+}}-openbsd{{.*}}
+
// REQUIRES: locale.fr_FR.UTF-8
// REQUIRES: locale.ja_JP.UTF-8
diff --git a/libcxx/test/std/time/time.syn/formatter.month_day.pass.cpp b/libcxx/test/std/time/time.syn/formatter.month_day.pass.cpp
index cfe57d40ab6ebc..0b8840352160ef 100644
--- a/libcxx/test/std/time/time.syn/formatter.month_day.pass.cpp
+++ b/libcxx/test/std/time/time.syn/formatter.month_day.pass.cpp
@@ -16,6 +16,9 @@
// TODO FMT Investigate Windows issues.
// XFAIL: msvc
+// OpenBSD only implements LC_CTYPE, so LC_TIME output in these locales is that of "C".
+// XFAIL: target={{.+}}-openbsd{{.*}}
+
// REQUIRES: locale.fr_FR.UTF-8
// REQUIRES: locale.ja_JP.UTF-8
diff --git a/libcxx/test/std/time/time.syn/formatter.month_day_last.pass.cpp b/libcxx/test/std/time/time.syn/formatter.month_day_last.pass.cpp
index 48b0f8656ec154..5aec62882ef6a2 100644
--- a/libcxx/test/std/time/time.syn/formatter.month_day_last.pass.cpp
+++ b/libcxx/test/std/time/time.syn/formatter.month_day_last.pass.cpp
@@ -13,6 +13,9 @@
// TODO FMT This test should not require std::to_chars(floating-point)
// XFAIL: availability-fp_to_chars-missing
+// OpenBSD only implements LC_CTYPE, so LC_TIME output in these locales is that of "C".
+// XFAIL: target={{.+}}-openbsd{{.*}}
+
// REQUIRES: locale.fr_FR.UTF-8
// REQUIRES: locale.ja_JP.UTF-8
diff --git a/libcxx/test/std/time/time.syn/formatter.month_weekday.pass.cpp b/libcxx/test/std/time/time.syn/formatter.month_weekday.pass.cpp
index 2daf721a668590..30cb8a15685a56 100644
--- a/libcxx/test/std/time/time.syn/formatter.month_weekday.pass.cpp
+++ b/libcxx/test/std/time/time.syn/formatter.month_weekday.pass.cpp
@@ -13,6 +13,9 @@
// TODO FMT This test should not require std::to_chars(floating-point)
// XFAIL: availability-fp_to_chars-missing
+// OpenBSD only implements LC_CTYPE, so LC_TIME output in these locales is that of "C".
+// XFAIL: target={{.+}}-openbsd{{.*}}
+
// REQUIRES: locale.fr_FR.UTF-8
// REQUIRES: locale.ja_JP.UTF-8
diff --git a/libcxx/test/std/time/time.syn/formatter.sys_time.pass.cpp b/libcxx/test/std/time/time.syn/formatter.sys_time.pass.cpp
index 3983dfbff799b1..2f6fed1ce85379 100644
--- a/libcxx/test/std/time/time.syn/formatter.sys_time.pass.cpp
+++ b/libcxx/test/std/time/time.syn/formatter.sys_time.pass.cpp
@@ -13,6 +13,9 @@
// TODO FMT This test should not require std::to_chars(floating-point)
// XFAIL: availability-fp_to_chars-missing
+// OpenBSD only implements LC_CTYPE, so LC_TIME output in these locales is that of "C".
+// XFAIL: target={{.+}}-openbsd{{.*}}
+
// REQUIRES: locale.fr_FR.UTF-8
// REQUIRES: locale.ja_JP.UTF-8
diff --git a/libcxx/test/std/time/time.syn/formatter.weekday.pass.cpp b/libcxx/test/std/time/time.syn/formatter.weekday.pass.cpp
index 0b49d0c36268da..ed71e524493044 100644
--- a/libcxx/test/std/time/time.syn/formatter.weekday.pass.cpp
+++ b/libcxx/test/std/time/time.syn/formatter.weekday.pass.cpp
@@ -16,6 +16,9 @@
// TODO FMT Investigate Windows issues.
// XFAIL: msvc
+// OpenBSD only implements LC_CTYPE, so LC_TIME output in these locales is that of "C".
+// XFAIL: target={{.+}}-openbsd{{.*}}
+
// REQUIRES: locale.fr_FR.UTF-8
// REQUIRES: locale.ja_JP.UTF-8
diff --git a/libcxx/test/std/time/time.syn/formatter.weekday_index.pass.cpp b/libcxx/test/std/time/time.syn/formatter.weekday_index.pass.cpp
index c5c67158ef3c51..b662696bb8fd65 100644
--- a/libcxx/test/std/time/time.syn/formatter.weekday_index.pass.cpp
+++ b/libcxx/test/std/time/time.syn/formatter.weekday_index.pass.cpp
@@ -16,6 +16,9 @@
// TODO FMT Investigate Windows issues.
// XFAIL: msvc
+// OpenBSD only implements LC_CTYPE, so LC_TIME output in these locales is that of "C".
+// XFAIL: target={{.+}}-openbsd{{.*}}
+
// REQUIRES: locale.fr_FR.UTF-8
// REQUIRES: locale.ja_JP.UTF-8
diff --git a/libcxx/test/std/time/time.syn/formatter.weekday_last.pass.cpp b/libcxx/test/std/time/time.syn/formatter.weekday_last.pass.cpp
index 29a75833e3e249..55b937df00698b 100644
--- a/libcxx/test/std/time/time.syn/formatter.weekday_last.pass.cpp
+++ b/libcxx/test/std/time/time.syn/formatter.weekday_last.pass.cpp
@@ -16,6 +16,9 @@
// TODO FMT Investigate Windows issues.
// XFAIL: msvc
+// OpenBSD only implements LC_CTYPE, so LC_TIME output in these locales is that of "C".
+// XFAIL: target={{.+}}-openbsd{{.*}}
+
// REQUIRES: locale.fr_FR.UTF-8
// REQUIRES: locale.ja_JP.UTF-8
diff --git a/libcxx/test/std/time/time.syn/formatter.year.pass.cpp b/libcxx/test/std/time/time.syn/formatter.year.pass.cpp
index e1a7d788f9db11..8defe8e287f2b0 100644
--- a/libcxx/test/std/time/time.syn/formatter.year.pass.cpp
+++ b/libcxx/test/std/time/time.syn/formatter.year.pass.cpp
@@ -13,6 +13,9 @@
// TODO FMT This test should not require std::to_chars(floating-point)
// XFAIL: availability-fp_to_chars-missing
+// OpenBSD only implements LC_CTYPE, so LC_TIME output in these locales is that of "C".
+// XFAIL: target={{.+}}-openbsd{{.*}}
+
// REQUIRES: locale.fr_FR.UTF-8
// REQUIRES: locale.ja_JP.UTF-8
diff --git a/libcxx/test/std/time/time.syn/formatter.year_month.pass.cpp b/libcxx/test/std/time/time.syn/formatter.year_month.pass.cpp
index 26c7f33832cbf3..3c171a82eee5a2 100644
--- a/libcxx/test/std/time/time.syn/formatter.year_month.pass.cpp
+++ b/libcxx/test/std/time/time.syn/formatter.year_month.pass.cpp
@@ -13,6 +13,9 @@
// TODO FMT This test should not require std::to_chars(floating-point)
// XFAIL: availability-fp_to_chars-missing
+// OpenBSD only implements LC_CTYPE, so LC_TIME output in these locales is that of "C".
+// XFAIL: target={{.+}}-openbsd{{.*}}
+
// REQUIRES: locale.fr_FR.UTF-8
// REQUIRES: locale.ja_JP.UTF-8
diff --git a/libcxx/test/std/time/time.syn/formatter.year_month_day.pass.cpp b/libcxx/test/std/time/time.syn/formatter.year_month_day.pass.cpp
index 356e80a9277c2a..98abcab5d4c407 100644
--- a/libcxx/test/std/time/time.syn/formatter.year_month_day.pass.cpp
+++ b/libcxx/test/std/time/time.syn/formatter.year_month_day.pass.cpp
@@ -16,6 +16,9 @@
// TODO FMT Investigate Windows issues.
// XFAIL: msvc
+// OpenBSD only implements LC_CTYPE, so LC_TIME output in these locales is that of "C".
+// XFAIL: target={{.+}}-openbsd{{.*}}
+
// REQUIRES: locale.fr_FR.UTF-8
// REQUIRES: locale.ja_JP.UTF-8
diff --git a/libcxx/test/std/time/time.syn/formatter.year_month_day_last.pass.cpp b/libcxx/test/std/time/time.syn/formatter.year_month_day_last.pass.cpp
index 648c344d29b947..f44076bdf7da3b 100644
--- a/libcxx/test/std/time/time.syn/formatter.year_month_day_last.pass.cpp
+++ b/libcxx/test/std/time/time.syn/formatter.year_month_day_last.pass.cpp
@@ -13,6 +13,9 @@
// TODO FMT This test should not require std::to_chars(floating-point)
// XFAIL: availability-fp_to_chars-missing
+// OpenBSD only implements LC_CTYPE, so LC_TIME output in these locales is that of "C".
+// XFAIL: target={{.+}}-openbsd{{.*}}
+
// REQUIRES: locale.fr_FR.UTF-8
// REQUIRES: locale.ja_JP.UTF-8
diff --git a/libcxx/test/std/time/time.syn/formatter.year_month_weekday.pass.cpp b/libcxx/test/std/time/time.syn/formatter.year_month_weekday.pass.cpp
index 6ea05c9f2a216b..9afa0504234934 100644
--- a/libcxx/test/std/time/time.syn/formatter.year_month_weekday.pass.cpp
+++ b/libcxx/test/std/time/time.syn/formatter.year_month_weekday.pass.cpp
@@ -13,6 +13,9 @@
// TODO FMT This test should not require std::to_chars(floating-point)
// XFAIL: availability-fp_to_chars-missing
+// OpenBSD only implements LC_CTYPE, so LC_TIME output in these locales is that of "C".
+// XFAIL: target={{.+}}-openbsd{{.*}}
+
// REQUIRES: locale.fr_FR.UTF-8
// REQUIRES: locale.ja_JP.UTF-8
``````````
</details>
https://github.com/llvm/llvm-project/pull/233774
More information about the libcxx-commits
mailing list