Skip to content

Commit fe8d465

Browse files
authored
Merge pull request #857 from adamralph/stdin-encoding
use specified encoding for standard input
2 parents c8c4c2b + c998ae0 commit fe8d465

3 files changed

Lines changed: 19 additions & 3 deletions

File tree

SimpleExec/ProcessStartInfo.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public static System.Diagnostics.ProcessStartInfo Create(
2020
Arguments = args,
2121
WorkingDirectory = workingDirectory,
2222
StandardErrorEncoding = encoding,
23+
StandardInputEncoding = encoding,
2324
StandardOutputEncoding = encoding,
2425
CreateNoWindow = createNoWindow,
2526
RedirectStandardError = redirectStandardStreams,

SimpleExecTester/Program.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ public static int Main(string[] args)
88
{
99
if (args.Contains("unicode"))
1010
{
11+
Console.InputEncoding = Encoding.Unicode;
1112
Console.OutputEncoding = Encoding.Unicode;
12-
args = [.. args, "Pi (\u03a0)",];
13+
args = [.. args, "Pi (\u03a0) output",];
1314
}
1415

1516
Console.Out.WriteLine($"Arg count: {args.Length}");

SimpleExecTests/ReadingCommands.cs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,22 @@ public static async Task ReadingAUnicodeCommandAsync(bool largeOutput)
6767
var (standardOutput, standardError) = await Command.ReadAsync("dotnet", $"exec {Tester.Path} hello world unicode" + (largeOutput ? " large" : ""), encoding: new UnicodeEncoding(), ct: Ct);
6868

6969
// assert
70-
Assert.Contains("Pi (\u03a0)", standardOutput, StringComparison.Ordinal);
71-
Assert.Contains("Pi (\u03a0)", standardError, StringComparison.Ordinal);
70+
Assert.Contains("Pi (\u03a0) output", standardOutput, StringComparison.Ordinal);
71+
Assert.Contains("Pi (\u03a0) output", standardError, StringComparison.Ordinal);
72+
}
73+
74+
[Theory]
75+
[InlineData(false)]
76+
[InlineData(true)]
77+
public static async Task ReadingAUnicodeCommandWithInputAsync(bool largeOutput)
78+
{
79+
// act
80+
var (standardOutput, standardError) = await Command.ReadAsync("dotnet", $"exec {Tester.Path} hello world unicode in" + (largeOutput ? " large" : ""), encoding: new UnicodeEncoding(), standardInput: "Pi (\u03a0) input", ct: Ct);
81+
82+
// assert
83+
Assert.Contains("Pi (\u03a0) input", standardOutput, StringComparison.Ordinal);
84+
Assert.Contains("Pi (\u03a0) output", standardOutput, StringComparison.Ordinal);
85+
Assert.Contains("Pi (\u03a0) output", standardError, StringComparison.Ordinal);
7286
}
7387

7488
[Fact]

0 commit comments

Comments
 (0)