[libcxx-commits] [libcxx] [libcxx][lit] Fix dsl.sh.py test failure on Windows (PR #195230)

via libcxx-commits libcxx-commits at lists.llvm.org
Fri May 1 00:41:36 PDT 2026


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

>From 95280e2da7ecbf9a0ea7ca0a9fabcc7961cd21c5 Mon Sep 17 00:00:00 2001
From: Haowei Wu <haowei at google.com>
Date: Fri, 1 May 2026 00:01:30 -0700
Subject: [PATCH] [libcxx][lit] Fix dsl.sh.py test failure on Windows

We are seeing linux runtimes test failures on Windows host after
PR #194752 was merged. The runtimes unit test is producing Unix
style line break symbol on Windows, causing dsl.sh.py to fail. This
patch mitigate this issue by converting Windows style line breaks
to Unix style ones to mitigate this issue.
---
 libcxx/test/selftest/dsl/dsl.sh.py | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/libcxx/test/selftest/dsl/dsl.sh.py b/libcxx/test/selftest/dsl/dsl.sh.py
index 95b97fde2dadf..cd3407cff94f2 100644
--- a/libcxx/test/selftest/dsl/dsl.sh.py
+++ b/libcxx/test/selftest/dsl/dsl.sh.py
@@ -143,6 +143,11 @@ def test_link_error_fails(self):
         self.assertFalse(dsl.sourceBuilds(self.config, source))
 
 
+def line_breaks_conversion(origin):
+    if os.linesep == "\r\n":
+        return origin.replace("\r\n", "\n")
+    return origin
+
 class TestProgramOutput(SetupConfigs):
     """
     Tests for libcxx.test.dsl.programOutput
@@ -161,7 +166,8 @@ def test_valid_program_returns_output_newline_handling(self):
         int main(int, char**) { std::printf("FOOBAR\\n"); return 0; }
         """
         self.assertEqual(
-            dsl.programOutput(self.config, source), "FOOBAR%s" % os.linesep
+            line_breaks_conversion(dsl.programOutput(self.config, source)),
+            "FOOBAR\n",
         )
 
     def test_valid_program_returns_no_output(self):
@@ -225,15 +231,15 @@ def test_caching_is_not_too_aggressive(self):
             "%{compile_flags}",
             compileFlags + " -DMACRO=1",
         )
-        output1 = dsl.programOutput(self.config, source)
-        self.assertEqual(output1, "MACRO=1%s" % os.linesep)
+        output1 = line_breaks_conversion(dsl.programOutput(self.config, source))
+        self.assertEqual(output1, "MACRO=1\n")
 
         self.config.substitutions[compileFlagsIndex] = (
             "%{compile_flags}",
             compileFlags + " -DMACRO=2",
         )
-        output2 = dsl.programOutput(self.config, source)
-        self.assertEqual(output2, "MACRO=2%s" % os.linesep)
+        output2 = line_breaks_conversion(dsl.programOutput(self.config, source))
+        self.assertEqual(output2, "MACRO=2\n")
 
     def test_program_stderr_is_not_conflated_with_stdout(self):
         # Run a program that produces stdout output and stderr output too, making



More information about the libcxx-commits mailing list