提交 fbcb7b45 编写于 作者: J John Hamby

Some tests now build, but nothing passes yet.

上级 d25f19f8
......@@ -134,7 +134,6 @@
<Compile Include="CodeGen\SwitchTests.cs" />
<Compile Include="CodeGen\UnsafeTests.cs" />
<Compile Include="CodeGen\WinMdDelegateTests.cs" />
<Compile Include="Emit\DynamicAnalysis\DynamicAnalysisDataReader.cs" />
<Compile Include="Emit\DynamicAnalysis\DynamicAnalysisResourceTests.cs" />
<Compile Include="Emit\CompilationEmitTests.cs" />
<Compile Include="Emit\DeterministicTests.cs" />
......
......@@ -93,7 +93,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
_emittingPdb = emittingPdb
_filterOpt = filter
If emittingPdb Then
If emittingPdb OrElse moduleBeingBuiltOpt?.EmitOptions.EmitDynamicAnalysisData Then
_debugDocumentProvider = Function(path As String, basePath As String) moduleBeingBuiltOpt.GetOrAddDebugDocument(path, basePath, AddressOf CreateDebugDocumentForFile)
End If
......
......@@ -81,7 +81,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
' payload = Instrumentation.CreatePayload(mvid, methodIndex, PID.PayloadRootField(methodIndex), payloadLength)
' End If
Dim payloadInitialization As BoundStatement = _factory.Assignment(_factory.Local(_methodPayload, False), _factory.ArrayAccess(_factory.InstrumentationPayloadRoot(analysisKind, modulePayloadType), False, ImmutableArray.Create(_factory.MethodDefIndex(_method))))
Dim payloadInitialization As BoundStatement = _factory.Assignment(_factory.Local(_methodPayload, True), _factory.ArrayAccess(_factory.InstrumentationPayloadRoot(analysisKind, modulePayloadType), False, ImmutableArray.Create(_factory.MethodDefIndex(_method))))
Dim mvid As BoundExpression = _factory.ModuleVersionId()
Dim methodToken As BoundExpression = _factory.MethodDefIndex(_method)
Dim payloadSlot As BoundExpression = _factory.ArrayAccess(_factory.InstrumentationPayloadRoot(analysisKind, modulePayloadType), False, ImmutableArray.Create(_factory.MethodDefIndex(_method)))
......
......@@ -15,71 +15,71 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.DynamicAnalysis.UnitTests
Public Class DynamicAnalysisResourceTests
Inherits BasicTestBase
ReadOnly InstrumentationHelperSource As Xml.Linq.XElement = <compilation>
<file name="c.vb">
ReadOnly InstrumentationHelperSource As Xml.Linq.XElement = <file name="a.vb">
<![CDATA[
namespace Microsoft.CodeAnalysis.Runtime
{
public static class Instrumentation
{
public static bool[] CreatePayload(System.Guid mvid, int methodToken, ref bool[] payload, int payloadLength)
{
return payload;
}
public static void FlushPayload()
{
}
}
}
Namespace Microsoft.CodeAnalysis.Runtime
Public Class Instrumentation
Public Shared Function CreatePayload(mvid As System.Guid, methodToken As Integer, ByRef payload As Boolean(), payloadLength As Integer) As Boolean()
Return payload
End Function
Public Shared Sub FlushPayload()
End Sub
End Class
End Namespace
]]>
</file>
</compilation>
ReadOnly ExampleSource As Xml.Linq.XElement = <compilation>
<file name="c.vb">
ReadOnly ExampleSource As Xml.Linq.XElement = <file name="c.vb">
<![CDATA[
using System;
Imports System
public class C
{
public static void Main()
{
Console.WriteLine(123);
Console.WriteLine(123);
}
Public Class C
Public Shared Sub Main()
Console.WriteLine(123)
Console.WriteLine(123)
End Sub
public static int Fred => 3;
Public Shared Function Fred As Integer
Return 3
End Function
public static int Barney(int x) => x;
Public Shared Function Barney(x As Integer)
Return x
End Function
public static int Wilma
{
get { return 12; }
set { }
}
Public Shared Property Wilma As Integer
Get
Return 12
End Get
Set
End Set
End Property
public static int Betty { get; }
}
Public Shared ReadOnly Property Betty As Integer
End Class
]]>
</file>
</compilation>
#If False Then
#If True Then
<Fact>
Public Sub TestSpansPresentInResource()
Dim c = CreateCompilationWithMscorlib(Parse(ExampleSource + InstrumentationHelperSource, @"C:\myproject\doc1.vb"))
Dim source As Xml.Linq.XElement = <compilation></compilation>
source.Add(InstrumentationHelperSource)
source.Add(ExampleSource)
Dim c = CompilationUtils.CreateCompilationWithMscorlibAndVBRuntime(source)
Dim peImage = c.EmitToArray(EmitOptions.Default.WithInstrument("Test.Flag"))
Dim PEReader As New PEReader(peImage)
Dim reader = DynamicAnalysisDataReader.TryCreateFromPE(PEReader, "<DynamicAnalysisData>")
VerifyDocuments(reader, reader.Documents,
@"'C:\myproject\doc1.cs' 87-3F-1A-28-F7-34-C9-43-19-00-ED-0F-8F-2F-0D-EB-DD-32-D4-8E (SHA1)")
"'C:\myproject\doc1.cs' 87-3F-1A-28-F7-34-C9-43-19-00-ED-0F-8F-2F-0D-EB-DD-32-D4-8E (SHA1)")
Assert.Equal(10, reader.Methods.Length)
VerifySpans(reader, reader.Methods(z), ' Main
VerifySpans(reader, reader.Methods(0), ' Main
"(5,4)-(9,5)",
"(7,8)-(7,31)",
"(8,8)-(8,31)")
......@@ -88,7 +88,7 @@ public class C
"(11,4)-(11,32)",
"(11,30)-(11,31)")
VerifySpans(reader, reader.Method([2), ' Barney
VerifySpans(reader, reader.Methods(2), ' Barney
"(13,4)-(13,41)",
"(13,39)-(13,40)")
......@@ -108,7 +108,11 @@ public class C
<Fact>
Public Sub TestDynamicAnalysisResourceMissingWhenInstrumentationFlagIsDisabled()
Dim c = CreateCompilationWithMscorlib(Parse(ExampleSource + InstrumentationHelperSource, @"C:\myproject\doc1.vb"))
Dim source As Xml.Linq.XElement = <compilation></compilation>
source.Add(InstrumentationHelperSource)
source.Add(ExampleSource)
Dim c = CompilationUtils.CreateCompilationWithMscorlibAndVBRuntime(source)
Dim peImage = c.EmitToArray(EmitOptions.Default)
Dim PEReader As New PEReader(peImage)
......@@ -117,7 +121,7 @@ public class C
Assert.Null(reader)
End Sub
Private Shared Sub VerifySpans(reader As DynamicAnalysisDataReader, methoData As DynamicAnalysisMethod, ParamArray expected As String())
Private Shared Sub VerifySpans(reader As DynamicAnalysisDataReader, methodData As DynamicAnalysisMethod, ParamArray expected As String())
AssertEx.Equal(expected, reader.GetSpans(methodData.Blob).Select(Function(s) $"({s.StartLine},{s.StartColumn})-({s.EndLine},{s.EndColumn})"))
End Sub
......
......@@ -51,6 +51,7 @@
<Compile Include="$(MSBuildThisFileDirectory)FX\RegexExtensions.cs" />
<Compile Include="$(MSBuildThisFileDirectory)FX\StringExtensions.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Metadata\CustomAttributeRow.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Metadata\DynamicAnalysisDataReader.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Metadata\EncValidation.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Metadata\ILBuilderVisualizer.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Metadata\MetadataReaderUtils.cs" />
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册