From 79f2cadbe90d285f6cd2aa5772cfe822136231fe Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 19 May 2026 08:27:52 +0000 Subject: [PATCH 1/4] Initial plan From 845e7de5b6d0b3a73e52c1823081f55f78625136 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 19 May 2026 08:52:23 +0000 Subject: [PATCH 2/4] Override ProcessOutputLine.ToString() to return Content Agent-Logs-Url: https://github.com/dotnet/runtime/sessions/e307eeed-5d89-42ae-b7a7-bc9ca029caaa Co-authored-by: adamsitnik <6011991+adamsitnik@users.noreply.github.com> --- .../ref/System.Diagnostics.Process.cs | 1 + .../System/Diagnostics/ProcessOutputLine.cs | 6 ++++++ .../tests/ProcessStreamingTests.cs | 20 +++++++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/src/libraries/System.Diagnostics.Process/ref/System.Diagnostics.Process.cs b/src/libraries/System.Diagnostics.Process/ref/System.Diagnostics.Process.cs index ea07d694f7c2b7..1294bc9accf1c0 100644 --- a/src/libraries/System.Diagnostics.Process/ref/System.Diagnostics.Process.cs +++ b/src/libraries/System.Diagnostics.Process/ref/System.Diagnostics.Process.cs @@ -285,6 +285,7 @@ public readonly partial struct ProcessOutputLine public ProcessOutputLine(string content, bool standardError) { throw null; } public string Content { get { throw null; } } public bool StandardError { get { throw null; } } + public override string ToString() { throw null; } } public enum ProcessPriorityClass { diff --git a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessOutputLine.cs b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessOutputLine.cs index c8d9d9ad39bc2f..d4f1a11f5c78ea 100644 --- a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessOutputLine.cs +++ b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessOutputLine.cs @@ -35,5 +35,11 @@ public ProcessOutputLine(string content, bool standardError) /// otherwise, . /// public bool StandardError { get; } + + /// + /// Returns the text content of the output line. + /// + /// The value of . + public override string ToString() => Content; } } diff --git a/src/libraries/System.Diagnostics.Process/tests/ProcessStreamingTests.cs b/src/libraries/System.Diagnostics.Process/tests/ProcessStreamingTests.cs index 15a6d65249e197..420c30593aac1c 100644 --- a/src/libraries/System.Diagnostics.Process/tests/ProcessStreamingTests.cs +++ b/src/libraries/System.Diagnostics.Process/tests/ProcessStreamingTests.cs @@ -694,5 +694,25 @@ private Process StartLinePrintingProcess(string stdOutText, string stdErrText) return (capturedOutput, capturedError); } + + [Theory] + [InlineData("hello")] + [InlineData("")] + [InlineData("line with spaces")] + public void ProcessOutputLine_ToString_ReturnsContent(string content) + { + var line = new ProcessOutputLine(content, standardError: false); + Assert.Equal(content, line.ToString()); + + var errorLine = new ProcessOutputLine(content, standardError: true); + Assert.Equal(content, errorLine.ToString()); + } + + [Fact] + public void ProcessOutputLine_Default_ToString_ReturnsNull() + { + ProcessOutputLine line = default; + Assert.Null(line.ToString()); + } } } From c5ee6dd4f5625b969ea883583a78f21fa64cd50f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 19 May 2026 13:14:30 +0000 Subject: [PATCH 3/4] Use explicit type instead of var in ProcessOutputLine tests Agent-Logs-Url: https://github.com/dotnet/runtime/sessions/2df5bc28-d920-4c80-8a65-1221ed53310e Co-authored-by: adamsitnik <6011991+adamsitnik@users.noreply.github.com> --- .../System.Diagnostics.Process/tests/ProcessStreamingTests.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libraries/System.Diagnostics.Process/tests/ProcessStreamingTests.cs b/src/libraries/System.Diagnostics.Process/tests/ProcessStreamingTests.cs index 420c30593aac1c..9b5bf31a8d333c 100644 --- a/src/libraries/System.Diagnostics.Process/tests/ProcessStreamingTests.cs +++ b/src/libraries/System.Diagnostics.Process/tests/ProcessStreamingTests.cs @@ -701,10 +701,10 @@ private Process StartLinePrintingProcess(string stdOutText, string stdErrText) [InlineData("line with spaces")] public void ProcessOutputLine_ToString_ReturnsContent(string content) { - var line = new ProcessOutputLine(content, standardError: false); + ProcessOutputLine line = new(content, standardError: false); Assert.Equal(content, line.ToString()); - var errorLine = new ProcessOutputLine(content, standardError: true); + ProcessOutputLine errorLine = new(content, standardError: true); Assert.Equal(content, errorLine.ToString()); } From 77c030b8e8fcae0543a3d774179f64f15050a571 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 19 May 2026 13:28:58 +0000 Subject: [PATCH 4/4] Fix ToString() to return string.Empty instead of null for default struct Agent-Logs-Url: https://github.com/dotnet/runtime/sessions/8e21291c-96b8-472e-9cba-a227421ce26f Co-authored-by: adamsitnik <6011991+adamsitnik@users.noreply.github.com> --- .../src/System/Diagnostics/ProcessOutputLine.cs | 6 +++--- .../tests/ProcessStreamingTests.cs | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessOutputLine.cs b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessOutputLine.cs index d4f1a11f5c78ea..0bf8aab3b092a1 100644 --- a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessOutputLine.cs +++ b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessOutputLine.cs @@ -37,9 +37,9 @@ public ProcessOutputLine(string content, bool standardError) public bool StandardError { get; } /// - /// Returns the text content of the output line. + /// Returns the text content of the output line, or if the struct was default-initialized. /// - /// The value of . - public override string ToString() => Content; + /// The value of , or if is . + public override string ToString() => Content ?? string.Empty; } } diff --git a/src/libraries/System.Diagnostics.Process/tests/ProcessStreamingTests.cs b/src/libraries/System.Diagnostics.Process/tests/ProcessStreamingTests.cs index 9b5bf31a8d333c..e3dbe46775bbbd 100644 --- a/src/libraries/System.Diagnostics.Process/tests/ProcessStreamingTests.cs +++ b/src/libraries/System.Diagnostics.Process/tests/ProcessStreamingTests.cs @@ -709,10 +709,10 @@ public void ProcessOutputLine_ToString_ReturnsContent(string content) } [Fact] - public void ProcessOutputLine_Default_ToString_ReturnsNull() + public void ProcessOutputLine_Default_ToString_ReturnsEmpty() { ProcessOutputLine line = default; - Assert.Null(line.ToString()); + Assert.Equal(string.Empty, line.ToString()); } } }