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());
}
}
}