[libcxx-commits] [libcxx] [libcxx][lit] Fixing libcxx test failures on Windows (PR #194752)

via libcxx-commits libcxx-commits at lists.llvm.org
Tue Apr 28 19:46:05 PDT 2026


https://github.com/zeroomega updated https://github.com/llvm/llvm-project/pull/194752

>From 64ec78fd1cb77525a4e1d977d3d29cc98d800313 Mon Sep 17 00:00:00 2001
From: Haowei Wu <haowei at google.com>
Date: Tue, 28 Apr 2026 16:04:12 -0700
Subject: [PATCH] [libcxx][lit] Fixing libcxx test failures on Windows

PR #194368 changed how line breaks are handles on Windows and
it broke several libcxx tests on Windows, including
libcxx/test/std/localization/locale.categories/facet.numpunct/
locale.numpunct.byname/thousands_sep.pass.cpp
This patch addresses this issue.
---
 libcxx/test/selftest/dsl/dsl.sh.py                | 6 +++---
 libcxx/utils/libcxx/test/features/localization.py | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/libcxx/test/selftest/dsl/dsl.sh.py b/libcxx/test/selftest/dsl/dsl.sh.py
index c35a3bb6a48a4..488d23f106057 100644
--- a/libcxx/test/selftest/dsl/dsl.sh.py
+++ b/libcxx/test/selftest/dsl/dsl.sh.py
@@ -160,7 +160,7 @@ def test_valid_program_returns_output_newline_handling(self):
         #include <cstdio>
         int main(int, char**) { std::printf("FOOBAR\\n"); return 0; }
         """
-        self.assertEqual(dsl.programOutput(self.config, source), "FOOBAR\n")
+        self.assertEqual(dsl.programOutput(self.config, source), "FOOBAR%s" % os.linesep)
 
     def test_valid_program_returns_no_output(self):
         source = """
@@ -224,14 +224,14 @@ def test_caching_is_not_too_aggressive(self):
             compileFlags + " -DMACRO=1",
         )
         output1 = dsl.programOutput(self.config, source)
-        self.assertEqual(output1, "MACRO=1\n")
+        self.assertEqual(output1, "MACRO=1%s" % os.linesep)
 
         self.config.substitutions[compileFlagsIndex] = (
             "%{compile_flags}",
             compileFlags + " -DMACRO=2",
         )
         output2 = dsl.programOutput(self.config, source)
-        self.assertEqual(output2, "MACRO=2\n")
+        self.assertEqual(output2, "MACRO=2%s" % os.linesep)
 
     def test_program_stderr_is_not_conflated_with_stdout(self):
         # Run a program that produces stdout output and stderr output too, making
diff --git a/libcxx/utils/libcxx/test/features/localization.py b/libcxx/utils/libcxx/test/features/localization.py
index 88e240798d271..95e1bb5c1afa4 100644
--- a/libcxx/utils/libcxx/test/features/localization.py
+++ b/libcxx/utils/libcxx/test/features/localization.py
@@ -144,5 +144,5 @@ def _getLocaleFlagsAction(cfg, locale, alts, members):
             f"%{{LOCALE_CONV_{valid_define_name}_{member.upper()}}}",
             lambda cfg, value=value: f"'L\"{value}\"'",
         )
-        for member, value in zip(members, localeconv_info.split("\n"))
+        for member, value in zip(members, localeconv_info.splitlines())
     ]



More information about the libcxx-commits mailing list