未验证 提交 cea50ab8 编写于 作者: J Jared Parsons 提交者: GitHub

Merge pull request #27991 from jaredpar/fix-basic7

Enable VB symbols test on CoreClr
......@@ -69,7 +69,7 @@ do
echo Running "${runtime} ${file_name[@]}"
if [[ "${runtime}" == "dotnet" ]]; then
runner="dotnet exec --depsfile ${deps_json} --runtimeconfig ${runtimeconfig_json}"
if [[ "${file_name[@]}" == *'Roslyn.Compilers.CSharp.Emit.UnitTests.dll' ]]
if [[ "${file_name[@]}" == *'Roslyn.Compilers.CSharp.Emit.UnitTests.dll' ]] || [[ "${file_name[@]}" == *'Roslyn.Compilers.VisualBasic.Symbol.UnitTests.dll' ]]
then
echo "Skipping ${file_name[@]}"
continue
......
' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
Imports System.Collections.Immutable
Imports System.Linq
Imports System.Xml.Linq
Imports Microsoft.CodeAnalysis.CodeGen
Imports Microsoft.CodeAnalysis.Emit
Imports Microsoft.CodeAnalysis.Test.Utilities
Imports Microsoft.CodeAnalysis.Text
Imports Roslyn.Test.Utilities
Imports Xunit
Public MustInherit Class BasicTestBase
Inherits CommonTestBase
Protected Overloads Function GetCompilationForEmit(
source As IEnumerable(Of String),
additionalRefs() As MetadataReference,
options As VisualBasicCompilationOptions,
parseOptions As VisualBasicParseOptions
) As VisualBasicCompilation
Return DirectCast(MyClass.GetCompilationForEmit(source, additionalRefs, options, parseOptions), VisualBasicCompilation)
End Function
Public Function XCDataToString(Optional data As XCData = Nothing) As String
Return data?.Value.Replace(vbLf, Environment.NewLine)
End Function
......@@ -203,45 +191,6 @@ Public MustInherit Class BasicTestBase
verify)
End Function
Friend Shadows Function CompileAndVerify(
source As String,
allReferences As IEnumerable(Of MetadataReference),
Optional expectedOutput As String = Nothing,
Optional expectedReturnCode As Integer? = Nothing,
Optional args As String() = Nothing,
Optional dependencies As IEnumerable(Of ModuleData) = Nothing,
Optional sourceSymbolValidator As Action(Of ModuleSymbol) = Nothing,
Optional validator As Action(Of PEAssembly) = Nothing,
Optional symbolValidator As Action(Of ModuleSymbol) = Nothing,
Optional expectedSignatures As SignatureDescription() = Nothing,
Optional options As VisualBasicCompilationOptions = Nothing,
Optional parseOptions As VisualBasicParseOptions = Nothing,
Optional emitOptions As EmitOptions = Nothing,
Optional assemblyName As String = Nothing,
Optional verify As Verification = Verification.Passes
) As CompilationVerifier
If options Is Nothing Then
options = If(expectedOutput Is Nothing, TestOptions.ReleaseDll, TestOptions.ReleaseExe)
End If
Dim compilation = CreateEmptyCompilation(source, allReferences, options, parseOptions, assemblyName)
Return MyBase.CompileAndVerifyCommon(
compilation,
Nothing,
dependencies,
Translate(sourceSymbolValidator),
validator,
Translate(symbolValidator),
expectedSignatures,
expectedOutput,
expectedReturnCode,
args,
emitOptions,
verify)
End Function
Friend Shadows Function CompileAndVerifyOnWin8Only(
source As XElement,
allReferences As IEnumerable(Of MetadataReference),
......@@ -333,6 +282,45 @@ Public MustInherit Class BasicTestBase
useLatestFramework:=useLatestFramework)
End Function
Friend Shadows Function CompileAndVerifyEx(
source As BasicTestSource,
Optional references As IEnumerable(Of MetadataReference) = Nothing,
Optional expectedOutput As String = Nothing,
Optional expectedReturnCode As Integer? = Nothing,
Optional args As String() = Nothing,
Optional dependencies As IEnumerable(Of ModuleData) = Nothing,
Optional sourceSymbolValidator As Action(Of ModuleSymbol) = Nothing,
Optional validator As Action(Of PEAssembly) = Nothing,
Optional symbolValidator As Action(Of ModuleSymbol) = Nothing,
Optional expectedSignatures As SignatureDescription() = Nothing,
Optional options As VisualBasicCompilationOptions = Nothing,
Optional parseOptions As VisualBasicParseOptions = Nothing,
Optional emitOptions As EmitOptions = Nothing,
Optional assemblyName As String = Nothing,
Optional verify As Verification = Verification.Passes,
Optional targetFramework As TargetFramework = TargetFramework.StandardAndVBRuntime
) As CompilationVerifier
If options Is Nothing Then
options = If(expectedOutput Is Nothing, TestOptions.ReleaseDll, TestOptions.ReleaseExe)
End If
Dim compilation = CreateCompilation(source, references, options, parseOptions, targetFramework, assemblyName)
Return MyBase.CompileAndVerifyCommon(
compilation,
Nothing,
dependencies,
Translate(sourceSymbolValidator),
validator,
Translate(symbolValidator),
expectedSignatures,
expectedOutput,
expectedReturnCode,
args,
emitOptions,
verify)
End Function
''' <summary>
''' Compile sources and adds a custom reference using a custom IL
''' </summary>
......
......@@ -7,6 +7,7 @@ Imports Microsoft.CodeAnalysis.Test.Utilities
Imports Microsoft.CodeAnalysis.Test.Utilities.VBInstrumentationChecker
Imports Microsoft.CodeAnalysis.VisualBasic
Imports Microsoft.CodeAnalysis.VisualBasic.UnitTests
Imports Roslyn.Test.Utilities
Namespace Microsoft.CodeAnalysis.VisualBasic.DynamicAnalysis.UnitTests
......@@ -2825,11 +2826,12 @@ True
End Function
Private Overloads Function CompileAndVerify(source As String, Optional expectedOutput As String = Nothing, Optional options As VisualBasicCompilationOptions = Nothing) As CompilationVerifier
Return CompileAndVerify(source,
Return CompileAndVerifyEx(source,
LatestVbReferences,
expectedOutput,
options:=If(options, TestOptions.ReleaseExe).WithDeterministic(True),
emitOptions:=EmitOptions.Default.WithInstrumentationKinds(ImmutableArray.Create(InstrumentationKind.TestCoverage)))
emitOptions:=EmitOptions.Default.WithInstrumentationKinds(ImmutableArray.Create(InstrumentationKind.TestCoverage)),
targetFramework:=TargetFramework.Empty)
End Function
End Class
End Namespace
......@@ -977,7 +977,7 @@ Class C
End Try
End Function
End Class"
Dim v = CompileAndVerify(src, LatestVbReferences, options:=TestOptions.DebugDll)
Dim v = CompileAndVerifyEx(src, references:=LatestVbReferences, options:=TestOptions.DebugDll, targetFramework:=TargetFramework.Empty)
v.VerifyPdb("C+VB$StateMachine_1_M.MoveNext",
<symbols>
......
......@@ -7,9 +7,8 @@
<PlatformTarget>AnyCPU</PlatformTarget>
<OutputType>Library</OutputType>
<AssemblyName>Roslyn.Compilers.VisualBasic.Symbol.UnitTests</AssemblyName>
<TargetFramework>net46</TargetFramework>
<RuntimeIdentifier>$(RoslynDesktopRuntimeIdentifier)</RuntimeIdentifier>
<RoslynProjectType>UnitTest</RoslynProjectType>
<TargetFrameworks>$(RoslynPortableTargetFrameworks)</TargetFrameworks>
<RoslynProjectType>UnitTestPortable</RoslynProjectType>
<RootNamespace></RootNamespace>
</PropertyGroup>
<ItemGroup Label="Project References">
......@@ -24,10 +23,6 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'" />
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
<PackageReference Include="xunit" Version="$(xunitVersion)" />
<PackageReference Include="xunit.analyzers" Version="$(xunitanalyzersVersion)" />
<PackageReference Include="xunit.runner.console" Version="$(xunitrunnerconsoleVersion)" />
......
......@@ -1943,7 +1943,7 @@ AssemblyName
</xml>)
End Sub
<Fact>
<ConditionalFact(GetType(DesktopOnly), Skip:="https://github.com/dotnet/roslyn/issues/18610")>
Public Sub IllegalXmlInDocComment()
CompileCheckDiagnosticsAndXmlDocument(
<compilation name="AssemblyName">
......@@ -1993,7 +1993,7 @@ AssemblyName
</xml>)
End Sub
<Fact>
<ConditionalFact(GetType(DesktopOnly), Skip:="https://github.com/dotnet/roslyn/issues/18610")>
Public Sub IllegalXmlInDocComment_Schema()
CompileCheckDiagnosticsAndXmlDocument(
<compilation name="AssemblyName">
......
......@@ -736,7 +736,8 @@ End Module
#End Region
<Fact, WorkItem(1319, "https://github.com/dotnet/roslyn/issues/1319")>
<WorkItem(1319, "https://github.com/dotnet/roslyn/issues/1319")>
<ConditionalFact(GetType(DesktopOnly), Skip:=ConditionalSkipReason.NetModulesNeedDesktop)>
Public Sub MultipleNetmodulesWithAnonymousTypes()
Dim compilationDef1 =
<compilation>
......
......@@ -1015,7 +1015,8 @@ End interface
GC.KeepAlive(tc7)
End Sub
<Fact(), WorkItem(546735, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/546735")>
<WorkItem(546735, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/546735")>
<ConditionalFact(GetType(DesktopOnly), Skip:=ConditionalSkipReason.NoPiaNeedsDesktop)>
Public Sub Bug16689_1()
Dim ilSource =
<![CDATA[
......@@ -1153,7 +1154,8 @@ Derived
]]>)
End Sub
<Fact(), WorkItem(546735, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/546735")>
<WorkItem(546735, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/546735")>
<ConditionalFact(GetType(DesktopOnly), Skip:=ConditionalSkipReason.NoPiaNeedsDesktop)>
Public Sub Bug16689_3()
Dim i3Def =
......
' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
#If NET46 Then
Imports System.Reflection
Imports Roslyn.Test.Utilities
Imports Roslyn.Test.Utilities.Desktop
......@@ -55,4 +55,4 @@ BC30274: Parameter 'Param' of 'Sub M(Param As Object, Param As Object)' already
End Class
End Namespace
#End if
......@@ -9,7 +9,6 @@ Imports Microsoft.CodeAnalysis.Test.Utilities
Imports Microsoft.CodeAnalysis.VisualBasic.Symbols
Imports Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE
Imports Roslyn.Test.Utilities
Imports Roslyn.Test.Utilities.Desktop
Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests
......@@ -166,7 +165,13 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests
End If
If p.HasExplicitDefaultValue Then
result.Add(<Default><%= p.ExplicitDefaultValue %></Default>)
Dim value = p.ExplicitDefaultValue
If TypeOf value Is Date Then
' The default display of DateTime is different between Desktop and CoreClr hence
' we need to normalize the value here.
value = (CDate(value)).ToString("yyyy-MM-ddTHH:mm:ss")
End If
result.Add(<Default><%= value %></Default>)
End If
' TODO (tomat): add MarshallingInformation
......
......@@ -451,7 +451,7 @@ End Class]]>,
''' </summary>
<WorkItem(546185, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/546185")>
<WorkItem(6190, "https://github.com/dotnet/roslyn/issues/6190")>
<Fact>
<ConditionalFact(GetType(DesktopOnly))>
Public Sub RTSpecialName()
Dim compilation = CompilationUtils.CreateCompilationWithMscorlib40AndVBRuntime(
<compilation>
......
......@@ -3457,7 +3457,7 @@ End Class
CompileAndVerify(compilation).VerifyDiagnostics()
End Sub
<Fact>
<ConditionalFact(GetType(DesktopOnly), Skip:="https://github.com/dotnet/roslyn/issues/27979")>
Public Sub Is_IsNot()
Dim compilationDef =
<compilation name="SimpleTest1">
......@@ -3544,7 +3544,7 @@ True
]]>).VerifyDiagnostics()
End Sub
<Fact>
<ConditionalFact(GetType(DesktopOnly), Skip:="https://github.com/dotnet/roslyn/issues/27979")>
Public Sub BackingFieldToHaveEditorBrowsableNeverAttribute()
Dim compilationDef =
<compilation name="SimpleTest1">
......@@ -3595,7 +3595,7 @@ End Module
Dim verifier = CompileAndVerify(compilation, expectedOutput:="1 Never").VerifyDiagnostics()
End Sub
<Fact>
<ConditionalFact(GetType(DesktopOnly), Skip:="https://github.com/dotnet/roslyn/issues/27979")>
Public Sub Using001()
Dim compilationDef =
<compilation name="SimpleTest1">
......
......@@ -11,6 +11,16 @@
namespace Roslyn.Test.Utilities
{
/// <summary>
/// Container for common skip reasons. Secondary benefit allows us to use find all ref to
/// discover the set of tests affected by a particular scenario.
/// </summary>
public static class ConditionalSkipReason
{
public const string NoPiaNeedsDesktop = "NoPia is only supported on desktop";
public const string NetModulesNeedDesktop = "Net Modules are only supported on desktop";
}
public class ConditionalFactAttribute : FactAttribute
{
public ConditionalFactAttribute(params Type[] skipConditions)
......@@ -103,4 +113,10 @@ public class NoIOperationValidation : ExecutionCondition
public override bool ShouldSkip => !CompilationExtensions.EnableVerifyIOperation;
public override string SkipReason => "Test not supported in TEST_IOPERATION_INTERFACE";
}
public class OSVersionWin8 : ExecutionCondition
{
public override bool ShouldSkip => !OSVersion.IsWin8;
public override string SkipReason => "Window Version is not at least Win8 (build:9200)";
}
}
......@@ -38,7 +38,7 @@ internal static IRuntimeEnvironmentFactory GetRuntimeEnvironmentFactory()
#elif NETCOREAPP2_0
return new Roslyn.Test.Utilities.CoreClr.CoreCLRRuntimeEnvironmentFactory();
#elif NETSTANDARD1_3
throw new NotSupportedException();
throw new PlatformNotSupportedException();
#else
#error Unsupported configuration
#endif
......@@ -61,7 +61,7 @@ internal static string GetAssemblyLocation(Type type)
#if NET46 || NETCOREAPP2_0
return type.GetTypeInfo().Assembly.Location;
#elif NETSTANDARD1_3
throw new NotSupportedException();
throw new PlatformNotSupportedException();
#else
#error Unsupported configuration
#endif
......
......@@ -15,7 +15,7 @@ public static class OSVersion
#if NET46 || NETCOREAPP2_0
System.Environment.OSVersion.Version.Build >= 9200;
#else
throw new InvalidOperationException();
throw new PlatformNotSupportedException();
#endif
}
}
......@@ -59,25 +59,6 @@ public override bool ShouldSkip
public override string SkipReason { get { return "Test currently not supported on Framework 4.5"; } }
}
public class OSVersionWin8 : ExecutionCondition
{
public override bool ShouldSkip
{
get
{
return !OSVersion.IsWin8;
}
}
public override string SkipReason
{
get
{
return "Window Version is not Win8 (build:9200)";
}
}
}
}
#endif
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册