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..0bf8aab3b092a1 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, or if the struct was default-initialized. + /// + /// 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 15a6d65249e197..e3dbe46775bbbd 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) + { + ProcessOutputLine line = new(content, standardError: false); + Assert.Equal(content, line.ToString()); + + ProcessOutputLine errorLine = new(content, standardError: true); + Assert.Equal(content, errorLine.ToString()); + } + + [Fact] + public void ProcessOutputLine_Default_ToString_ReturnsEmpty() + { + ProcessOutputLine line = default; + Assert.Equal(string.Empty, line.ToString()); + } } }