提交 4c191221 编写于 作者: J Jared Parsons

Fix places where Console.WriteLine was not properly wrapped

上级 4cb1ebc2
......@@ -41,7 +41,7 @@ public class InteractiveSessionTests : TestBase
#region Namespaces, Types
[Fact]
public void CompilationChain_NestedTypesClass()
public async Task CompilationChain_NestedTypesClass()
{
var script = CSharpScript.Create(@"
static string outerStr = null;
......@@ -60,13 +60,13 @@ class InnerClass
using (var redirect = new OutputRedirect(CultureInfo.InvariantCulture))
{
script.RunAsync().Wait();
await script.RunAsync();
Assert.Equal("test", redirect.Output.Trim());
}
}
[Fact]
public void CompilationChain_NestedTypesStruct()
public async Task CompilationChain_NestedTypesStruct()
{
var script = CSharpScript.Create(@"
static string outerStr = null;
......@@ -85,13 +85,13 @@ struct InnerStruct
using (var redirect = new OutputRedirect(CultureInfo.InvariantCulture))
{
script.RunAsync().Wait();
await script.RunAsync();
Assert.Equal("test", redirect.Output.Trim());
}
}
[Fact]
public void CompilationChain_InterfaceTypes()
public async Task CompilationChain_InterfaceTypes()
{
var script = CSharpScript.Create(@"
interface I1 { int Goo();}
......@@ -104,7 +104,7 @@ class InnerClass : I1
iC.Goo()
");
Assert.Equal(1, script.EvaluateAsync().Result);
Assert.Equal(1, await script.EvaluateAsync());
}
[Fact]
......
......@@ -10,6 +10,7 @@
using Roslyn.Utilities;
using Xunit;
using System.IO;
using System.Globalization;
namespace Microsoft.CodeAnalysis.CSharp.Scripting.UnitTests
{
......@@ -92,8 +93,11 @@ public async Task TestRunScriptWithSpecifiedReturnType()
[Fact]
public async Task TestRunVoidScript()
{
var state = await CSharpScript.RunAsync("System.Console.WriteLine(0);");
Assert.Null(state.ReturnValue);
using (var redirect = new OutputRedirect(CultureInfo.InvariantCulture))
{
var state = await CSharpScript.RunAsync("System.Console.WriteLine(0);");
Assert.Null(state.ReturnValue);
}
}
[WorkItem(5279, "https://github.com/dotnet/roslyn/issues/5279")]
......@@ -332,9 +336,12 @@ public async Task ReturnIntAsObject()
[Fact]
public async Task NoReturn()
{
var script = CSharpScript.Create<object>("System.Console.WriteLine();");
var result = await script.EvaluateAsync();
Assert.Null(result);
using (var redirect = new OutputRedirect(CultureInfo.InvariantCulture))
{
var script = CSharpScript.Create<object>("System.Console.WriteLine();");
var result = await script.EvaluateAsync();
Assert.Null(result);
}
}
[Fact]
......@@ -378,8 +385,12 @@ public async Task ReturnInNestedScopeWithTrailingVoidExpression()
return 1;
}
System.Console.WriteLine();");
result = await script.EvaluateAsync();
Assert.Equal(1, result);
using (var redirect = new OutputRedirect(CultureInfo.InvariantCulture))
{
result = await script.EvaluateAsync();
Assert.Equal(1, result);
}
}
[Fact]
......@@ -402,8 +413,12 @@ public async Task ReturnInNestedScopeWithTrailingVoidExpressionAsInt()
return 1;
}
System.Console.WriteLine()");
result = await script.EvaluateAsync();
Assert.Equal(0, result);
using (var redirect = new OutputRedirect(CultureInfo.InvariantCulture))
{
result = await script.EvaluateAsync();
Assert.Equal(0, result);
}
}
[Fact]
......@@ -514,24 +529,27 @@ public async Task ReturnInLoadedFileTrailingExpression()
[Fact]
public async Task ReturnInLoadedFileTrailingVoidExpression()
{
var resolver = TestSourceReferenceResolver.Create(
KeyValuePair.Create("a.csx", @"
using (var redirect = new OutputRedirect(CultureInfo.InvariantCulture))
{
var resolver = TestSourceReferenceResolver.Create(
KeyValuePair.Create("a.csx", @"
if (false)
{
return 1;
}
System.Console.WriteLine(42)"));
var options = ScriptOptions.Default.WithSourceResolver(resolver);
var options = ScriptOptions.Default.WithSourceResolver(resolver);
var script = CSharpScript.Create("#load \"a.csx\"", options);
var result = await script.EvaluateAsync();
Assert.Null(result);
var script = CSharpScript.Create("#load \"a.csx\"", options);
var result = await script.EvaluateAsync();
Assert.Null(result);
script = CSharpScript.Create(@"
script = CSharpScript.Create(@"
#load ""a.csx""
2", options);
result = await script.EvaluateAsync();
Assert.Equal(2, result);
result = await script.EvaluateAsync();
Assert.Equal(2, result);
}
}
[Fact]
......@@ -676,7 +694,10 @@ public async Task StreamWithOffset()
var resolver = new StreamOffsetResolver();
var options = ScriptOptions.Default.WithSourceResolver(resolver);
var script = CSharpScript.Create(@"#load ""a.csx""", options);
await script.EvaluateAsync();
using (var redirect = new OutputRedirect(CultureInfo.InvariantCulture))
{
await script.EvaluateAsync();
}
}
private class StreamOffsetResolver : SourceReferenceResolver
......
......@@ -5,7 +5,7 @@
namespace Microsoft.CodeAnalysis.Scripting
{
public struct OutputRedirect : IDisposable
public sealed class OutputRedirect : IDisposable
{
private readonly TextWriter _oldOut;
private readonly StringWriter _newOut;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册