Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/Scripting/CSharpTest/CSharpScriptingTest.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@
</PropertyGroup>
<ItemGroup>
<Compile Include="CommandLineRunnerTests.cs" />
<Compile Include="TestCompilationFactory.cs" />
<Compile Include="InteractiveSessionFixtures.cs" />
<Compile Include="InteractiveSessionTests.cs" />
<Compile Include="ObjectFormatterTests.cs" />
Expand All @@ -77,4 +78,4 @@
<Import Project="..\..\..\build\Targets\VSL.Imports.targets" />
<Import Project="..\..\..\build\Targets\Roslyn.Toolsets.Xunit.targets" />
</ImportGroup>
</Project>
</Project>
19 changes: 6 additions & 13 deletions src/Scripting/CSharpTest/CommandLineRunnerTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@

namespace Microsoft.CodeAnalysis.Scripting.CSharp.UnitTests
{
using static TestCompilationFactory;

public class CommandLineRunnerTests : TestBase
{
private static readonly string CompilerVersion =
Expand Down Expand Up @@ -44,15 +46,6 @@ private static CommandLineRunner CreateRunner(
return new CommandLineRunner(io, compiler, CSharpScriptCompiler.Instance, CSharpObjectFormatter.Instance);
}

private static Compilation CreateLibrary(string assemblyName, string source)
{
return CSharpCompilation.Create(
assemblyName,
new[] { SyntaxFactory.ParseSyntaxTree(source) },
new[] { MscorlibRef },
new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary));
}

[Fact]
public void Await()
{
Expand Down Expand Up @@ -402,16 +395,16 @@ public void ReferenceSearchPaths1()
");

var dir1 = Temp.CreateDirectory();
dir1.CreateFile("1.dll").WriteAllBytes(CreateLibrary("1", "public class C1 {}").EmitToArray());
dir1.CreateFile("1.dll").WriteAllBytes(CreateCompilationWithMscorlib("public class C1 {}", "1").EmitToArray());

var dir2 = Temp.CreateDirectory();
dir2.CreateFile("2.dll").WriteAllBytes(CreateLibrary("2", "public class C2 {}").EmitToArray());
dir2.CreateFile("2.dll").WriteAllBytes(CreateCompilationWithMscorlib("public class C2 {}", "2").EmitToArray());

var dir3 = Temp.CreateDirectory();
dir3.CreateFile("3.dll").WriteAllBytes(CreateLibrary("3", "public class C3 {}").EmitToArray());
dir3.CreateFile("3.dll").WriteAllBytes(CreateCompilationWithMscorlib("public class C3 {}", "3").EmitToArray());

var dir4 = Temp.CreateDirectory();
dir4.CreateFile("4.dll").WriteAllBytes(CreateLibrary("4", "public class C4 {}").EmitToArray());
dir4.CreateFile("4.dll").WriteAllBytes(CreateCompilationWithMscorlib("public class C4 {}", "4").EmitToArray());

var runner = CreateRunner(new[] { "/r:4.dll", $"/lib:{dir1.Path}", $"/libpath:{dir2.Path}", $"/libpaths:{dir3.Path};{dir4.Path}", main.Path });

Expand Down
20 changes: 20 additions & 0 deletions src/Scripting/CSharpTest/InteractiveSessionTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@

namespace Microsoft.CodeAnalysis.Scripting.CSharp.UnitTests
{
using CodeAnalysis.Test.Utilities;
using static TestCompilationFactory;

public class HostModel
{
public readonly int Foo;
Expand Down Expand Up @@ -1151,6 +1154,23 @@ public void ReferenceDirective_RelativeToBaseRoot()
script.GetCompilation().VerifyDiagnostics();
}

[Fact(Skip = "https://github.com/dotnet/roslyn/issues/6015")]
public void UsingExternalAliasesForHiding()
{
string source = @"
namespace N { public class C { } }
public class D { }
public class E { }
";

var libRef = CreateCompilationWithMscorlib(source, "lib").EmitToImageReference();

var script = CSharpScript.Create(@"new C()",
ScriptOptions.Default.WithReferences(libRef.WithAliases(new[] { "Hidden" })).WithImports("Hidden::N"));

script.Build().Verify();
}

#endregion

#region UsingDeclarations
Expand Down
20 changes: 20 additions & 0 deletions src/Scripting/CSharpTest/TestCompilationFactory.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.

using Microsoft.CodeAnalysis.CSharp;

namespace Microsoft.CodeAnalysis.Scripting
{
internal static class TestCompilationFactory
{
// TODO: we need to clean up and refactor CreateCompilationWithMscorlib in compiler tests
// so that it can be used in portable tests.
internal static Compilation CreateCompilationWithMscorlib(string source, string assemblyName)
{
return CSharpCompilation.Create(
assemblyName,
new[] { SyntaxFactory.ParseSyntaxTree(source) },
new[] { TestReferences.NetFx.v4_0_30319.mscorlib },
new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary));
}
}
}