diff --git a/eng/Subsets.props b/eng/Subsets.props index c66fbd778f175a..5033fa1bb0f124 100644 --- a/eng/Subsets.props +++ b/eng/Subsets.props @@ -524,11 +524,12 @@ + $(SharedNativeRoot)managed\cdac\Microsoft.Diagnostics.DataContractReader.Contracts\Microsoft.Diagnostics.DataContractReader.Contracts.csproj; + $(SharedNativeRoot)managed\cdac\tests\TestInfrastructure\Microsoft.Diagnostics.DataContractReader.TestInfrastructure.csproj" Category="tools" Condition="'$(DotNetBuildSourceOnly)' != 'true'" /> - + diff --git a/src/native/managed/cdac/README.md b/src/native/managed/cdac/README.md index e4759d127270bc..94f3e4aa861fd1 100644 --- a/src/native/managed/cdac/README.md +++ b/src/native/managed/cdac/README.md @@ -119,7 +119,7 @@ Use the `dotnet.sh` (or `dotnet.cmd`) script in the repo root: ```bash ./dotnet.sh build /t:Test \ - src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests.csproj \ + src/native/managed/cdac/tests/UnitTests/Microsoft.Diagnostics.DataContractReader.Tests.csproj \ -c Debug -p:RuntimeConfiguration=Debug -p:LibrariesConfiguration=Release ``` diff --git a/src/native/managed/cdac/cdac.slnx b/src/native/managed/cdac/cdac.slnx index 2e2020b40a6393..9828e862cc3cb6 100644 --- a/src/native/managed/cdac/cdac.slnx +++ b/src/native/managed/cdac/cdac.slnx @@ -13,7 +13,8 @@ - + + diff --git a/src/native/managed/cdac/tests/DumpTests/AsyncContinuationDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/AsyncContinuationDumpTests.cs index 762fa88293b002..14731f6418bf92 100644 --- a/src/native/managed/cdac/tests/DumpTests/AsyncContinuationDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/AsyncContinuationDumpTests.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/CCWDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/CCWDumpTests.cs index 6e08d149c42639..bfa5069716f41a 100644 --- a/src/native/managed/cdac/tests/DumpTests/CCWDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/CCWDumpTests.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/CodeHeapListDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/CodeHeapListDumpTests.cs index 45dac6e66a07ed..5d50e7fc619d96 100644 --- a/src/native/managed/cdac/tests/DumpTests/CodeHeapListDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/CodeHeapListDumpTests.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/ComWrappersDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/ComWrappersDumpTests.cs index 51475936a7468d..0e53c68d1f7056 100644 --- a/src/native/managed/cdac/tests/DumpTests/ComWrappersDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/ComWrappersDumpTests.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiAppDomainDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiAppDomainDumpTests.cs index 3e98dfc0308c49..376c60525c102d 100644 --- a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiAppDomainDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiAppDomainDumpTests.cs @@ -3,6 +3,7 @@ using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiCCWDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiCCWDumpTests.cs index 82ac243be2518f..af14669cd4e5e3 100644 --- a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiCCWDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiCCWDumpTests.cs @@ -5,6 +5,7 @@ using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Microsoft.DotNet.XUnitExtensions; using Xunit; diff --git a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiComWrappersDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiComWrappersDumpTests.cs index 02e1ade17bfca9..18ca20946ff679 100644 --- a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiComWrappersDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiComWrappersDumpTests.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Microsoft.DotNet.XUnitExtensions; using Xunit; diff --git a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiDebuggerDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiDebuggerDumpTests.cs index c6f43f88fe2f34..380fc93d04ec20 100644 --- a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiDebuggerDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiDebuggerDumpTests.cs @@ -3,6 +3,7 @@ using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiExactTypeHandleDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiExactTypeHandleDumpTests.cs index a11f6e6ca54563..ee1e39bf5e03eb 100644 --- a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiExactTypeHandleDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiExactTypeHandleDumpTests.cs @@ -4,6 +4,7 @@ using System; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Microsoft.DotNet.XUnitExtensions; using Xunit; diff --git a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiGCDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiGCDumpTests.cs index 6ce8b3c91f69bc..5665d0c4cd22ef 100644 --- a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiGCDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiGCDumpTests.cs @@ -3,6 +3,7 @@ using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiHeapWalkDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiHeapWalkDumpTests.cs index 80820c6a2b5113..ae010f8b8f55df 100644 --- a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiHeapWalkDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiHeapWalkDumpTests.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiLoaderDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiLoaderDumpTests.cs index 2e0be2ffbefd91..5f4313d4d1d8f2 100644 --- a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiLoaderDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiLoaderDumpTests.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiMultiModuleDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiMultiModuleDumpTests.cs index 3fda2f72d21b0c..6067e6bd60604d 100644 --- a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiMultiModuleDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiMultiModuleDumpTests.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiObjectDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiObjectDumpTests.cs index 1ca6f2a9ec1154..2234831a29e1e2 100644 --- a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiObjectDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiObjectDumpTests.cs @@ -2,8 +2,9 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Linq; -using Microsoft.Diagnostics.DataContractReader.Legacy; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Microsoft.DotNet.XUnitExtensions; using Xunit; diff --git a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiRCWDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiRCWDumpTests.cs index c3958e5318f49c..8b553d971d8ca5 100644 --- a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiRCWDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiRCWDumpTests.cs @@ -3,6 +3,7 @@ using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Microsoft.DotNet.XUnitExtensions; using Xunit; diff --git a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiStackWalkDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiStackWalkDumpTests.cs index 5c4da0ac1aada4..bc6661cde0f49e 100644 --- a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiStackWalkDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiStackWalkDumpTests.cs @@ -5,6 +5,7 @@ using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Contracts.StackWalkHelpers; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; @@ -114,8 +115,7 @@ public unsafe void IsLeafFrame_FalseForNonLeafContext(TestConfiguration config) IStackWalk sw = Target.Contracts.StackWalk; // Find a frame whose SP+IP differs from the leaf context - byte[]? nonLeafContext = sw.CreateStackWalk(crashingThread) - .Where(ClrDataStackWalk.IsLegacyVisible) + byte[]? nonLeafContext = DumpTestStackWalker.LegacyVisibleFrames(sw, crashingThread) .Select(sw.GetRawContext) .FirstOrDefault(ctx => { diff --git a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiThreadDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiThreadDumpTests.cs index 0d6fe70b6a29b0..a583ce67a22d8c 100644 --- a/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiThreadDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiThreadDumpTests.cs @@ -5,6 +5,7 @@ using System.Runtime.InteropServices; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Microsoft.DotNet.XUnitExtensions; using Xunit; diff --git a/src/native/managed/cdac/tests/DumpTests/EcmaMetadataDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/EcmaMetadataDumpTests.cs index 189c697a04d4ad..278c58aeb53da4 100644 --- a/src/native/managed/cdac/tests/DumpTests/EcmaMetadataDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/EcmaMetadataDumpTests.cs @@ -3,6 +3,7 @@ using System.Reflection.Metadata; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/ExceptionHandlingInfoDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/ExceptionHandlingInfoDumpTests.cs index a8645b488bbc98..4827b972534b0a 100644 --- a/src/native/managed/cdac/tests/DumpTests/ExceptionHandlingInfoDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/ExceptionHandlingInfoDumpTests.cs @@ -5,6 +5,7 @@ using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; @@ -35,7 +36,7 @@ private CodeBlockHandle FindCrashMethodCodeBlock() ThreadData crashingThread = DumpTestHelpers.FindFailFastThread(Target); - foreach (IStackDataFrameHandle frame in stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible)) + foreach (IStackDataFrameHandle frame in DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread)) { TargetPointer methodDescPtr = stackWalk.GetMethodDescPtr(frame); string? name = DumpTestHelpers.GetMethodName(Target, methodDescPtr); diff --git a/src/native/managed/cdac/tests/DumpTests/ISOSDacInterface13Tests.cs b/src/native/managed/cdac/tests/DumpTests/ISOSDacInterface13Tests.cs index d4022249f04eb2..997d5d2d73e21f 100644 --- a/src/native/managed/cdac/tests/DumpTests/ISOSDacInterface13Tests.cs +++ b/src/native/managed/cdac/tests/DumpTests/ISOSDacInterface13Tests.cs @@ -3,8 +3,9 @@ using System.Runtime.InteropServices; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; -using static Microsoft.Diagnostics.DataContractReader.Tests.TestHelpers; +using static Microsoft.Diagnostics.DataContractReader.TestInfrastructure.TestHelpers; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/ISOSDacInterfaceTests.cs b/src/native/managed/cdac/tests/DumpTests/ISOSDacInterfaceTests.cs index 06d09ee6f991e5..832bf838f99f69 100644 --- a/src/native/managed/cdac/tests/DumpTests/ISOSDacInterfaceTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/ISOSDacInterfaceTests.cs @@ -4,8 +4,9 @@ using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; -using static Microsoft.Diagnostics.DataContractReader.Tests.TestHelpers; +using static Microsoft.Diagnostics.DataContractReader.TestInfrastructure.TestHelpers; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/IXCLRDataAppDomainDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/IXCLRDataAppDomainDumpTests.cs index 5dce50875d3a5d..5293d210eaaa36 100644 --- a/src/native/managed/cdac/tests/DumpTests/IXCLRDataAppDomainDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/IXCLRDataAppDomainDumpTests.cs @@ -5,8 +5,9 @@ using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; -using static Microsoft.Diagnostics.DataContractReader.Tests.TestHelpers; +using static Microsoft.Diagnostics.DataContractReader.TestInfrastructure.TestHelpers; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; @@ -194,7 +195,7 @@ private IXCLRDataAppDomain GetAppDomain() ThreadData crashingThread = DumpTestHelpers.FindFailFastThread(Target); IStackDataFrameHandle? managedFrame = null; - foreach (IStackDataFrameHandle dataFrame in stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible)) + foreach (IStackDataFrameHandle dataFrame in DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread)) { TargetPointer md = stackWalk.GetMethodDescPtr(dataFrame); if (md != TargetPointer.Null) diff --git a/src/native/managed/cdac/tests/DumpTests/IXCLRDataFrameDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/IXCLRDataFrameDumpTests.cs index e77d6a68e32cd2..96fe2bad676ee1 100644 --- a/src/native/managed/cdac/tests/DumpTests/IXCLRDataFrameDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/IXCLRDataFrameDumpTests.cs @@ -5,8 +5,9 @@ using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; -using static Microsoft.Diagnostics.DataContractReader.Tests.TestHelpers; +using static Microsoft.Diagnostics.DataContractReader.TestInfrastructure.TestHelpers; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; @@ -185,7 +186,7 @@ public void GetNumArguments_ReturnsCountMatchingMetadata(TestConfiguration confi IStackWalk stackWalk = Target.Contracts.StackWalk; ThreadData crashingThread = DumpTestHelpers.FindFailFastThread(Target); - foreach (IStackDataFrameHandle dataFrame in stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible)) + foreach (IStackDataFrameHandle dataFrame in DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread)) { TargetPointer md = stackWalk.GetMethodDescPtr(dataFrame); if (md == TargetPointer.Null) @@ -221,7 +222,7 @@ public void GetNumLocalVariables_ReturnsCountForILMethod(TestConfiguration confi IStackWalk stackWalk = Target.Contracts.StackWalk; ThreadData crashingThread = DumpTestHelpers.FindFailFastThread(Target); - foreach (IStackDataFrameHandle dataFrame in stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible)) + foreach (IStackDataFrameHandle dataFrame in DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread)) { TargetPointer md = stackWalk.GetMethodDescPtr(dataFrame); if (md == TargetPointer.Null) @@ -260,7 +261,7 @@ public void GetMethodInstance_ReturnsNonNullForManagedFrame(TestConfiguration co IStackWalk stackWalk = Target.Contracts.StackWalk; ThreadData crashingThread = DumpTestHelpers.FindFailFastThread(Target); - foreach (IStackDataFrameHandle dataFrame in stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible)) + foreach (IStackDataFrameHandle dataFrame in DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread)) { TargetPointer md = stackWalk.GetMethodDescPtr(dataFrame); if (md == TargetPointer.Null) @@ -292,7 +293,7 @@ public void GetArgumentByIndex_ReturnsValueForMethodADepthArg(TestConfiguration IStackWalk stackWalk = Target.Contracts.StackWalk; ThreadData crashingThread = DumpTestHelpers.FindFailFastThread(Target); - foreach (IStackDataFrameHandle dataFrame in stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible)) + foreach (IStackDataFrameHandle dataFrame in DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread)) { TargetPointer md = stackWalk.GetMethodDescPtr(dataFrame); if (md == TargetPointer.Null) @@ -327,7 +328,7 @@ public void GetArgumentByIndex_ReturnsParameterName(TestConfiguration config) IStackWalk stackWalk = Target.Contracts.StackWalk; ThreadData crashingThread = DumpTestHelpers.FindFailFastThread(Target); - foreach (IStackDataFrameHandle dataFrame in stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible)) + foreach (IStackDataFrameHandle dataFrame in DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread)) { TargetPointer md = stackWalk.GetMethodDescPtr(dataFrame); if (md == TargetPointer.Null) @@ -365,7 +366,7 @@ public void GetArgumentByIndex_InvalidIndex_ReturnsError(TestConfiguration confi IStackWalk stackWalk = Target.Contracts.StackWalk; ThreadData crashingThread = DumpTestHelpers.FindFailFastThread(Target); - foreach (IStackDataFrameHandle dataFrame in stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible)) + foreach (IStackDataFrameHandle dataFrame in DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread)) { TargetPointer md = stackWalk.GetMethodDescPtr(dataFrame); if (md == TargetPointer.Null) @@ -401,7 +402,7 @@ public void GetLocalVariableByIndex_ReturnsValueForMethodBLocal(TestConfiguratio IStackWalk stackWalk = Target.Contracts.StackWalk; ThreadData crashingThread = DumpTestHelpers.FindFailFastThread(Target); - foreach (IStackDataFrameHandle dataFrame in stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible)) + foreach (IStackDataFrameHandle dataFrame in DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread)) { TargetPointer md = stackWalk.GetMethodDescPtr(dataFrame); if (md == TargetPointer.Null) @@ -436,7 +437,7 @@ public void GetLocalVariableByIndex_InvalidIndex_ReturnsError(TestConfiguration IStackWalk stackWalk = Target.Contracts.StackWalk; ThreadData crashingThread = DumpTestHelpers.FindFailFastThread(Target); - foreach (IStackDataFrameHandle dataFrame in stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible)) + foreach (IStackDataFrameHandle dataFrame in DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread)) { TargetPointer md = stackWalk.GetMethodDescPtr(dataFrame); if (md == TargetPointer.Null) @@ -474,7 +475,7 @@ public void GetLocalVariableByIndex_LocalNameIsEmpty(TestConfiguration config) IStackWalk stackWalk = Target.Contracts.StackWalk; ThreadData crashingThread = DumpTestHelpers.FindFailFastThread(Target); - foreach (IStackDataFrameHandle dataFrame in stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible)) + foreach (IStackDataFrameHandle dataFrame in DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread)) { TargetPointer md = stackWalk.GetMethodDescPtr(dataFrame); if (md == TargetPointer.Null) @@ -509,7 +510,7 @@ private IStackDataFrameHandle GetFirstManagedFrame() IStackWalk stackWalk = Target.Contracts.StackWalk; ThreadData crashingThread = DumpTestHelpers.FindFailFastThread(Target); - foreach (IStackDataFrameHandle dataFrame in stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible)) + foreach (IStackDataFrameHandle dataFrame in DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread)) { TargetPointer md = stackWalk.GetMethodDescPtr(dataFrame); if (md != TargetPointer.Null) diff --git a/src/native/managed/cdac/tests/DumpTests/IXCLRDataMethodDefinitionDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/IXCLRDataMethodDefinitionDumpTests.cs index 1d81567b7878e3..d352cb87f19c8a 100644 --- a/src/native/managed/cdac/tests/DumpTests/IXCLRDataMethodDefinitionDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/IXCLRDataMethodDefinitionDumpTests.cs @@ -7,8 +7,9 @@ using System.Reflection.Metadata.Ecma335; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; -using static Microsoft.Diagnostics.DataContractReader.Tests.TestHelpers; +using static Microsoft.Diagnostics.DataContractReader.TestInfrastructure.TestHelpers; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; @@ -198,7 +199,7 @@ private IXCLRDataMethodDefinition GetMethodDefinitionFromStack(string methodName IRuntimeTypeSystem rts = Target.Contracts.RuntimeTypeSystem; ThreadData crashingThread = DumpTestHelpers.FindFailFastThread(Target); - foreach (IStackDataFrameHandle frame in stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible)) + foreach (IStackDataFrameHandle frame in DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread)) { TargetPointer methodDescPtr = stackWalk.GetMethodDescPtr(frame); if (methodDescPtr == TargetPointer.Null) diff --git a/src/native/managed/cdac/tests/DumpTests/IXCLRDataValueDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/IXCLRDataValueDumpTests.cs index 1b488939198cd3..ae75899ea40618 100644 --- a/src/native/managed/cdac/tests/DumpTests/IXCLRDataValueDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/IXCLRDataValueDumpTests.cs @@ -6,8 +6,9 @@ using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; -using static Microsoft.Diagnostics.DataContractReader.Tests.TestHelpers; +using static Microsoft.Diagnostics.DataContractReader.TestInfrastructure.TestHelpers; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; @@ -537,7 +538,7 @@ public void GetSize_GetFlags_AllFrames_Succeeds(TestConfiguration config) ThreadData crashingThread = DumpTestHelpers.FindFailFastThread(Target); int totalValues = 0; - foreach (IStackDataFrameHandle dataFrame in stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible)) + foreach (IStackDataFrameHandle dataFrame in DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread)) { TargetPointer md = stackWalk.GetMethodDescPtr(dataFrame); if (md == TargetPointer.Null) @@ -730,7 +731,7 @@ private static void AssertEach(Dictionary values, Di IStackWalk stackWalk = Target.Contracts.StackWalk; ThreadData crashingThread = DumpTestHelpers.FindFailFastThread(Target); - foreach (IStackDataFrameHandle dataFrame in stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible)) + foreach (IStackDataFrameHandle dataFrame in DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread)) { TargetPointer md = stackWalk.GetMethodDescPtr(dataFrame); if (md == TargetPointer.Null) diff --git a/src/native/managed/cdac/tests/DumpTests/InterpreterStackDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/InterpreterStackDumpTests.cs index c2425950d6a7a5..c753e9b3395159 100644 --- a/src/native/managed/cdac/tests/DumpTests/InterpreterStackDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/InterpreterStackDumpTests.cs @@ -4,6 +4,7 @@ using System; using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Microsoft.DotNet.XUnitExtensions; using Xunit; diff --git a/src/native/managed/cdac/tests/DumpTests/LoaderDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/LoaderDumpTests.cs index 66a73a30c84cdd..41744e00a37422 100644 --- a/src/native/managed/cdac/tests/DumpTests/LoaderDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/LoaderDumpTests.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/MetaDataImportDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/MetaDataImportDumpTests.cs index f7092cb537d4e9..e9300fc6771020 100644 --- a/src/native/managed/cdac/tests/DumpTests/MetaDataImportDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/MetaDataImportDumpTests.cs @@ -7,6 +7,7 @@ using System.Reflection.Metadata.Ecma335; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/Microsoft.Diagnostics.DataContractReader.DumpTests.csproj b/src/native/managed/cdac/tests/DumpTests/Microsoft.Diagnostics.DataContractReader.DumpTests.csproj index 22568ab7090587..0616c5d67ea2f7 100644 --- a/src/native/managed/cdac/tests/DumpTests/Microsoft.Diagnostics.DataContractReader.DumpTests.csproj +++ b/src/native/managed/cdac/tests/DumpTests/Microsoft.Diagnostics.DataContractReader.DumpTests.csproj @@ -25,21 +25,16 @@ - - - - + - - diff --git a/src/native/managed/cdac/tests/DumpTests/ObjectiveCMarshalDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/ObjectiveCMarshalDumpTests.cs index d7ece25db165d5..e237b3bb344ebc 100644 --- a/src/native/managed/cdac/tests/DumpTests/ObjectiveCMarshalDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/ObjectiveCMarshalDumpTests.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/RCWCleanupListDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/RCWCleanupListDumpTests.cs index 6575594de0e329..42af97238df32e 100644 --- a/src/native/managed/cdac/tests/DumpTests/RCWCleanupListDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/RCWCleanupListDumpTests.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/RCWDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/RCWDumpTests.cs index c2d2e7a26d9592..d236bdb5a5a8fd 100644 --- a/src/native/managed/cdac/tests/DumpTests/RCWDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/RCWDumpTests.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/RuntimeInfoDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/RuntimeInfoDumpTests.cs index 751ffa69c6b256..ece4af019cd6e4 100644 --- a/src/native/managed/cdac/tests/DumpTests/RuntimeInfoDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/RuntimeInfoDumpTests.cs @@ -3,6 +3,7 @@ using System; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/RuntimeTypeSystemDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/RuntimeTypeSystemDumpTests.cs index df2d134d322e51..8a180fab497990 100644 --- a/src/native/managed/cdac/tests/DumpTests/RuntimeTypeSystemDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/RuntimeTypeSystemDumpTests.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Reflection.Metadata; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/ServerGCDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/ServerGCDumpTests.cs index fe9d72cf573e83..4c06d02388d5c5 100644 --- a/src/native/managed/cdac/tests/DumpTests/ServerGCDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/ServerGCDumpTests.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/StackReferenceDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/StackReferenceDumpTests.cs index fe299495996aa4..53aafcfccadc2a 100644 --- a/src/native/managed/cdac/tests/DumpTests/StackReferenceDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/StackReferenceDumpTests.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/StackWalkDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/StackWalkDumpTests.cs index 98de0bcc41c79f..e0832f67547037 100644 --- a/src/native/managed/cdac/tests/DumpTests/StackWalkDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/StackWalkDumpTests.cs @@ -6,8 +6,9 @@ using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; -using static Microsoft.Diagnostics.DataContractReader.Tests.TestHelpers; +using static Microsoft.Diagnostics.DataContractReader.TestInfrastructure.TestHelpers; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; @@ -31,7 +32,7 @@ public void StackWalk_CanWalkCrashingThread(TestConfiguration config) ThreadData crashingThread = DumpTestHelpers.FindFailFastThread(Target); - IEnumerable frames = stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible); + IEnumerable frames = DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread); List frameList = frames.ToList(); Assert.True(frameList.Count > 0, "Expected at least one stack frame on the crashing thread"); @@ -47,7 +48,7 @@ public void StackWalk_HasMultipleFrames(TestConfiguration config) ThreadData crashingThread = DumpTestHelpers.FindFailFastThread(Target); - IEnumerable frames = stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible); + IEnumerable frames = DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread); List frameList = frames.ToList(); // The debuggee has Main → MethodA → MethodB → MethodC → FailFast, @@ -68,7 +69,7 @@ public void StackWalk_ManagedFramesHaveValidMethodDescs(TestConfiguration config ThreadData crashingThread = DumpTestHelpers.FindFailFastThread(Target); - IEnumerable frames = stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible); + IEnumerable frames = DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread); foreach (IStackDataFrameHandle frame in frames) { @@ -92,7 +93,7 @@ public void StackWalk_FramesHaveRawContext(TestConfiguration config) ThreadData crashingThread = DumpTestHelpers.FindFailFastThread(Target); - IEnumerable frames = stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible); + IEnumerable frames = DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread); IStackDataFrameHandle? firstFrame = frames.FirstOrDefault(); Assert.NotNull(firstFrame); @@ -130,7 +131,7 @@ public void PInvokeStub_CanWalkCrashingThread(TestConfiguration config) IStackWalk stackWalk = Target.Contracts.StackWalk; ThreadData crashingThread = DumpTestHelpers.FindThreadWithMethod(Target, "Main"); - IEnumerable frames = stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible); + IEnumerable frames = DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread); List frameList = frames.ToList(); Assert.True(frameList.Count > 0, "Expected at least one stack frame on the crashing thread"); @@ -165,7 +166,7 @@ public void VarargPInvoke_CanWalkCrashingThread(TestConfiguration config) IStackWalk stackWalk = Target.Contracts.StackWalk; ThreadData crashingThread = DumpTestHelpers.FindThreadWithMethod(Target, "Main"); - IEnumerable frames = stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible); + IEnumerable frames = DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread); List frameList = frames.ToList(); Assert.True(frameList.Count > 0, "Expected at least one stack frame on the crashing thread"); @@ -202,7 +203,7 @@ public void VarargPInvoke_HasILStubFrame(TestConfiguration config) IRuntimeTypeSystem rts = Target.Contracts.RuntimeTypeSystem; ThreadData crashingThread = DumpTestHelpers.FindThreadWithMethod(Target, "Main"); - IEnumerable frames = stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible); + IEnumerable frames = DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread); bool foundILStub = false; foreach (IStackDataFrameHandle frame in frames) @@ -234,7 +235,7 @@ public unsafe void VarargPInvoke_GetMethodTableDataForILStubFrame(TestConfigurat ISOSDacInterface sosDac = new SOSDacImpl(Target, legacyObj: null); ThreadData crashingThread = DumpTestHelpers.FindThreadWithMethod(Target, "Main"); - IEnumerable frames = stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible); + IEnumerable frames = DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread); foreach (IStackDataFrameHandle frame in frames) { @@ -268,7 +269,7 @@ public unsafe void VarargPInvoke_GetILAddressMapForILStub_ReturnsFailure(TestCon IRuntimeTypeSystem rts = Target.Contracts.RuntimeTypeSystem; ThreadData crashingThread = DumpTestHelpers.FindThreadWithMethod(Target, "Main"); - IEnumerable frames = stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible); + IEnumerable frames = DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread); foreach (IStackDataFrameHandle frame in frames) { @@ -304,7 +305,7 @@ public unsafe void VarargPInvoke_GetCodeHeaderDataWithInvalidPrecodeAddress(Test ISOSDacInterface sosDac = new SOSDacImpl(Target, legacyObj: null); ThreadData crashingThread = DumpTestHelpers.FindThreadWithMethod(Target, "Main"); - IEnumerable frames = stackWalk.CreateStackWalk(crashingThread).Where(ClrDataStackWalk.IsLegacyVisible); + IEnumerable frames = DumpTestStackWalker.LegacyVisibleFrames(stackWalk, crashingThread); foreach (IStackDataFrameHandle frame in frames) { diff --git a/src/native/managed/cdac/tests/DumpTests/SyncBlockDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/SyncBlockDumpTests.cs index 8ccb7ffb95fb0e..9a872ed1e3f299 100644 --- a/src/native/managed/cdac/tests/DumpTests/SyncBlockDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/SyncBlockDumpTests.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/ThreadDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/ThreadDumpTests.cs index 6d29f6433e3d5a..9a7b74f5d51510 100644 --- a/src/native/managed/cdac/tests/DumpTests/ThreadDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/ThreadDumpTests.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/DumpTests/WorkstationGCDumpTests.cs b/src/native/managed/cdac/tests/DumpTests/WorkstationGCDumpTests.cs index a6fcad964cd6fb..733263f7001b21 100644 --- a/src/native/managed/cdac/tests/DumpTests/WorkstationGCDumpTests.cs +++ b/src/native/managed/cdac/tests/DumpTests/WorkstationGCDumpTests.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.DumpTests; diff --git a/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests.csproj b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests.csproj deleted file mode 100644 index cad068f38a2774..00000000000000 --- a/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests.csproj +++ /dev/null @@ -1,27 +0,0 @@ - - - true - $(NetCoreAppToolCurrent) - false - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/native/managed/cdac/tests/DumpTests/ClrMdDumpHost.cs b/src/native/managed/cdac/tests/TestInfrastructure/ClrMdDumpHost.cs similarity index 98% rename from src/native/managed/cdac/tests/DumpTests/ClrMdDumpHost.cs rename to src/native/managed/cdac/tests/TestInfrastructure/ClrMdDumpHost.cs index ffcef872209bfa..341a4b2a8c8a20 100644 --- a/src/native/managed/cdac/tests/DumpTests/ClrMdDumpHost.cs +++ b/src/native/managed/cdac/tests/TestInfrastructure/ClrMdDumpHost.cs @@ -3,17 +3,17 @@ using System; using System.Collections.Generic; -using System.Reflection.PortableExecutable; using System.IO; +using System.Reflection.PortableExecutable; using Microsoft.Diagnostics.Runtime; -namespace Microsoft.Diagnostics.DataContractReader.DumpTests; +namespace Microsoft.Diagnostics.DataContractReader.TestInfrastructure; /// /// Wraps a ClrMD DataTarget to provide the memory read callback and symbol lookup /// needed to create a from a crash dump. /// -internal sealed class ClrMdDumpHost : IDisposable +public sealed class ClrMdDumpHost : IDisposable { private static readonly string[] s_runtimeModuleNames = { diff --git a/src/native/managed/cdac/tests/ContractDescriptor/ContractDescriptorBuilder.cs b/src/native/managed/cdac/tests/TestInfrastructure/ContractDescriptor/ContractDescriptorBuilder.cs similarity index 89% rename from src/native/managed/cdac/tests/ContractDescriptor/ContractDescriptorBuilder.cs rename to src/native/managed/cdac/tests/TestInfrastructure/ContractDescriptor/ContractDescriptorBuilder.cs index de5129cdabfdaa..411d7203087de4 100644 --- a/src/native/managed/cdac/tests/ContractDescriptor/ContractDescriptorBuilder.cs +++ b/src/native/managed/cdac/tests/TestInfrastructure/ContractDescriptor/ContractDescriptorBuilder.cs @@ -3,14 +3,14 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Text; -namespace Microsoft.Diagnostics.DataContractReader.Tests.ContractDescriptor; +namespace Microsoft.Diagnostics.DataContractReader.TestInfrastructure.ContractDescriptor; -internal class ContractDescriptorBuilder : MockMemorySpace.Builder +public class ContractDescriptorBuilder : MockMemorySpace.Builder { // These addresses are arbitrary and are used to store the contract descriptor components. // They should not overlap with any other heap fragment addresses. @@ -18,7 +18,7 @@ internal class ContractDescriptorBuilder : MockMemorySpace.Builder private const uint JsonDescriptorAddr = 0xdddddddd; private const uint ContractPointerDataAddr = 0xeeeeeeee; - bool _created = false; + private bool _created; public ContractDescriptorBuilder(TargetTestHelpers targetTestHelpers) : base(targetTestHelpers) @@ -26,23 +26,27 @@ public ContractDescriptorBuilder(TargetTestHelpers targetTestHelpers) public class DescriptorBuilder(ContractDescriptorBuilder parent) { - private bool _created = false; + private bool _created; private readonly ContractDescriptorBuilder _parent = parent; - private IReadOnlyCollection _contracts; - private IDictionary _types; - private IReadOnlyCollection<(string Name, ulong? Value, uint? IndirectIndex, string? StringValue, string? TypeName)> _globals; - private IReadOnlyCollection<(string Name, ulong? Value, uint? IndirectIndex, string? StringValue, string? TypeName)> _subDescriptors; - private IReadOnlyCollection _indirectValues; + private IReadOnlyCollection? _contracts; + private IDictionary? _types; + private IReadOnlyCollection<(string Name, ulong? Value, uint? IndirectIndex, string? StringValue, string? TypeName)>? _globals; + private IReadOnlyCollection<(string Name, ulong? Value, uint? IndirectIndex, string? StringValue, string? TypeName)>? _subDescriptors; + private IReadOnlyCollection? _indirectValues; public DescriptorBuilder SetContracts(IReadOnlyCollection contracts) { + if (_contracts is not null) + throw new InvalidOperationException("Contracts already set"); _contracts = contracts; return this; } public DescriptorBuilder SetTypes(IDictionary types) { + if (_types is not null) + throw new InvalidOperationException("Types already set"); _types = types; return this; } @@ -100,7 +104,7 @@ public ulong CreateSubDescriptor(uint contractDescriptorAddress, uint jsonAddres if (_created) throw new InvalidOperationException("Context already created"); - (var json, var pointerData) = CreateDataDescriptor(jsonAddress, pointerDataAddress); + (MockMemorySpace.HeapFragment json, MockMemorySpace.HeapFragment pointerData) = CreateDataDescriptor(jsonAddress, pointerDataAddress); int pointerDataCount = pointerData.Data is null ? 0 : pointerData.Data.Length / _parent.TargetTestHelpers.PointerSize; MockMemorySpace.HeapFragment descriptor = CreateContractDescriptor( contractDescriptorAddress, @@ -111,7 +115,7 @@ public ulong CreateSubDescriptor(uint contractDescriptorAddress, uint jsonAddres _parent.AddHeapFragment(descriptor); _parent.AddHeapFragment(json); - if (pointerData.Data.Length > 0) + if (pointerData.Data is not null && pointerData.Data.Length > 0) _parent.AddHeapFragment(pointerData); _created = true; @@ -132,7 +136,7 @@ private MockMemorySpace.HeapFragment CreateContractDescriptor(uint contractDescr private string MakeContractsJson() { - if (_contracts.Count == 0) + if (_contracts is null || _contracts.Count == 0) return string.Empty; StringBuilder sb = new(); foreach (var c in _contracts) diff --git a/src/native/managed/cdac/tests/ContractDescriptor/ContractDescriptorHelpers.cs b/src/native/managed/cdac/tests/TestInfrastructure/ContractDescriptor/ContractDescriptorHelpers.cs similarity index 97% rename from src/native/managed/cdac/tests/ContractDescriptor/ContractDescriptorHelpers.cs rename to src/native/managed/cdac/tests/TestInfrastructure/ContractDescriptor/ContractDescriptorHelpers.cs index f9ba9241d41384..d0e06afec70611 100644 --- a/src/native/managed/cdac/tests/ContractDescriptor/ContractDescriptorHelpers.cs +++ b/src/native/managed/cdac/tests/TestInfrastructure/ContractDescriptor/ContractDescriptorHelpers.cs @@ -7,9 +7,9 @@ using System.Linq; using System.Runtime.InteropServices; -namespace Microsoft.Diagnostics.DataContractReader.Tests.ContractDescriptor; +namespace Microsoft.Diagnostics.DataContractReader.TestInfrastructure.ContractDescriptor; -internal unsafe class ContractDescriptorHelpers +public static unsafe class ContractDescriptorHelpers { public static int Size(bool is64Bit) => is64Bit ? sizeof(ContractDescriptor64) : sizeof(ContractDescriptor32); diff --git a/src/native/managed/cdac/tests/DumpTests/DumpInfo.cs b/src/native/managed/cdac/tests/TestInfrastructure/DumpInfo.cs similarity index 97% rename from src/native/managed/cdac/tests/DumpTests/DumpInfo.cs rename to src/native/managed/cdac/tests/TestInfrastructure/DumpInfo.cs index e9d1d702a99607..baf791c5677936 100644 --- a/src/native/managed/cdac/tests/DumpTests/DumpInfo.cs +++ b/src/native/managed/cdac/tests/TestInfrastructure/DumpInfo.cs @@ -8,7 +8,7 @@ using System.Text.Json; using System.Text.Json.Serialization; -namespace Microsoft.Diagnostics.DataContractReader.DumpTests; +namespace Microsoft.Diagnostics.DataContractReader.TestInfrastructure; /// /// Metadata about the environment in which a set of dumps was generated. @@ -121,6 +121,6 @@ public sealed class DebuggeeEntry [JsonSerializable(typeof(DumpInfo))] [JsonSourceGenerationOptions(WriteIndented = true)] -internal partial class DumpInfoContext : JsonSerializerContext +public partial class DumpInfoContext : JsonSerializerContext { } diff --git a/src/native/managed/cdac/tests/DumpTests/DumpTestBase.cs b/src/native/managed/cdac/tests/TestInfrastructure/DumpTestBase.cs similarity index 99% rename from src/native/managed/cdac/tests/DumpTests/DumpTestBase.cs rename to src/native/managed/cdac/tests/TestInfrastructure/DumpTestBase.cs index 4c0aaa34cb508c..e3eaca7b45050e 100644 --- a/src/native/managed/cdac/tests/DumpTests/DumpTestBase.cs +++ b/src/native/managed/cdac/tests/TestInfrastructure/DumpTestBase.cs @@ -10,7 +10,7 @@ using Microsoft.DotNet.XUnitExtensions; using Xunit; -namespace Microsoft.Diagnostics.DataContractReader.DumpTests; +namespace Microsoft.Diagnostics.DataContractReader.TestInfrastructure; /// /// Base class for dump-based cDAC integration tests. diff --git a/src/native/managed/cdac/tests/DumpTests/DumpTestHelpers.cs b/src/native/managed/cdac/tests/TestInfrastructure/DumpTestHelpers.cs similarity index 92% rename from src/native/managed/cdac/tests/DumpTests/DumpTestHelpers.cs rename to src/native/managed/cdac/tests/TestInfrastructure/DumpTestHelpers.cs index 3fe9ca223fad7a..8cf7c76bb79514 100644 --- a/src/native/managed/cdac/tests/DumpTests/DumpTestHelpers.cs +++ b/src/native/managed/cdac/tests/TestInfrastructure/DumpTestHelpers.cs @@ -5,15 +5,14 @@ using System.Reflection.Metadata; using System.Reflection.Metadata.Ecma335; using Microsoft.Diagnostics.DataContractReader.Contracts; -using Microsoft.Diagnostics.DataContractReader.Legacy; using Xunit; -namespace Microsoft.Diagnostics.DataContractReader.DumpTests; +namespace Microsoft.Diagnostics.DataContractReader.TestInfrastructure; /// /// Helpers for resolving method names and other metadata from cDAC contracts. /// -internal static class DumpTestHelpers +public static class DumpTestHelpers { /// /// Resolves the method name for a using the @@ -73,7 +72,7 @@ public static ThreadData FindThreadWithMethod(ContractDescriptorTarget target, s { ThreadData threadData = threadContract.GetThreadData(currentThreadPtr); - foreach (IStackDataFrameHandle frame in stackWalk.CreateStackWalk(threadData).Where(ClrDataStackWalk.IsLegacyVisible)) + foreach (IStackDataFrameHandle frame in DumpTestStackWalker.LegacyVisibleFrames(stackWalk, threadData)) { TargetPointer methodDescPtr = stackWalk.GetMethodDescPtr(frame); string? name = GetMethodName(target, methodDescPtr); diff --git a/src/native/managed/cdac/tests/DumpTests/DumpTestStackWalker.cs b/src/native/managed/cdac/tests/TestInfrastructure/DumpTestStackWalker.cs similarity index 90% rename from src/native/managed/cdac/tests/DumpTests/DumpTestStackWalker.cs rename to src/native/managed/cdac/tests/TestInfrastructure/DumpTestStackWalker.cs index 1a60c97550675b..4c56cb64be09c5 100644 --- a/src/native/managed/cdac/tests/DumpTests/DumpTestStackWalker.cs +++ b/src/native/managed/cdac/tests/TestInfrastructure/DumpTestStackWalker.cs @@ -5,10 +5,9 @@ using System.Collections.Generic; using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; -using Microsoft.Diagnostics.DataContractReader.Legacy; using Xunit; -namespace Microsoft.Diagnostics.DataContractReader.DumpTests; +namespace Microsoft.Diagnostics.DataContractReader.TestInfrastructure; /// /// A single resolved stack frame, carrying the method name, the raw @@ -23,7 +22,7 @@ namespace Microsoft.Diagnostics.DataContractReader.DumpTests; /// frame has a non-null frame address, or null for native/managed code frames. /// /// The underlying stack data frame handle for raw access. -internal readonly record struct ResolvedFrame(string? Name, TargetPointer MethodDescPtr, string? FrameName, IStackDataFrameHandle FrameHandle); +public readonly record struct ResolvedFrame(string? Name, TargetPointer MethodDescPtr, string? FrameName, IStackDataFrameHandle FrameHandle); /// /// Encapsulates a resolved stack walk for a thread, providing a builder-pattern @@ -70,7 +69,7 @@ namespace Microsoft.Diagnostics.DataContractReader.DumpTests; /// /// /// -internal sealed class DumpTestStackWalker +public sealed class DumpTestStackWalker { private readonly ContractDescriptorTarget _target; private readonly List _frames; @@ -86,6 +85,27 @@ private DumpTestStackWalker(ContractDescriptorTarget target, List /// The cDAC target the stack was walked from. public ContractDescriptorTarget Target => _target; + /// + /// Returns true if is a stack frame that + /// the legacy DAC stack walker (ClrDataStackWalk) would surface + /// through the IXCLRDataStackWalk COM interface. Use this to + /// filter the raw output to match what a debugger + /// would see via the legacy DAC. + /// + public static bool IsLegacyVisible(IStackDataFrameHandle frame) + => frame.State is StackWalkState.Frameless + or StackWalkState.Frame + or StackWalkState.SkippedFrame; + + /// + /// Enumerates the frames of 's stack that the + /// legacy DAC stack walker would surface — that is, the same frames a + /// debugger sees via IXCLRDataStackWalk. Convenience wrapper + /// around + . + /// + public static IEnumerable LegacyVisibleFrames(IStackWalk stackWalk, ThreadData thread) + => stackWalk.CreateStackWalk(thread).Where(IsLegacyVisible); + /// /// The fully resolved call stack in inner-to-outer order (callee -> caller). /// @@ -100,7 +120,7 @@ public static DumpTestStackWalker Walk(ContractDescriptorTarget target, ThreadDa IStackWalk stackWalk = target.Contracts.StackWalk; List frames = []; - foreach (IStackDataFrameHandle frame in stackWalk.CreateStackWalk(threadData).Where(ClrDataStackWalk.IsLegacyVisible)) + foreach (IStackDataFrameHandle frame in stackWalk.CreateStackWalk(threadData).Where(IsLegacyVisible)) { TargetPointer methodDescPtr = stackWalk.GetMethodDescPtr(frame); string? name = DumpTestHelpers.GetMethodName(target, methodDescPtr); diff --git a/src/native/managed/cdac/tests/MockDescriptors/Layout.cs b/src/native/managed/cdac/tests/TestInfrastructure/Layout.cs similarity index 90% rename from src/native/managed/cdac/tests/MockDescriptors/Layout.cs rename to src/native/managed/cdac/tests/TestInfrastructure/Layout.cs index 2de7e01c5bec28..d4c67475705ab4 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/Layout.cs +++ b/src/native/managed/cdac/tests/TestInfrastructure/Layout.cs @@ -4,9 +4,9 @@ using System; using System.Collections.Generic; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +namespace Microsoft.Diagnostics.DataContractReader.TestInfrastructure; -internal class Layout +public class Layout { public Layout(string name, MockTarget.Architecture architecture, int size, LayoutField[] fields) { @@ -28,7 +28,7 @@ public Layout(string name, MockTarget.Architecture architecture, int size, Layou public LayoutField[] Fields { get; } - internal LayoutField GetField(string fieldName) + public LayoutField GetField(string fieldName) { foreach (LayoutField field in Fields) { @@ -43,32 +43,35 @@ internal LayoutField GetField(string fieldName) } -internal sealed class Layout : Layout - where TView : TypedView, new() +public sealed class Layout : Layout + where TView : TypedView { public Layout(string name, MockTarget.Architecture architecture, int size, LayoutField[] fields) : base(name, architecture, size, fields) { } + private static TView CreateView() + => (TView)Activator.CreateInstance(typeof(TView), nonPublic: true)!; + public TView Create(MockMemorySpace.HeapFragment fragment) { - TView view = new(); + TView view = CreateView(); view.Init(fragment.Data.AsMemory(), fragment.Address, this); return view; } public TView Create(Memory memory, ulong address) { - TView view = new(); + TView view = CreateView(); view.Init(memory, address, this); return view; } } -internal readonly record struct LayoutField(string Name, int Offset, int Size); +public readonly record struct LayoutField(string Name, int Offset, int Size); -internal sealed class LayoutBuilder +public sealed class LayoutBuilder { private readonly string _name; private readonly MockTarget.Architecture _architecture; @@ -97,11 +100,11 @@ public Layout Build() => new(_name, _architecture, Size, [.. _fields.Values]); public Layout Build() - where TView : TypedView, new() + where TView : TypedView => new(_name, _architecture, Size, [.. _fields.Values]); } -internal sealed class SequentialLayoutBuilder +public sealed class SequentialLayoutBuilder { private readonly LayoutBuilder _layoutBuilder; private readonly MockTarget.Architecture _architecture; @@ -189,7 +192,7 @@ public Layout Build() } public Layout Build() - where TView : TypedView, new() + where TView : TypedView { if (_alignFinalSize) { diff --git a/src/native/managed/cdac/tests/TestInfrastructure/Microsoft.Diagnostics.DataContractReader.TestInfrastructure.csproj b/src/native/managed/cdac/tests/TestInfrastructure/Microsoft.Diagnostics.DataContractReader.TestInfrastructure.csproj new file mode 100644 index 00000000000000..69fbd92b07c39d --- /dev/null +++ b/src/native/managed/cdac/tests/TestInfrastructure/Microsoft.Diagnostics.DataContractReader.TestInfrastructure.csproj @@ -0,0 +1,43 @@ + + + + $(NetCoreAppToolCurrent) + Microsoft.Diagnostics.DataContractReader + enable + true + + false + true + false + + + + + + + + + + + + + + + + + + + + + diff --git a/src/native/managed/cdac/tests/MockMemorySpace.BumpAllocator.cs b/src/native/managed/cdac/tests/TestInfrastructure/MockMemorySpace.BumpAllocator.cs similarity index 93% rename from src/native/managed/cdac/tests/MockMemorySpace.BumpAllocator.cs rename to src/native/managed/cdac/tests/TestInfrastructure/MockMemorySpace.BumpAllocator.cs index 58fb78208bc8b2..de0f45e4305521 100644 --- a/src/native/managed/cdac/tests/MockMemorySpace.BumpAllocator.cs +++ b/src/native/managed/cdac/tests/TestInfrastructure/MockMemorySpace.BumpAllocator.cs @@ -9,7 +9,7 @@ using System.Text; using Xunit; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +namespace Microsoft.Diagnostics.DataContractReader.TestInfrastructure; /// /// Helper for creating a mock memory space for testing. @@ -18,14 +18,14 @@ namespace Microsoft.Diagnostics.DataContractReader.Tests; /// Use MockMemorySpace.CreateContext to create a mostly empty context for reading from the target. /// Use MockMemorySpace.ContextBuilder to create a context with additional MockMemorySpace.HeapFragment data. /// -internal unsafe static partial class MockMemorySpace +public static unsafe partial class MockMemorySpace { - internal class BumpAllocator + public class BumpAllocator { private readonly Builder _builder; private readonly ulong _blockStart; private readonly ulong _blockEnd; // exclusive - ulong _current; + private ulong _current; public int MinAlign { get; init; } = 16; // by default align to 16 bytes public BumpAllocator(Builder builder, ulong blockStart, ulong blockEnd) diff --git a/src/native/managed/cdac/tests/MockMemorySpace.cs b/src/native/managed/cdac/tests/TestInfrastructure/MockMemorySpace.cs similarity index 92% rename from src/native/managed/cdac/tests/MockMemorySpace.cs rename to src/native/managed/cdac/tests/TestInfrastructure/MockMemorySpace.cs index 33737627296f0b..b0dbeb4b2553eb 100644 --- a/src/native/managed/cdac/tests/MockMemorySpace.cs +++ b/src/native/managed/cdac/tests/TestInfrastructure/MockMemorySpace.cs @@ -9,7 +9,7 @@ using System.Text; using Xunit; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +namespace Microsoft.Diagnostics.DataContractReader.TestInfrastructure; /// /// Helper for creating a mock memory space for testing. @@ -17,9 +17,9 @@ namespace Microsoft.Diagnostics.DataContractReader.Tests; /// /// Use MockMemorySpace.Builder to create a context with MockMemorySpace.HeapFragment data. /// -internal unsafe static partial class MockMemorySpace +public static unsafe partial class MockMemorySpace { - internal struct HeapFragment + public struct HeapFragment { public ulong Address; public byte[] Data; @@ -29,7 +29,7 @@ internal struct HeapFragment /// /// Helper to populate a virtual memory space for reading from a target. /// - internal class Builder + public class Builder { private readonly List _heapFragments = new(); private readonly List _allocators = new(); @@ -41,9 +41,9 @@ public Builder(TargetTestHelpers targetTestHelpers) _targetTestHelpers = targetTestHelpers; } - internal TargetTestHelpers TargetTestHelpers => _targetTestHelpers; + public TargetTestHelpers TargetTestHelpers => _targetTestHelpers; - internal Span BorrowAddressRange(ulong address, int length) + public Span BorrowAddressRange(ulong address, int length) { foreach (var fragment in _heapFragments) { @@ -53,7 +53,7 @@ internal Span BorrowAddressRange(ulong address, int length) throw new InvalidOperationException($"No fragment includes addresses from 0x{address:x} with length {length}"); } - internal Memory BorrowAddressRangeMemory(ulong address, int length) + public Memory BorrowAddressRangeMemory(ulong address, int length) { foreach (var fragment in _heapFragments) { @@ -93,7 +93,7 @@ public Builder AddHeapFragments(IEnumerable fragments) return this; } - internal MemoryContext GetMemoryContext() + public MemoryContext GetMemoryContext() { MemoryContext context = new MemoryContext { @@ -135,11 +135,11 @@ public BumpAllocator CreateAllocator(ulong start, ulong end, int minAlign = 16) } // Used by ReadFromTarget to return the appropriate bytes - internal class MemoryContext + public class MemoryContext { - public IList HeapFragments { get; init; } + public IList HeapFragments { get; init; } = []; - internal int ReadFromTarget(ulong address, Span buffer) + public int ReadFromTarget(ulong address, Span buffer) { if (buffer.Length == 0) return 0; @@ -185,7 +185,7 @@ internal int ReadFromTarget(ulong address, Span buffer) return -1; } - internal int WriteToTarget(ulong address, Span buffer) + public int WriteToTarget(ulong address, Span buffer) { if (buffer.Length == 0) return 0; diff --git a/src/native/managed/cdac/tests/MockTarget.cs b/src/native/managed/cdac/tests/TestInfrastructure/MockTarget.cs similarity index 94% rename from src/native/managed/cdac/tests/MockTarget.cs rename to src/native/managed/cdac/tests/TestInfrastructure/MockTarget.cs index 2950929cf8b08b..fb8171ebb6f550 100644 --- a/src/native/managed/cdac/tests/MockTarget.cs +++ b/src/native/managed/cdac/tests/TestInfrastructure/MockTarget.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +namespace Microsoft.Diagnostics.DataContractReader.TestInfrastructure; public class MockTarget { diff --git a/src/native/managed/cdac/tests/DumpTests/SkipOnArchAttribute.cs b/src/native/managed/cdac/tests/TestInfrastructure/SkipOnArchAttribute.cs similarity index 91% rename from src/native/managed/cdac/tests/DumpTests/SkipOnArchAttribute.cs rename to src/native/managed/cdac/tests/TestInfrastructure/SkipOnArchAttribute.cs index 86a28c2fd27707..dd475d62d781b8 100644 --- a/src/native/managed/cdac/tests/DumpTests/SkipOnArchAttribute.cs +++ b/src/native/managed/cdac/tests/TestInfrastructure/SkipOnArchAttribute.cs @@ -3,7 +3,7 @@ using System; -namespace Microsoft.Diagnostics.DataContractReader.DumpTests; +namespace Microsoft.Diagnostics.DataContractReader.TestInfrastructure; /// /// When applied to a test method, causes the test to be skipped when diff --git a/src/native/managed/cdac/tests/DumpTests/SkipOnOSAttribute.cs b/src/native/managed/cdac/tests/TestInfrastructure/SkipOnOSAttribute.cs similarity index 96% rename from src/native/managed/cdac/tests/DumpTests/SkipOnOSAttribute.cs rename to src/native/managed/cdac/tests/TestInfrastructure/SkipOnOSAttribute.cs index 2b79468c3688ad..97432dde60e9be 100644 --- a/src/native/managed/cdac/tests/DumpTests/SkipOnOSAttribute.cs +++ b/src/native/managed/cdac/tests/TestInfrastructure/SkipOnOSAttribute.cs @@ -3,7 +3,7 @@ using System; -namespace Microsoft.Diagnostics.DataContractReader.DumpTests; +namespace Microsoft.Diagnostics.DataContractReader.TestInfrastructure; /// /// When applied to a test method, controls whether the test runs based on diff --git a/src/native/managed/cdac/tests/DumpTests/SkipOnVersionAttribute.cs b/src/native/managed/cdac/tests/TestInfrastructure/SkipOnVersionAttribute.cs similarity index 91% rename from src/native/managed/cdac/tests/DumpTests/SkipOnVersionAttribute.cs rename to src/native/managed/cdac/tests/TestInfrastructure/SkipOnVersionAttribute.cs index f81a74d01ffa96..29824cad899e6b 100644 --- a/src/native/managed/cdac/tests/DumpTests/SkipOnVersionAttribute.cs +++ b/src/native/managed/cdac/tests/TestInfrastructure/SkipOnVersionAttribute.cs @@ -3,7 +3,7 @@ using System; -namespace Microsoft.Diagnostics.DataContractReader.DumpTests; +namespace Microsoft.Diagnostics.DataContractReader.TestInfrastructure; /// /// When applied to a test method, causes the test to be skipped for diff --git a/src/native/managed/cdac/tests/TargetTestHelpers.cs b/src/native/managed/cdac/tests/TestInfrastructure/TargetTestHelpers.cs similarity index 79% rename from src/native/managed/cdac/tests/TargetTestHelpers.cs rename to src/native/managed/cdac/tests/TestInfrastructure/TargetTestHelpers.cs index 5438d11b412cf8..e4063f9ddea9f2 100644 --- a/src/native/managed/cdac/tests/TargetTestHelpers.cs +++ b/src/native/managed/cdac/tests/TestInfrastructure/TargetTestHelpers.cs @@ -4,10 +4,11 @@ using System; using System.Buffers.Binary; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Text; -namespace Microsoft.Diagnostics.DataContractReader.Tests; -internal unsafe class TargetTestHelpers +namespace Microsoft.Diagnostics.DataContractReader.TestInfrastructure; +public unsafe class TargetTestHelpers { public MockTarget.Architecture Arch { get; init; } @@ -21,19 +22,20 @@ public TargetTestHelpers(MockTarget.Architecture arch) #region Mock memory initialization - internal uint ObjHeaderSize => (uint)(Arch.Is64Bit ? 2 * sizeof(uint) /*alignpad + syncblock*/: sizeof(uint) /* syncblock */); - internal uint ObjectSize => (uint)PointerSize /* methtab */; + public uint ObjHeaderSize => (uint)(Arch.Is64Bit ? 2 * sizeof(uint) /*alignpad + syncblock*/: sizeof(uint) /* syncblock */); + public uint ObjectSize => (uint)PointerSize /* methtab */; - internal uint ObjectBaseSize => ObjHeaderSize + ObjectSize; + public uint ObjectBaseSize => ObjHeaderSize + ObjectSize; - internal uint ArrayBaseSize => Arch.Is64Bit ? ObjectSize + sizeof(uint) /* numComponents */ + sizeof(uint) /* pad*/ : ObjectSize + sizeof(uint) /* numComponents */; + public uint ArrayBaseSize => Arch.Is64Bit ? ObjectSize + sizeof(uint) /* numComponents */ + sizeof(uint) /* pad*/ : ObjectSize + sizeof(uint) /* numComponents */; - internal uint ArrayBaseBaseSize => ObjHeaderSize + ArrayBaseSize; + public uint ArrayBaseBaseSize => ObjHeaderSize + ArrayBaseSize; - internal uint StringBaseSize => ObjectBaseSize + sizeof(uint) /* length */ + sizeof(char) /* nul terminator */; + public uint StringBaseSize => ObjectBaseSize + sizeof(uint) /* length */ + sizeof(char) /* nul terminator */; - internal void Write(Span dest, byte b) => dest[0] = b; - internal void Write(Span dest, ushort u) + [SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "Kept as instance for consistent overload resolution with other Write overloads.")] + public void Write(Span dest, byte b) => dest[0] = b; + public void Write(Span dest, ushort u) { if (Arch.IsLittleEndian) { @@ -45,7 +47,7 @@ internal void Write(Span dest, ushort u) } } - internal void Write(Span dest, int i) + public void Write(Span dest, int i) { if (Arch.IsLittleEndian) { @@ -57,7 +59,7 @@ internal void Write(Span dest, int i) } } - internal void Write(Span dest, uint u) + public void Write(Span dest, uint u) { if (Arch.IsLittleEndian) { @@ -69,7 +71,7 @@ internal void Write(Span dest, uint u) } } - internal void Write(Span dest, ulong u) + public void Write(Span dest, ulong u) { if (Arch.IsLittleEndian) { @@ -81,7 +83,7 @@ internal void Write(Span dest, ulong u) } } - internal void WritePointer(Span dest, ulong value) + public void WritePointer(Span dest, ulong value) { if (Arch.Is64Bit) { @@ -107,9 +109,9 @@ internal void WritePointer(Span dest, ulong value) } } - internal void WriteNUInt(Span dest, TargetNUInt targetNUInt) => WritePointer(dest, targetNUInt.Value); + public void WriteNUInt(Span dest, TargetNUInt targetNUInt) => WritePointer(dest, targetNUInt.Value); - internal TargetPointer ReadPointer(ReadOnlySpan src) + public TargetPointer ReadPointer(ReadOnlySpan src) { if (Arch.Is64Bit) { @@ -121,7 +123,7 @@ internal TargetPointer ReadPointer(ReadOnlySpan src) } } - internal void WriteUtf16String(Span dest, string value) + public void WriteUtf16String(Span dest, string value) { Encoding encoding = Arch.IsLittleEndian ? Encoding.Unicode : Encoding.BigEndianUnicode; byte[] valueBytes = encoding.GetBytes(value); @@ -134,7 +136,7 @@ internal void WriteUtf16String(Span dest, string value) dest[^1] = 0; } - internal int SizeOfPrimitive(DataType type) + public int SizeOfPrimitive(DataType type) { return type switch { @@ -169,7 +171,7 @@ public readonly struct LayoutResult public readonly uint MaxAlign { get; init; } } - internal record Field(string Name, DataType Type, uint? Size = null); + public record Field(string Name, DataType Type, uint? Size = null); // Implements a simple layout algorithm that aligns fields to their size // and aligns the structure to the largest field size. @@ -186,7 +188,7 @@ public LayoutResult LayoutFields(FieldLayout style, Field[] fields) private LayoutResult LayoutFieldsWorker(FieldLayout style, Field[] fields, ref int offset, ref int maxAlign) { - Dictionary fieldInfos = new (); + Dictionary fieldInfos = []; for (int i = 0; i < fields.Length; i++) { var (name, type, sizeMaybe) = fields[i]; @@ -226,7 +228,7 @@ public LayoutResult ExtendLayout(FieldLayout fieldLayout, Field[] fields, Layout return LayoutFieldsWorker(fieldLayout, fields, ref offset, ref maxAlign); } - internal static Target.TypeInfo CreateTypeInfo(Layout layout) + public static Target.TypeInfo CreateTypeInfo(Layout layout) { Dictionary fields = new(layout.Fields.Length, StringComparer.Ordinal); foreach (LayoutField field in layout.Fields) diff --git a/src/native/managed/cdac/tests/DumpTests/TestConfiguration.cs b/src/native/managed/cdac/tests/TestInfrastructure/TestConfiguration.cs similarity index 96% rename from src/native/managed/cdac/tests/DumpTests/TestConfiguration.cs rename to src/native/managed/cdac/tests/TestInfrastructure/TestConfiguration.cs index f96f0bccb6719f..10a4af91f5dcd4 100644 --- a/src/native/managed/cdac/tests/DumpTests/TestConfiguration.cs +++ b/src/native/managed/cdac/tests/TestInfrastructure/TestConfiguration.cs @@ -3,7 +3,7 @@ using Xunit.Abstractions; -namespace Microsoft.Diagnostics.DataContractReader.DumpTests; +namespace Microsoft.Diagnostics.DataContractReader.TestInfrastructure; /// /// Describes which dump to load for a parameterized dump test. diff --git a/src/native/managed/cdac/tests/TestHelpers.cs b/src/native/managed/cdac/tests/TestInfrastructure/TestHelpers.cs similarity index 79% rename from src/native/managed/cdac/tests/TestHelpers.cs rename to src/native/managed/cdac/tests/TestInfrastructure/TestHelpers.cs index ffadf6fb55bb95..08a35f1cbece5b 100644 --- a/src/native/managed/cdac/tests/TestHelpers.cs +++ b/src/native/managed/cdac/tests/TestInfrastructure/TestHelpers.cs @@ -5,11 +5,11 @@ using System.Reflection; using Xunit; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +namespace Microsoft.Diagnostics.DataContractReader.TestInfrastructure; -internal static class TestHelpers +public static class TestHelpers { - internal static string FormatHResult(int hr) + public static string FormatHResult(int hr) { string hex = $"0x{unchecked((uint)hr):X8}"; foreach (Type type in new[] { typeof(HResults), typeof(CorDbgHResults) }) @@ -23,7 +23,7 @@ internal static string FormatHResult(int hr) return hex; } - internal static void AssertHResult(int expected, int actual) + public static void AssertHResult(int expected, int actual) { Assert.True(expected == actual, $"Expected: {FormatHResult(expected)}, Actual: {FormatHResult(actual)}"); diff --git a/src/native/managed/cdac/tests/TestPlaceholderTarget.cs b/src/native/managed/cdac/tests/TestInfrastructure/TestPlaceholderTarget.cs similarity index 94% rename from src/native/managed/cdac/tests/TestPlaceholderTarget.cs rename to src/native/managed/cdac/tests/TestInfrastructure/TestPlaceholderTarget.cs index 53bb3173b2a859..12561ffd8676a7 100644 --- a/src/native/managed/cdac/tests/TestPlaceholderTarget.cs +++ b/src/native/managed/cdac/tests/TestInfrastructure/TestPlaceholderTarget.cs @@ -10,12 +10,12 @@ using Microsoft.Diagnostics.DataContractReader.Contracts; using Moq; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +namespace Microsoft.Diagnostics.DataContractReader.TestInfrastructure; /// /// A mock implementation of Target that has basic implementations of getting types/globals and reading data /// -internal class TestPlaceholderTarget : Target +public class TestPlaceholderTarget : Target { private ContractRegistry _contractRegistry; private readonly Target.IDataCache _dataCache; @@ -23,9 +23,9 @@ internal class TestPlaceholderTarget : Target private readonly (string Name, ulong Value)[] _globals; private readonly (string Name, string Value)[] _globalStrings; - internal delegate int ReadFromTargetDelegate(ulong address, Span buffer); - internal delegate int WriteToTargetDelegate(ulong address, Span buffer); - internal delegate TargetPointer AllocateMemoryDelegate(uint size); + public delegate int ReadFromTargetDelegate(ulong address, Span buffer); + public delegate int WriteToTargetDelegate(ulong address, Span buffer); + public delegate TargetPointer AllocateMemoryDelegate(uint size); private readonly ReadFromTargetDelegate _dataReader; private readonly WriteToTargetDelegate? _dataWriter; @@ -33,7 +33,7 @@ internal class TestPlaceholderTarget : Target private static readonly UTF8Encoding strictUTF8Encoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true); private static readonly UTF8Encoding looseUTF8Encoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: false); - public TestPlaceholderTarget(MockTarget.Architecture arch, ReadFromTargetDelegate reader, Dictionary types = null, (string Name, ulong Value)[] globals = null, (string Name, string Value)[] globalStrings = null, WriteToTargetDelegate? writer = null, AllocateMemoryDelegate? allocateMemory = null) + public TestPlaceholderTarget(MockTarget.Architecture arch, ReadFromTargetDelegate reader, Dictionary? types = null, (string Name, ulong Value)[]? globals = null, (string Name, string Value)[]? globalStrings = null, WriteToTargetDelegate? writer = null, AllocateMemoryDelegate? allocateMemory = null) { IsLittleEndian = arch.IsLittleEndian; PointerSize = arch.Is64Bit ? 8 : 4; @@ -47,7 +47,7 @@ public TestPlaceholderTarget(MockTarget.Architecture arch, ReadFromTargetDelegat _globalStrings = globalStrings ?? []; } - internal void SetContracts(ContractRegistry contracts) + public void SetContracts(ContractRegistry contracts) { _contractRegistry = contracts; } @@ -59,7 +59,7 @@ internal void SetContracts(ContractRegistry contracts) /// and /// . /// - internal TestContractRegistry SetupContractRegistry(Action? registrations = null) + public TestContractRegistry SetupContractRegistry(Action? registrations = null) { var registry = new TestContractRegistry(); registry.SetTarget(this); @@ -73,7 +73,7 @@ internal TestContractRegistry SetupContractRegistry(Action? re /// globals, and contract factories from mock descriptors, then materializes the /// target and wires contracts in . /// - internal class Builder + public class Builder { private readonly MockTarget.Architecture _arch; private readonly MockMemorySpace.Builder _memBuilder; @@ -91,7 +91,7 @@ public Builder(MockTarget.Architecture arch) _memBuilder = new MockMemorySpace.Builder(new TargetTestHelpers(arch)); } - internal MockMemorySpace.Builder MemoryBuilder => _memBuilder; + public MockMemorySpace.Builder MemoryBuilder => _memBuilder; public Builder AddTypes(Dictionary types) { @@ -410,10 +410,10 @@ protected unsafe bool DefaultTryRead(ulong address, out T value) where T : un return true; } - internal unsafe static T ReadFromSpan(ReadOnlySpan bytes, bool isLittleEndian) where T : unmanaged, IBinaryInteger, IMinMaxValue + public static unsafe T ReadFromSpan(ReadOnlySpan bytes, bool isLittleEndian) where T : unmanaged, IBinaryInteger, IMinMaxValue { if (sizeof(T) != bytes.Length) - throw new ArgumentException(nameof(bytes)); + throw new ArgumentException("Span length does not match size of T.", nameof(bytes)); T value; if (isLittleEndian) @@ -427,10 +427,10 @@ internal unsafe static T ReadFromSpan(ReadOnlySpan bytes, bool isLittle return value; } - internal unsafe static void WriteToSpan(T value, bool isLittleEndian, Span dest) where T : unmanaged, IBinaryInteger, IMinMaxValue + public static unsafe void WriteToSpan(T value, bool isLittleEndian, Span dest) where T : unmanaged, IBinaryInteger, IMinMaxValue { if (sizeof(T) != dest.Length) - throw new ArgumentException(nameof(dest)); + throw new ArgumentException("Span length does not match size of T.", nameof(dest)); if (isLittleEndian) { @@ -599,7 +599,7 @@ public void Clear() } } - internal sealed class TestContractRegistry : ContractRegistry + public sealed class TestContractRegistry : ContractRegistry { private readonly Dictionary<(Type, string), Func> _creators = new(); private readonly Dictionary _versions = new(); diff --git a/src/native/managed/cdac/tests/MockDescriptors/TypedView.cs b/src/native/managed/cdac/tests/TestInfrastructure/TypedView.cs similarity index 95% rename from src/native/managed/cdac/tests/MockDescriptors/TypedView.cs rename to src/native/managed/cdac/tests/TestInfrastructure/TypedView.cs index 796b03c6322407..347bbb40ee0d66 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/TypedView.cs +++ b/src/native/managed/cdac/tests/TestInfrastructure/TypedView.cs @@ -4,9 +4,9 @@ using System; using System.Numerics; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +namespace Microsoft.Diagnostics.DataContractReader.TestInfrastructure; -internal abstract class TypedView +public abstract class TypedView { public ulong Address { get; private set; } @@ -16,7 +16,7 @@ internal abstract class TypedView protected MockTarget.Architecture Architecture { get; private set; } - internal void Init(Memory memory, ulong address, Layout layout) + public void Init(Memory memory, ulong address, Layout layout) { ArgumentNullException.ThrowIfNull(layout); ArgumentOutOfRangeException.ThrowIfLessThan(memory.Length, layout.Size); diff --git a/src/native/managed/cdac/tests/AuxiliarySymbolsTests.cs b/src/native/managed/cdac/tests/UnitTests/AuxiliarySymbolsTests.cs similarity index 98% rename from src/native/managed/cdac/tests/AuxiliarySymbolsTests.cs rename to src/native/managed/cdac/tests/UnitTests/AuxiliarySymbolsTests.cs index 0ea6f2a855bfd2..6642d544efa6bb 100644 --- a/src/native/managed/cdac/tests/AuxiliarySymbolsTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/AuxiliarySymbolsTests.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Text; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Moq; using Xunit; diff --git a/src/native/managed/cdac/tests/BuiltInCOMTests.cs b/src/native/managed/cdac/tests/UnitTests/BuiltInCOMTests.cs similarity index 99% rename from src/native/managed/cdac/tests/BuiltInCOMTests.cs rename to src/native/managed/cdac/tests/UnitTests/BuiltInCOMTests.cs index 26ce80038772c4..f5f826f685f854 100644 --- a/src/native/managed/cdac/tests/BuiltInCOMTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/BuiltInCOMTests.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Moq; using Xunit; diff --git a/src/native/managed/cdac/tests/ClrDataExceptionStateTests.cs b/src/native/managed/cdac/tests/UnitTests/ClrDataExceptionStateTests.cs similarity index 99% rename from src/native/managed/cdac/tests/ClrDataExceptionStateTests.cs rename to src/native/managed/cdac/tests/UnitTests/ClrDataExceptionStateTests.cs index beb0d15e04593d..f1eaef77eef9ad 100644 --- a/src/native/managed/cdac/tests/ClrDataExceptionStateTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/ClrDataExceptionStateTests.cs @@ -2,10 +2,11 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using Moq; -using Xunit; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; +using Moq; +using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/ClrDataTaskTests.cs b/src/native/managed/cdac/tests/UnitTests/ClrDataTaskTests.cs similarity index 96% rename from src/native/managed/cdac/tests/ClrDataTaskTests.cs rename to src/native/managed/cdac/tests/UnitTests/ClrDataTaskTests.cs index eb8e301172bd79..4366854f278b95 100644 --- a/src/native/managed/cdac/tests/ClrDataTaskTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/ClrDataTaskTests.cs @@ -3,6 +3,7 @@ using System; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/CodeNotificationsTests.cs b/src/native/managed/cdac/tests/UnitTests/CodeNotificationsTests.cs similarity index 99% rename from src/native/managed/cdac/tests/CodeNotificationsTests.cs rename to src/native/managed/cdac/tests/UnitTests/CodeNotificationsTests.cs index da9fd91ef26046..95e8d08c9272c7 100644 --- a/src/native/managed/cdac/tests/CodeNotificationsTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/CodeNotificationsTests.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/CodeVersionsTests.cs b/src/native/managed/cdac/tests/UnitTests/CodeVersionsTests.cs similarity index 99% rename from src/native/managed/cdac/tests/CodeVersionsTests.cs rename to src/native/managed/cdac/tests/UnitTests/CodeVersionsTests.cs index 7089103cb93a2e..693e279af2817f 100644 --- a/src/native/managed/cdac/tests/CodeVersionsTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/CodeVersionsTests.cs @@ -6,6 +6,7 @@ using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Contracts.Extensions; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Moq; using Xunit; diff --git a/src/native/managed/cdac/tests/ContractDescriptor/ParserTests.cs b/src/native/managed/cdac/tests/UnitTests/ContractDescriptor/ParserTests.cs similarity index 100% rename from src/native/managed/cdac/tests/ContractDescriptor/ParserTests.cs rename to src/native/managed/cdac/tests/UnitTests/ContractDescriptor/ParserTests.cs diff --git a/src/native/managed/cdac/tests/ContractDescriptor/TargetTests.SubDescriptors.cs b/src/native/managed/cdac/tests/UnitTests/ContractDescriptor/TargetTests.SubDescriptors.cs similarity index 98% rename from src/native/managed/cdac/tests/ContractDescriptor/TargetTests.SubDescriptors.cs rename to src/native/managed/cdac/tests/UnitTests/ContractDescriptor/TargetTests.SubDescriptors.cs index 960569882c104c..d0a2a9ba2abca5 100644 --- a/src/native/managed/cdac/tests/ContractDescriptor/TargetTests.SubDescriptors.cs +++ b/src/native/managed/cdac/tests/UnitTests/ContractDescriptor/TargetTests.SubDescriptors.cs @@ -6,6 +6,8 @@ using System.Linq; using System.Runtime.CompilerServices; using System.Text; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure.ContractDescriptor; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests.ContractDescriptor; diff --git a/src/native/managed/cdac/tests/ContractDescriptor/TargetTests.cs b/src/native/managed/cdac/tests/UnitTests/ContractDescriptor/TargetTests.cs similarity index 99% rename from src/native/managed/cdac/tests/ContractDescriptor/TargetTests.cs rename to src/native/managed/cdac/tests/UnitTests/ContractDescriptor/TargetTests.cs index b42b9492aa5386..128928377b7e9f 100644 --- a/src/native/managed/cdac/tests/ContractDescriptor/TargetTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/ContractDescriptor/TargetTests.cs @@ -6,6 +6,8 @@ using System.Linq; using System.Runtime.CompilerServices; using System.Text; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure.ContractDescriptor; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests.ContractDescriptor; diff --git a/src/native/managed/cdac/tests/DacDbiImplTests.cs b/src/native/managed/cdac/tests/UnitTests/DacDbiImplTests.cs similarity index 99% rename from src/native/managed/cdac/tests/DacDbiImplTests.cs rename to src/native/managed/cdac/tests/UnitTests/DacDbiImplTests.cs index 5cb4e34d3e46cb..ea5a0c6f70a7af 100644 --- a/src/native/managed/cdac/tests/DacDbiImplTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/DacDbiImplTests.cs @@ -7,6 +7,7 @@ using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Contracts.StackWalkHelpers; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Moq; using Xunit; diff --git a/src/native/managed/cdac/tests/DacStreamsTests.cs b/src/native/managed/cdac/tests/UnitTests/DacStreamsTests.cs similarity index 99% rename from src/native/managed/cdac/tests/DacStreamsTests.cs rename to src/native/managed/cdac/tests/UnitTests/DacStreamsTests.cs index 99e27517ac5bf6..a8e1e3dddd76f1 100644 --- a/src/native/managed/cdac/tests/DacStreamsTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/DacStreamsTests.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Text; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/DebuggerTests.cs b/src/native/managed/cdac/tests/UnitTests/DebuggerTests.cs similarity index 99% rename from src/native/managed/cdac/tests/DebuggerTests.cs rename to src/native/managed/cdac/tests/UnitTests/DebuggerTests.cs index b50d489787cbaf..bf962fa730e9f6 100644 --- a/src/native/managed/cdac/tests/DebuggerTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/DebuggerTests.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/EnumMethodDefinitionsTests.cs b/src/native/managed/cdac/tests/UnitTests/EnumMethodDefinitionsTests.cs similarity index 100% rename from src/native/managed/cdac/tests/EnumMethodDefinitionsTests.cs rename to src/native/managed/cdac/tests/UnitTests/EnumMethodDefinitionsTests.cs diff --git a/src/native/managed/cdac/tests/ExceptionTests.cs b/src/native/managed/cdac/tests/UnitTests/ExceptionTests.cs similarity index 99% rename from src/native/managed/cdac/tests/ExceptionTests.cs rename to src/native/managed/cdac/tests/UnitTests/ExceptionTests.cs index a9681cfeeb2acd..3f4e527eb91fee 100644 --- a/src/native/managed/cdac/tests/ExceptionTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/ExceptionTests.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Moq; using Xunit; diff --git a/src/native/managed/cdac/tests/ExecutionManager/ExecutionManagerTests.cs b/src/native/managed/cdac/tests/UnitTests/ExecutionManager/ExecutionManagerTests.cs similarity index 99% rename from src/native/managed/cdac/tests/ExecutionManager/ExecutionManagerTests.cs rename to src/native/managed/cdac/tests/UnitTests/ExecutionManager/ExecutionManagerTests.cs index ed2796c34f66cb..a8666ca5f5a5b9 100644 --- a/src/native/managed/cdac/tests/ExecutionManager/ExecutionManagerTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/ExecutionManager/ExecutionManagerTests.cs @@ -2,12 +2,12 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using Xunit; - using System.Collections.Generic; using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Moq; +using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests.ExecutionManager; diff --git a/src/native/managed/cdac/tests/ExecutionManager/HashMapTests.cs b/src/native/managed/cdac/tests/UnitTests/ExecutionManager/HashMapTests.cs similarity index 98% rename from src/native/managed/cdac/tests/ExecutionManager/HashMapTests.cs rename to src/native/managed/cdac/tests/UnitTests/ExecutionManager/HashMapTests.cs index 499f74c8411f21..cd83eb1aa11bef 100644 --- a/src/native/managed/cdac/tests/ExecutionManager/HashMapTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/ExecutionManager/HashMapTests.cs @@ -2,8 +2,9 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using Microsoft.Diagnostics.DataContractReader.ExecutionManagerHelpers; using System.Collections.Generic; +using Microsoft.Diagnostics.DataContractReader.ExecutionManagerHelpers; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests.ExecutionManager; diff --git a/src/native/managed/cdac/tests/ExecutionManager/HotColdLookupTests.cs b/src/native/managed/cdac/tests/UnitTests/ExecutionManager/HotColdLookupTests.cs similarity index 99% rename from src/native/managed/cdac/tests/ExecutionManager/HotColdLookupTests.cs rename to src/native/managed/cdac/tests/UnitTests/ExecutionManager/HotColdLookupTests.cs index c0d91f58e07f32..1d6135124caf51 100644 --- a/src/native/managed/cdac/tests/ExecutionManager/HotColdLookupTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/ExecutionManager/HotColdLookupTests.cs @@ -1,11 +1,10 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using Moq; -using Xunit; - using System; using Microsoft.Diagnostics.DataContractReader.ExecutionManagerHelpers; +using Moq; +using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests.ExecutionManager; diff --git a/src/native/managed/cdac/tests/ExecutionManager/NibbleMapTestBuilder.cs b/src/native/managed/cdac/tests/UnitTests/ExecutionManager/NibbleMapTestBuilder.cs similarity index 99% rename from src/native/managed/cdac/tests/ExecutionManager/NibbleMapTestBuilder.cs rename to src/native/managed/cdac/tests/UnitTests/ExecutionManager/NibbleMapTestBuilder.cs index cf023167c01896..e1d5625783316e 100644 --- a/src/native/managed/cdac/tests/ExecutionManager/NibbleMapTestBuilder.cs +++ b/src/native/managed/cdac/tests/UnitTests/ExecutionManager/NibbleMapTestBuilder.cs @@ -3,6 +3,7 @@ using System; using Microsoft.Diagnostics.DataContractReader.ExecutionManagerHelpers; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; namespace Microsoft.Diagnostics.DataContractReader.Tests.ExecutionManager; diff --git a/src/native/managed/cdac/tests/ExecutionManager/NibbleMapTests.cs b/src/native/managed/cdac/tests/UnitTests/ExecutionManager/NibbleMapTests.cs similarity index 99% rename from src/native/managed/cdac/tests/ExecutionManager/NibbleMapTests.cs rename to src/native/managed/cdac/tests/UnitTests/ExecutionManager/NibbleMapTests.cs index c244e57de378bc..4d570045ce7d5f 100644 --- a/src/native/managed/cdac/tests/ExecutionManager/NibbleMapTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/ExecutionManager/NibbleMapTests.cs @@ -1,9 +1,9 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using Xunit; - using Microsoft.Diagnostics.DataContractReader.ExecutionManagerHelpers; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; +using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests.ExecutionManager; diff --git a/src/native/managed/cdac/tests/ExecutionManager/RangeSectionMapTests.cs b/src/native/managed/cdac/tests/UnitTests/ExecutionManager/RangeSectionMapTests.cs similarity index 98% rename from src/native/managed/cdac/tests/ExecutionManager/RangeSectionMapTests.cs rename to src/native/managed/cdac/tests/UnitTests/ExecutionManager/RangeSectionMapTests.cs index 4846f9804732f5..ffefc393358dd7 100644 --- a/src/native/managed/cdac/tests/ExecutionManager/RangeSectionMapTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/ExecutionManager/RangeSectionMapTests.cs @@ -2,9 +2,9 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using Xunit; - using Microsoft.Diagnostics.DataContractReader.ExecutionManagerHelpers; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; +using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests.ExecutionManager; diff --git a/src/native/managed/cdac/tests/ExecutionManager/RuntimeFunctionTests.cs b/src/native/managed/cdac/tests/UnitTests/ExecutionManager/RuntimeFunctionTests.cs similarity index 98% rename from src/native/managed/cdac/tests/ExecutionManager/RuntimeFunctionTests.cs rename to src/native/managed/cdac/tests/UnitTests/ExecutionManager/RuntimeFunctionTests.cs index de66532243e05f..dd068e4fe07010 100644 --- a/src/native/managed/cdac/tests/ExecutionManager/RuntimeFunctionTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/ExecutionManager/RuntimeFunctionTests.cs @@ -1,12 +1,12 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using Xunit; - -using Microsoft.Diagnostics.DataContractReader.ExecutionManagerHelpers; -using System.Collections.Generic; using System; +using System.Collections.Generic; +using Microsoft.Diagnostics.DataContractReader.ExecutionManagerHelpers; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Moq; +using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests.ExecutionManager; diff --git a/src/native/managed/cdac/tests/GCMemoryRegionTests.cs b/src/native/managed/cdac/tests/UnitTests/GCMemoryRegionTests.cs similarity index 99% rename from src/native/managed/cdac/tests/GCMemoryRegionTests.cs rename to src/native/managed/cdac/tests/UnitTests/GCMemoryRegionTests.cs index f64c994e47e5bd..2d2086a1300f60 100644 --- a/src/native/managed/cdac/tests/GCMemoryRegionTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/GCMemoryRegionTests.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/GCTests.cs b/src/native/managed/cdac/tests/UnitTests/GCTests.cs similarity index 99% rename from src/native/managed/cdac/tests/GCTests.cs rename to src/native/managed/cdac/tests/UnitTests/GCTests.cs index ff3c3feb8c01ab..d5529d134950f4 100644 --- a/src/native/managed/cdac/tests/GCTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/GCTests.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/GetRegisterNameTests.cs b/src/native/managed/cdac/tests/UnitTests/GetRegisterNameTests.cs similarity index 99% rename from src/native/managed/cdac/tests/GetRegisterNameTests.cs rename to src/native/managed/cdac/tests/UnitTests/GetRegisterNameTests.cs index c8a92b37040f1c..bc99bbc51ebab5 100644 --- a/src/native/managed/cdac/tests/GetRegisterNameTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/GetRegisterNameTests.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/LoaderHeapTests.cs b/src/native/managed/cdac/tests/UnitTests/LoaderHeapTests.cs similarity index 98% rename from src/native/managed/cdac/tests/LoaderHeapTests.cs rename to src/native/managed/cdac/tests/UnitTests/LoaderHeapTests.cs index 4db75ffd95bce3..baf527820d5aad 100644 --- a/src/native/managed/cdac/tests/LoaderHeapTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/LoaderHeapTests.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/LoaderTests.cs b/src/native/managed/cdac/tests/UnitTests/LoaderTests.cs similarity index 99% rename from src/native/managed/cdac/tests/LoaderTests.cs rename to src/native/managed/cdac/tests/UnitTests/LoaderTests.cs index 60e718b51b751d..8843a4d5161011 100644 --- a/src/native/managed/cdac/tests/LoaderTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/LoaderTests.cs @@ -8,6 +8,7 @@ using System.Text; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Moq; using Xunit; diff --git a/src/native/managed/cdac/tests/MetaDataImportImplTests.cs b/src/native/managed/cdac/tests/UnitTests/MetaDataImportImplTests.cs similarity index 99% rename from src/native/managed/cdac/tests/MetaDataImportImplTests.cs rename to src/native/managed/cdac/tests/UnitTests/MetaDataImportImplTests.cs index 1db47d31236ed6..c951d6b7e4b84e 100644 --- a/src/native/managed/cdac/tests/MetaDataImportImplTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/MetaDataImportImplTests.cs @@ -9,6 +9,7 @@ using System.Runtime.InteropServices; using System.Runtime.InteropServices.Marshalling; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/MethodDescTests.cs b/src/native/managed/cdac/tests/UnitTests/MethodDescTests.cs similarity index 99% rename from src/native/managed/cdac/tests/MethodDescTests.cs rename to src/native/managed/cdac/tests/UnitTests/MethodDescTests.cs index 31365e735fbc93..e16b21181b980f 100644 --- a/src/native/managed/cdac/tests/MethodDescTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/MethodDescTests.cs @@ -7,6 +7,7 @@ using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Data; using Microsoft.Diagnostics.DataContractReader.RuntimeTypeSystemHelpers; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Moq; using Xunit; diff --git a/src/native/managed/cdac/tests/MethodTableTests.cs b/src/native/managed/cdac/tests/UnitTests/MethodTableTests.cs similarity index 99% rename from src/native/managed/cdac/tests/MethodTableTests.cs rename to src/native/managed/cdac/tests/UnitTests/MethodTableTests.cs index 308105aa97a852..e0983ba5a08d9d 100644 --- a/src/native/managed/cdac/tests/MethodTableTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/MethodTableTests.cs @@ -7,8 +7,9 @@ using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; using Microsoft.Diagnostics.DataContractReader.RuntimeTypeSystemHelpers; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; -using static Microsoft.Diagnostics.DataContractReader.Tests.TestHelpers; +using static Microsoft.Diagnostics.DataContractReader.TestInfrastructure.TestHelpers; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/UnitTests/Microsoft.Diagnostics.DataContractReader.Tests.csproj b/src/native/managed/cdac/tests/UnitTests/Microsoft.Diagnostics.DataContractReader.Tests.csproj new file mode 100644 index 00000000000000..32fe6fa499a95a --- /dev/null +++ b/src/native/managed/cdac/tests/UnitTests/Microsoft.Diagnostics.DataContractReader.Tests.csproj @@ -0,0 +1,19 @@ + + + true + $(NetCoreAppToolCurrent) + false + + + + + + + + + + + + + + diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockBuiltInComBuilder.cs b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockBuiltInComBuilder.cs similarity index 99% rename from src/native/managed/cdac/tests/MockDescriptors/MockBuiltInComBuilder.cs rename to src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockBuiltInComBuilder.cs index 20dc2a679bcf29..2d8454913960b4 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockBuiltInComBuilder.cs +++ b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockBuiltInComBuilder.cs @@ -2,6 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; + namespace Microsoft.Diagnostics.DataContractReader.Tests; internal sealed class MockComMethodTable : TypedView diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.CodeVersions.cs b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.CodeVersions.cs similarity index 99% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.CodeVersions.cs rename to src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.CodeVersions.cs index 5ec6375ed8e990..66b72af7c40e3e 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.CodeVersions.cs +++ b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.CodeVersions.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.ExecutionManager.cs b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.ExecutionManager.cs similarity index 99% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.ExecutionManager.cs rename to src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.ExecutionManager.cs index e27fce343d92f6..4e964f04867fd9 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.ExecutionManager.cs +++ b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.ExecutionManager.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Microsoft.Diagnostics.DataContractReader.Tests.ExecutionManager; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.Frame.cs b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.Frame.cs similarity index 99% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.Frame.cs rename to src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.Frame.cs index cc1bb0461778bf..619e8f0628432a 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.Frame.cs +++ b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.Frame.cs @@ -1,6 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; namespace Microsoft.Diagnostics.DataContractReader.Tests; internal class MockFrame : TypedView diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.GC.cs b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.GC.cs similarity index 99% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.GC.cs rename to src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.GC.cs index b5ece366d68857..61b60fdfdc1185 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.GC.cs +++ b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.GC.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.HashMap.cs b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.HashMap.cs similarity index 99% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.HashMap.cs rename to src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.HashMap.cs index 978ac471026151..5799887e9d1b03 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.HashMap.cs +++ b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.HashMap.cs @@ -3,6 +3,7 @@ using System; using System.Linq; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.Loader.cs b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.Loader.cs similarity index 99% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.Loader.cs rename to src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.Loader.cs index 079a149e1df332..09ad3d25260a58 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.Loader.cs +++ b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.Loader.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Text; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.MethodDescriptors.cs b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.MethodDescriptors.cs similarity index 99% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.MethodDescriptors.cs rename to src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.MethodDescriptors.cs index 6a461096d31012..e388a570c63bbe 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.MethodDescriptors.cs +++ b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.MethodDescriptors.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.Object.cs b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.Object.cs similarity index 99% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.Object.cs rename to src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.Object.cs index db96e7152ed194..4fef96a60ee26e 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.Object.cs +++ b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.Object.cs @@ -8,6 +8,7 @@ using System.Runtime.InteropServices; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.RuntimeTypeSystemHelpers; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.ReJIT.cs b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.ReJIT.cs similarity index 98% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.ReJIT.cs rename to src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.ReJIT.cs index 82058359f9e83f..a31806f386e517 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.ReJIT.cs +++ b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.ReJIT.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.RuntimeFunctions.cs b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.RuntimeFunctions.cs similarity index 98% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.RuntimeFunctions.cs rename to src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.RuntimeFunctions.cs index a198138a418869..d481dc349ecf70 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.RuntimeFunctions.cs +++ b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.RuntimeFunctions.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; namespace Microsoft.Diagnostics.DataContractReader.Tests; internal sealed class MockRuntimeFunction : TypedView diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.RuntimeMutableTypeSystem.cs b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.RuntimeMutableTypeSystem.cs similarity index 99% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.RuntimeMutableTypeSystem.cs rename to src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.RuntimeMutableTypeSystem.cs index 2dcb5826349244..992957fdc947c7 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.RuntimeMutableTypeSystem.cs +++ b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.RuntimeMutableTypeSystem.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.RuntimeTypeSystem.cs b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.RuntimeTypeSystem.cs similarity index 99% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.RuntimeTypeSystem.cs rename to src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.RuntimeTypeSystem.cs index d7c1578d147ff8..182f5935b60ed8 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.RuntimeTypeSystem.cs +++ b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.RuntimeTypeSystem.cs @@ -3,6 +3,7 @@ using System; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.SyncBlock.cs b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.SyncBlock.cs similarity index 99% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.SyncBlock.cs rename to src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.SyncBlock.cs index c62c075bd1cd08..2fd2580b46cfd8 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.SyncBlock.cs +++ b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.SyncBlock.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; namespace Microsoft.Diagnostics.DataContractReader.Tests; internal sealed class MockSyncBlockCache : TypedView diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.Thread.cs b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.Thread.cs similarity index 99% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.Thread.cs rename to src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.Thread.cs index c93059e8fb50fe..27cc2db6eaf741 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.Thread.cs +++ b/src/native/managed/cdac/tests/UnitTests/MockDescriptors/MockDescriptors.Thread.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/NotificationsTests.cs b/src/native/managed/cdac/tests/UnitTests/NotificationsTests.cs similarity index 99% rename from src/native/managed/cdac/tests/NotificationsTests.cs rename to src/native/managed/cdac/tests/UnitTests/NotificationsTests.cs index 056a809706036e..c4adcc2dd706d1 100644 --- a/src/native/managed/cdac/tests/NotificationsTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/NotificationsTests.cs @@ -3,6 +3,7 @@ using System; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/ObjectTests.cs b/src/native/managed/cdac/tests/UnitTests/ObjectTests.cs similarity index 99% rename from src/native/managed/cdac/tests/ObjectTests.cs rename to src/native/managed/cdac/tests/UnitTests/ObjectTests.cs index c4cb8d9d21eef7..ede2b54cfb8abf 100644 --- a/src/native/managed/cdac/tests/ObjectTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/ObjectTests.cs @@ -6,6 +6,7 @@ using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Moq; using Xunit; diff --git a/src/native/managed/cdac/tests/ObjectiveCMarshalTests.cs b/src/native/managed/cdac/tests/UnitTests/ObjectiveCMarshalTests.cs similarity index 98% rename from src/native/managed/cdac/tests/ObjectiveCMarshalTests.cs rename to src/native/managed/cdac/tests/UnitTests/ObjectiveCMarshalTests.cs index d328f99e6e4adb..d3f242b5410b83 100644 --- a/src/native/managed/cdac/tests/ObjectiveCMarshalTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/ObjectiveCMarshalTests.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/PlatformContextTests.cs b/src/native/managed/cdac/tests/UnitTests/PlatformContextTests.cs similarity index 100% rename from src/native/managed/cdac/tests/PlatformContextTests.cs rename to src/native/managed/cdac/tests/UnitTests/PlatformContextTests.cs diff --git a/src/native/managed/cdac/tests/PrecodeStubsTests.cs b/src/native/managed/cdac/tests/UnitTests/PrecodeStubsTests.cs similarity index 99% rename from src/native/managed/cdac/tests/PrecodeStubsTests.cs rename to src/native/managed/cdac/tests/UnitTests/PrecodeStubsTests.cs index 4f22833ec8394b..99b27f2c5dcdc4 100644 --- a/src/native/managed/cdac/tests/PrecodeStubsTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/PrecodeStubsTests.cs @@ -1,14 +1,14 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using Xunit; -using Moq; -using Microsoft.DotNet.XUnitExtensions; - -using Microsoft.Diagnostics.DataContractReader.Contracts; -using System.Collections.Generic; using System; +using System.Collections.Generic; using System.Reflection; +using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; +using Microsoft.DotNet.XUnitExtensions; +using Moq; +using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/PrintfStressMessageFormatterTests.cs b/src/native/managed/cdac/tests/UnitTests/PrintfStressMessageFormatterTests.cs similarity index 100% rename from src/native/managed/cdac/tests/PrintfStressMessageFormatterTests.cs rename to src/native/managed/cdac/tests/UnitTests/PrintfStressMessageFormatterTests.cs diff --git a/src/native/managed/cdac/tests/README.md b/src/native/managed/cdac/tests/UnitTests/README.md similarity index 100% rename from src/native/managed/cdac/tests/README.md rename to src/native/managed/cdac/tests/UnitTests/README.md diff --git a/src/native/managed/cdac/tests/ReJITTests.cs b/src/native/managed/cdac/tests/UnitTests/ReJITTests.cs similarity index 99% rename from src/native/managed/cdac/tests/ReJITTests.cs rename to src/native/managed/cdac/tests/UnitTests/ReJITTests.cs index 8dd980f84d4500..398474de184b2d 100644 --- a/src/native/managed/cdac/tests/ReJITTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/ReJITTests.cs @@ -6,6 +6,7 @@ using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Contracts.Extensions; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Moq; using Xunit; diff --git a/src/native/managed/cdac/tests/RuntimeInfoTests.cs b/src/native/managed/cdac/tests/UnitTests/RuntimeInfoTests.cs similarity index 98% rename from src/native/managed/cdac/tests/RuntimeInfoTests.cs rename to src/native/managed/cdac/tests/UnitTests/RuntimeInfoTests.cs index a8f6c73a244e41..02e552eefa152b 100644 --- a/src/native/managed/cdac/tests/RuntimeInfoTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/RuntimeInfoTests.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/RuntimeMutableTypeSystemTests.cs b/src/native/managed/cdac/tests/UnitTests/RuntimeMutableTypeSystemTests.cs similarity index 99% rename from src/native/managed/cdac/tests/RuntimeMutableTypeSystemTests.cs rename to src/native/managed/cdac/tests/UnitTests/RuntimeMutableTypeSystemTests.cs index 999beaa6ef90df..8a14361e17d6e5 100644 --- a/src/native/managed/cdac/tests/RuntimeMutableTypeSystemTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/RuntimeMutableTypeSystemTests.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Moq; using Xunit; diff --git a/src/native/managed/cdac/tests/SOSDacInterface5Tests.cs b/src/native/managed/cdac/tests/UnitTests/SOSDacInterface5Tests.cs similarity index 99% rename from src/native/managed/cdac/tests/SOSDacInterface5Tests.cs rename to src/native/managed/cdac/tests/UnitTests/SOSDacInterface5Tests.cs index 5fd4e20d3ebb39..1da74f6d4d2a19 100644 --- a/src/native/managed/cdac/tests/SOSDacInterface5Tests.cs +++ b/src/native/managed/cdac/tests/UnitTests/SOSDacInterface5Tests.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Moq; using Xunit; diff --git a/src/native/managed/cdac/tests/SOSDacInterface8Tests.cs b/src/native/managed/cdac/tests/UnitTests/SOSDacInterface8Tests.cs similarity index 99% rename from src/native/managed/cdac/tests/SOSDacInterface8Tests.cs rename to src/native/managed/cdac/tests/UnitTests/SOSDacInterface8Tests.cs index c9df8e9a6d375e..1403e94f78a52b 100644 --- a/src/native/managed/cdac/tests/SOSDacInterface8Tests.cs +++ b/src/native/managed/cdac/tests/UnitTests/SOSDacInterface8Tests.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/SignatureTests.cs b/src/native/managed/cdac/tests/UnitTests/SignatureTests.cs similarity index 99% rename from src/native/managed/cdac/tests/SignatureTests.cs rename to src/native/managed/cdac/tests/UnitTests/SignatureTests.cs index 622108b494a4c3..6f54a3e86a7030 100644 --- a/src/native/managed/cdac/tests/SignatureTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/SignatureTests.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/StackWalkTests.cs b/src/native/managed/cdac/tests/UnitTests/StackWalkTests.cs similarity index 99% rename from src/native/managed/cdac/tests/StackWalkTests.cs rename to src/native/managed/cdac/tests/UnitTests/StackWalkTests.cs index b8d9382ef88334..c8945685dbac78 100644 --- a/src/native/managed/cdac/tests/StackWalkTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/StackWalkTests.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Linq; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Moq; using Xunit; diff --git a/src/native/managed/cdac/tests/SyncBlockTests.cs b/src/native/managed/cdac/tests/UnitTests/SyncBlockTests.cs similarity index 98% rename from src/native/managed/cdac/tests/SyncBlockTests.cs rename to src/native/managed/cdac/tests/UnitTests/SyncBlockTests.cs index dcd18bc9c93391..155c8d5bf78850 100644 --- a/src/native/managed/cdac/tests/SyncBlockTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/SyncBlockTests.cs @@ -3,9 +3,9 @@ using System; using System.Collections.Generic; -using Xunit; - using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; +using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/ThreadTests.cs b/src/native/managed/cdac/tests/UnitTests/ThreadTests.cs similarity index 99% rename from src/native/managed/cdac/tests/ThreadTests.cs rename to src/native/managed/cdac/tests/UnitTests/ThreadTests.cs index 921096a8196ec0..7e5ef29a2909e2 100644 --- a/src/native/managed/cdac/tests/ThreadTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/ThreadTests.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/TypeDescTests.cs b/src/native/managed/cdac/tests/UnitTests/TypeDescTests.cs similarity index 99% rename from src/native/managed/cdac/tests/TypeDescTests.cs rename to src/native/managed/cdac/tests/UnitTests/TypeDescTests.cs index b10ccc20d3751e..a93d3d9263a34c 100644 --- a/src/native/managed/cdac/tests/TypeDescTests.cs +++ b/src/native/managed/cdac/tests/UnitTests/TypeDescTests.cs @@ -6,6 +6,7 @@ using System.Reflection.Metadata; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.RuntimeTypeSystemHelpers; +using Microsoft.Diagnostics.DataContractReader.TestInfrastructure; using Xunit; namespace Microsoft.Diagnostics.DataContractReader.Tests;