diff --git a/eng/Subsets.props b/eng/Subsets.props index 21db6bbdcb8609..74603ddd7bb5a5 100644 --- a/eng/Subsets.props +++ b/eng/Subsets.props @@ -515,13 +515,16 @@ + $(SharedNativeRoot)managed\cdac\Microsoft.Diagnostics.DataContractReader.Abstractions\Microsoft.Diagnostics.DataContractReader.Abstractions.csproj; + $(SharedNativeRoot)managed\cdac\Microsoft.Diagnostics.DataContractReader.Legacy\Microsoft.Diagnostics.DataContractReader.Legacy.csproj; + $(SharedNativeRoot)managed\cdac\Microsoft.Diagnostics.DataContractReader.Contracts\Microsoft.Diagnostics.DataContractReader.Contracts.csproj" Category="tools" Condition="'$(DotNetBuildSourceOnly)' != 'true'" /> + + + - + diff --git a/src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Abstractions/Microsoft.Diagnostics.DataContractReader.Abstractions.csproj b/src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Abstractions/Microsoft.Diagnostics.DataContractReader.Abstractions.csproj index 2827af8ec1fe21..0f303b0d9bfa47 100644 --- a/src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Abstractions/Microsoft.Diagnostics.DataContractReader.Abstractions.csproj +++ b/src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Abstractions/Microsoft.Diagnostics.DataContractReader.Abstractions.csproj @@ -1,7 +1,7 @@ - $(NetCoreAppToolCurrent) + $(NetMinimum) Microsoft.Diagnostics.DataContractReader enable true diff --git a/src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Contracts/Microsoft.Diagnostics.DataContractReader.Contracts.csproj b/src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Contracts/Microsoft.Diagnostics.DataContractReader.Contracts.csproj index 340a1b149d2578..7d0c3e25885030 100644 --- a/src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Contracts/Microsoft.Diagnostics.DataContractReader.Contracts.csproj +++ b/src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Contracts/Microsoft.Diagnostics.DataContractReader.Contracts.csproj @@ -1,7 +1,7 @@ - $(NetCoreAppToolCurrent) + $(NetMinimum) Microsoft.Diagnostics.DataContractReader enable true @@ -14,6 +14,7 @@ + diff --git a/src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/Microsoft.Diagnostics.DataContractReader.Legacy.csproj b/src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/Microsoft.Diagnostics.DataContractReader.Legacy.csproj index 4eb5f58cc529dc..2045ef12486c1d 100644 --- a/src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/Microsoft.Diagnostics.DataContractReader.Legacy.csproj +++ b/src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/Microsoft.Diagnostics.DataContractReader.Legacy.csproj @@ -1,7 +1,7 @@ - $(NetCoreAppToolCurrent) + $(NetMinimum) Microsoft.Diagnostics.DataContractReader.Legacy enable true diff --git a/src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader/Microsoft.Diagnostics.DataContractReader.csproj b/src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader/Microsoft.Diagnostics.DataContractReader.csproj index 57a380547b7ae3..3210e4497b1364 100644 --- a/src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader/Microsoft.Diagnostics.DataContractReader.csproj +++ b/src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader/Microsoft.Diagnostics.DataContractReader.csproj @@ -1,7 +1,7 @@ - $(NetCoreAppToolCurrent) + $(NetMinimum) Microsoft.Diagnostics.DataContractReader enable true diff --git a/src/native/managed/cdac/README.md b/src/native/managed/cdac/README.md index 7dc210c56116ee..2f735081e85d34 100644 --- a/src/native/managed/cdac/README.md +++ b/src/native/managed/cdac/README.md @@ -81,7 +81,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/Microsoft.Diagnostics.DataContractReader.Tests/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 7449d30624ec2d..47c766820507a8 100644 --- a/src/native/managed/cdac/cdac.slnx +++ b/src/native/managed/cdac/cdac.slnx @@ -12,7 +12,8 @@ - + + 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 073649dfd52218..f826a660034535 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,8 +25,8 @@ - - + + diff --git a/src/native/managed/cdac/tests/BuiltInCOMTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/BuiltInCOMTests.cs similarity index 99% rename from src/native/managed/cdac/tests/BuiltInCOMTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/BuiltInCOMTests.cs index ef09a50c22e3b8..0d7a48c6f043a7 100644 --- a/src/native/managed/cdac/tests/BuiltInCOMTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/BuiltInCOMTests.cs @@ -7,6 +7,7 @@ using Microsoft.Diagnostics.DataContractReader.Contracts; using Moq; using Xunit; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/ClrDataExceptionStateTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ClrDataExceptionStateTests.cs similarity index 99% rename from src/native/managed/cdac/tests/ClrDataExceptionStateTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ClrDataExceptionStateTests.cs index 65b90e88637557..04f119be37ec91 100644 --- a/src/native/managed/cdac/tests/ClrDataExceptionStateTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ClrDataExceptionStateTests.cs @@ -6,6 +6,7 @@ using Xunit; using Microsoft.Diagnostics.DataContractReader.Contracts; using Microsoft.Diagnostics.DataContractReader.Legacy; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/ClrDataTaskTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ClrDataTaskTests.cs similarity index 96% rename from src/native/managed/cdac/tests/ClrDataTaskTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ClrDataTaskTests.cs index 36d87438814fc2..ac154120ac654c 100644 --- a/src/native/managed/cdac/tests/ClrDataTaskTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ClrDataTaskTests.cs @@ -4,6 +4,7 @@ using System; using Microsoft.Diagnostics.DataContractReader.Legacy; using Xunit; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/CodeVersionsTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/CodeVersionsTests.cs similarity index 99% rename from src/native/managed/cdac/tests/CodeVersionsTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/CodeVersionsTests.cs index 7ceaeea2433ef4..2c309649b02176 100644 --- a/src/native/managed/cdac/tests/CodeVersionsTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/CodeVersionsTests.cs @@ -12,7 +12,8 @@ namespace Microsoft.Diagnostics.DataContractReader.Tests; using static Microsoft.Diagnostics.DataContractReader.Tests.MockExtensions; -using MockCodeVersions = MockDescriptors.CodeVersions; +using MockCodeVersions = Microsoft.Diagnostics.Internal.RuntimeMemoryMocks.MockDescriptors.CodeVersions; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; internal static class MockExtensions { diff --git a/src/native/managed/cdac/tests/ContractDescriptor/ContractDescriptorBuilder.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ContractDescriptor/ContractDescriptorBuilder.cs similarity index 99% rename from src/native/managed/cdac/tests/ContractDescriptor/ContractDescriptorBuilder.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ContractDescriptor/ContractDescriptorBuilder.cs index c7961216806527..3eb939f7aa2354 100644 --- a/src/native/managed/cdac/tests/ContractDescriptor/ContractDescriptorBuilder.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ContractDescriptor/ContractDescriptorBuilder.cs @@ -7,6 +7,7 @@ using System.Diagnostics; using System.Linq; using System.Text; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; namespace Microsoft.Diagnostics.DataContractReader.Tests.ContractDescriptor; diff --git a/src/native/managed/cdac/tests/ContractDescriptor/ContractDescriptorHelpers.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ContractDescriptor/ContractDescriptorHelpers.cs similarity index 99% rename from src/native/managed/cdac/tests/ContractDescriptor/ContractDescriptorHelpers.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ContractDescriptor/ContractDescriptorHelpers.cs index f9ba9241d41384..3ca3ad5281d171 100644 --- a/src/native/managed/cdac/tests/ContractDescriptor/ContractDescriptorHelpers.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ContractDescriptor/ContractDescriptorHelpers.cs @@ -6,6 +6,7 @@ using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; namespace Microsoft.Diagnostics.DataContractReader.Tests.ContractDescriptor; diff --git a/src/native/managed/cdac/tests/ContractDescriptor/ParserTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ContractDescriptor/ParserTests.cs similarity index 100% rename from src/native/managed/cdac/tests/ContractDescriptor/ParserTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ContractDescriptor/ParserTests.cs diff --git a/src/native/managed/cdac/tests/ContractDescriptor/TargetTests.SubDescriptors.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ContractDescriptor/TargetTests.SubDescriptors.cs similarity index 99% rename from src/native/managed/cdac/tests/ContractDescriptor/TargetTests.SubDescriptors.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ContractDescriptor/TargetTests.SubDescriptors.cs index a84012f67a72cf..34d8b1139522c4 100644 --- a/src/native/managed/cdac/tests/ContractDescriptor/TargetTests.SubDescriptors.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ContractDescriptor/TargetTests.SubDescriptors.cs @@ -7,6 +7,7 @@ using System.Runtime.CompilerServices; using System.Text; using Xunit; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; namespace Microsoft.Diagnostics.DataContractReader.Tests.ContractDescriptor; diff --git a/src/native/managed/cdac/tests/ContractDescriptor/TargetTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ContractDescriptor/TargetTests.cs similarity index 99% rename from src/native/managed/cdac/tests/ContractDescriptor/TargetTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ContractDescriptor/TargetTests.cs index 0512e19b9a36ef..584cd3daf503ee 100644 --- a/src/native/managed/cdac/tests/ContractDescriptor/TargetTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ContractDescriptor/TargetTests.cs @@ -7,6 +7,7 @@ using System.Runtime.CompilerServices; using System.Text; using Xunit; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; namespace Microsoft.Diagnostics.DataContractReader.Tests.ContractDescriptor; diff --git a/src/native/managed/cdac/tests/DacStreamsTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/DacStreamsTests.cs similarity index 98% rename from src/native/managed/cdac/tests/DacStreamsTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/DacStreamsTests.cs index c104a33bca325b..7e1fad93a6febd 100644 --- a/src/native/managed/cdac/tests/DacStreamsTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/DacStreamsTests.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; @@ -7,6 +7,7 @@ using Microsoft.Diagnostics.DataContractReader.Contracts; using Moq; using Xunit; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/ExecutionManager/ExecutionManagerTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ExecutionManager/ExecutionManagerTests.cs similarity index 99% rename from src/native/managed/cdac/tests/ExecutionManager/ExecutionManagerTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ExecutionManager/ExecutionManagerTests.cs index b140f2b83aeb29..c0af2d0f67d600 100644 --- a/src/native/managed/cdac/tests/ExecutionManager/ExecutionManagerTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ExecutionManager/ExecutionManagerTests.cs @@ -1,11 +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 System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks.ExecutionManager; 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/Microsoft.Diagnostics.DataContractReader.Tests/ExecutionManager/HashMapTests.cs similarity index 98% rename from src/native/managed/cdac/tests/ExecutionManager/HashMapTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ExecutionManager/HashMapTests.cs index 64818b01d7ae93..b47350044dce4b 100644 --- a/src/native/managed/cdac/tests/ExecutionManager/HashMapTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ExecutionManager/HashMapTests.cs @@ -4,6 +4,7 @@ using Xunit; using Microsoft.Diagnostics.DataContractReader.ExecutionManagerHelpers; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; namespace Microsoft.Diagnostics.DataContractReader.Tests.ExecutionManager; diff --git a/src/native/managed/cdac/tests/ExecutionManager/HotColdLookupTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ExecutionManager/HotColdLookupTests.cs similarity index 100% rename from src/native/managed/cdac/tests/ExecutionManager/HotColdLookupTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ExecutionManager/HotColdLookupTests.cs diff --git a/src/native/managed/cdac/tests/ExecutionManager/NibbleMapTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ExecutionManager/NibbleMapTests.cs similarity index 98% rename from src/native/managed/cdac/tests/ExecutionManager/NibbleMapTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ExecutionManager/NibbleMapTests.cs index c244e57de378bc..35ce2eeb48c42d 100644 --- a/src/native/managed/cdac/tests/ExecutionManager/NibbleMapTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ExecutionManager/NibbleMapTests.cs @@ -4,6 +4,8 @@ using Xunit; using Microsoft.Diagnostics.DataContractReader.ExecutionManagerHelpers; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks.ExecutionManager; namespace Microsoft.Diagnostics.DataContractReader.Tests.ExecutionManager; diff --git a/src/native/managed/cdac/tests/ExecutionManager/RangeSectionMapTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ExecutionManager/RangeSectionMapTests.cs similarity index 98% rename from src/native/managed/cdac/tests/ExecutionManager/RangeSectionMapTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ExecutionManager/RangeSectionMapTests.cs index 5e06e1e86a9ab1..4bbd845aad3302 100644 --- a/src/native/managed/cdac/tests/ExecutionManager/RangeSectionMapTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ExecutionManager/RangeSectionMapTests.cs @@ -5,6 +5,7 @@ using Xunit; using Microsoft.Diagnostics.DataContractReader.ExecutionManagerHelpers; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; namespace Microsoft.Diagnostics.DataContractReader.Tests.ExecutionManager; diff --git a/src/native/managed/cdac/tests/ExecutionManager/RuntimeFunctionTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ExecutionManager/RuntimeFunctionTests.cs similarity index 98% rename from src/native/managed/cdac/tests/ExecutionManager/RuntimeFunctionTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ExecutionManager/RuntimeFunctionTests.cs index 3f76967c77279b..ebc9b0abef6f68 100644 --- a/src/native/managed/cdac/tests/ExecutionManager/RuntimeFunctionTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ExecutionManager/RuntimeFunctionTests.cs @@ -7,6 +7,7 @@ using System.Collections.Generic; using System; using Moq; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; namespace Microsoft.Diagnostics.DataContractReader.Tests.ExecutionManager; diff --git a/src/native/managed/cdac/tests/GCTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/GCTests.cs similarity index 98% rename from src/native/managed/cdac/tests/GCTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/GCTests.cs index 0ecb226db0143d..e785dd09992437 100644 --- a/src/native/managed/cdac/tests/GCTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/GCTests.cs @@ -3,6 +3,7 @@ using Microsoft.Diagnostics.DataContractReader.Contracts; using Xunit; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/GetRegisterNameTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/GetRegisterNameTests.cs similarity index 99% rename from src/native/managed/cdac/tests/GetRegisterNameTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/GetRegisterNameTests.cs index 6aed07e9fc72ba..5e1035bdbc3434 100644 --- a/src/native/managed/cdac/tests/GetRegisterNameTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/GetRegisterNameTests.cs @@ -7,6 +7,7 @@ using Microsoft.Diagnostics.DataContractReader.Legacy; using Moq; using Xunit; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/LoaderTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/LoaderTests.cs similarity index 99% rename from src/native/managed/cdac/tests/LoaderTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/LoaderTests.cs index 999fd6a9fb1320..5abba68b13aab3 100644 --- a/src/native/managed/cdac/tests/LoaderTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/LoaderTests.cs @@ -12,7 +12,8 @@ namespace Microsoft.Diagnostics.DataContractReader.Tests; -using MockLoader = MockDescriptors.Loader; +using MockLoader = Microsoft.Diagnostics.Internal.RuntimeMemoryMocks.MockDescriptors.Loader; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; public unsafe class LoaderTests { diff --git a/src/native/managed/cdac/tests/MethodDescTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/MethodDescTests.cs similarity index 99% rename from src/native/managed/cdac/tests/MethodDescTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/MethodDescTests.cs index c53bf985574ac1..57884f1d297e42 100644 --- a/src/native/managed/cdac/tests/MethodDescTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/MethodDescTests.cs @@ -8,6 +8,7 @@ using Microsoft.Diagnostics.DataContractReader.RuntimeTypeSystemHelpers; using Moq; using Xunit; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/MethodTableTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/MethodTableTests.cs similarity index 99% rename from src/native/managed/cdac/tests/MethodTableTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/MethodTableTests.cs index 2dcb7e843c5421..cf75359ce7027d 100644 --- a/src/native/managed/cdac/tests/MethodTableTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/MethodTableTests.cs @@ -11,7 +11,8 @@ namespace Microsoft.Diagnostics.DataContractReader.Tests; -using MockRTS = MockDescriptors.RuntimeTypeSystem; +using MockRTS = Microsoft.Diagnostics.Internal.RuntimeMemoryMocks.MockDescriptors.RuntimeTypeSystem; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; public class MethodTableTests { diff --git a/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests.csproj b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/Microsoft.Diagnostics.DataContractReader.Tests.csproj similarity index 55% rename from src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests.csproj rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/Microsoft.Diagnostics.DataContractReader.Tests.csproj index c9de2a1bac2da7..a1826eaa4d70ce 100644 --- a/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests.csproj +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/Microsoft.Diagnostics.DataContractReader.Tests.csproj @@ -5,15 +5,11 @@ false - - - - - - + - + + diff --git a/src/native/managed/cdac/tests/ObjectTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ObjectTests.cs similarity index 98% rename from src/native/managed/cdac/tests/ObjectTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ObjectTests.cs index 25cc3395e279ca..de758dd7be9b59 100644 --- a/src/native/managed/cdac/tests/ObjectTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ObjectTests.cs @@ -9,7 +9,8 @@ namespace Microsoft.Diagnostics.DataContractReader.Tests; -using MockObject = MockDescriptors.Object; +using MockObject = Microsoft.Diagnostics.Internal.RuntimeMemoryMocks.MockDescriptors.Object; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; public unsafe class ObjectTests { diff --git a/src/native/managed/cdac/tests/PlatformContextTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/PlatformContextTests.cs similarity index 100% rename from src/native/managed/cdac/tests/PlatformContextTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/PlatformContextTests.cs diff --git a/src/native/managed/cdac/tests/PrecodeStubsTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/PrecodeStubsTests.cs similarity index 99% rename from src/native/managed/cdac/tests/PrecodeStubsTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/PrecodeStubsTests.cs index a5b6c9fea5e15f..116d65a059e440 100644 --- a/src/native/managed/cdac/tests/PrecodeStubsTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/PrecodeStubsTests.cs @@ -8,6 +8,7 @@ using System.Collections.Generic; using System; using System.Reflection; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/PrintfStressMessageFormatterTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/PrintfStressMessageFormatterTests.cs similarity index 100% rename from src/native/managed/cdac/tests/PrintfStressMessageFormatterTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/PrintfStressMessageFormatterTests.cs diff --git a/src/native/managed/cdac/tests/ReJITTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ReJITTests.cs similarity index 97% rename from src/native/managed/cdac/tests/ReJITTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ReJITTests.cs index 172f48e804f68f..01063ec563d9d9 100644 --- a/src/native/managed/cdac/tests/ReJITTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ReJITTests.cs @@ -11,7 +11,8 @@ namespace Microsoft.Diagnostics.DataContractReader.Tests; -using MockReJIT = MockDescriptors.ReJIT; +using MockReJIT = Microsoft.Diagnostics.Internal.RuntimeMemoryMocks.MockDescriptors.ReJIT; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; public class ReJITTests { diff --git a/src/native/managed/cdac/tests/RuntimeInfoTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/RuntimeInfoTests.cs similarity index 98% rename from src/native/managed/cdac/tests/RuntimeInfoTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/RuntimeInfoTests.cs index 7e8430e4bef53e..3931e96defc279 100644 --- a/src/native/managed/cdac/tests/RuntimeInfoTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/RuntimeInfoTests.cs @@ -6,6 +6,7 @@ using Microsoft.Diagnostics.DataContractReader.Contracts; using Moq; using Xunit; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/SOSDacInterface8Tests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/SOSDacInterface8Tests.cs similarity index 99% rename from src/native/managed/cdac/tests/SOSDacInterface8Tests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/SOSDacInterface8Tests.cs index 9ddd72d9ac5a9c..eff674228f7d2d 100644 --- a/src/native/managed/cdac/tests/SOSDacInterface8Tests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/SOSDacInterface8Tests.cs @@ -3,6 +3,7 @@ using Microsoft.Diagnostics.DataContractReader.Legacy; using Xunit; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/SyncBlockTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/SyncBlockTests.cs similarity index 99% rename from src/native/managed/cdac/tests/SyncBlockTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/SyncBlockTests.cs index 67803ba559a421..b0607b955a2593 100644 --- a/src/native/managed/cdac/tests/SyncBlockTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/SyncBlockTests.cs @@ -5,6 +5,7 @@ using Xunit; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/TestHelpers.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/TestHelpers.cs similarity index 100% rename from src/native/managed/cdac/tests/TestHelpers.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/TestHelpers.cs diff --git a/src/native/managed/cdac/tests/ThreadTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ThreadTests.cs similarity index 99% rename from src/native/managed/cdac/tests/ThreadTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ThreadTests.cs index 2e5c3b46e7ff98..08eed1580af08a 100644 --- a/src/native/managed/cdac/tests/ThreadTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/ThreadTests.cs @@ -6,6 +6,7 @@ using Xunit; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/TypeDescTests.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/TypeDescTests.cs similarity index 99% rename from src/native/managed/cdac/tests/TypeDescTests.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/TypeDescTests.cs index 9a79bacdb6be78..63dea890a13bc6 100644 --- a/src/native/managed/cdac/tests/TypeDescTests.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.DataContractReader.Tests/TypeDescTests.cs @@ -7,6 +7,7 @@ using Microsoft.Diagnostics.DataContractReader.RuntimeTypeSystemHelpers; using Moq; using Xunit; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; namespace Microsoft.Diagnostics.DataContractReader.Tests; diff --git a/src/native/managed/cdac/tests/ExecutionManager/NibbleMapTestBuilder.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/ExecutionManager/NibbleMapTestBuilder.cs similarity index 91% rename from src/native/managed/cdac/tests/ExecutionManager/NibbleMapTestBuilder.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/ExecutionManager/NibbleMapTestBuilder.cs index cf023167c01896..a5e964b4f82239 100644 --- a/src/native/managed/cdac/tests/ExecutionManager/NibbleMapTestBuilder.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/ExecutionManager/NibbleMapTestBuilder.cs @@ -4,9 +4,11 @@ using System; using Microsoft.Diagnostics.DataContractReader.ExecutionManagerHelpers; -namespace Microsoft.Diagnostics.DataContractReader.Tests.ExecutionManager; +using Microsoft.Diagnostics.DataContractReader; -internal abstract class NibbleMapTestBuilderBase +namespace Microsoft.Diagnostics.Internal.RuntimeMemoryMocks.ExecutionManager; + +public abstract class NibbleMapTestBuilderBase { // This is the base address of the memory range that the map covers. // The map works on code pointers as offsets from this address @@ -34,17 +36,17 @@ internal abstract class NibbleMapTestBuilderBase protected const uint HighestNibbleMask = NibbleMask << HighestNibbleBit; - protected ulong Addr2Pos(ulong addr) + protected static ulong Addr2Pos(ulong addr) { return addr >>> Log2BytesPerBucket; } - protected uint Addr2Offs(ulong addr) + protected static uint Addr2Offs(ulong addr) { return (uint) (((addr & MaskBytesPerBucket) >>> Log2CodeAlign) + 1); } - protected int Pos2ShiftCount (ulong addr) + protected static int Pos2ShiftCount (ulong addr) { return HighestNibbleBit - (int)((addr & NibblesPerDwordMask) << Log2NibbleSize); } @@ -72,7 +74,7 @@ public NibbleMapTestBuilderBase(TargetPointer mapBase, ulong mapRangeSize, MockM public abstract void AllocateCodeChunk(TargetCodePointer codeStart, uint codeSize); } -internal class NibbleMapTestBuilder_1 : NibbleMapTestBuilderBase +public class NibbleMapTestBuilder_1 : NibbleMapTestBuilderBase { public NibbleMapTestBuilder_1(TargetPointer mapBase, ulong mapRangeSize, TargetPointer mapStart, MockTarget.Architecture arch) : base(mapBase, mapRangeSize, mapStart, arch) @@ -99,7 +101,7 @@ public override void AllocateCodeChunk(TargetCodePointer codeStart, uint codeSiz uint index = (uint) (pos >>> Log2NibblesPerDword); uint mask = ~(HighestNibbleMask >>> (int)((pos & NibblesPerDwordMask) << Log2NibbleSize)); - value = value << Pos2ShiftCount(pos); + value <<= Pos2ShiftCount(pos); Span entry = NibbleMapFragment.Data.AsSpan((int)(index * sizeof(uint)), sizeof(uint)); uint oldValue = TestPlaceholderTarget.ReadFromSpan(entry, Arch.IsLittleEndian); @@ -114,7 +116,7 @@ public override void AllocateCodeChunk(TargetCodePointer codeStart, uint codeSiz } } -internal class NibbleMapTestBuilder_2 : NibbleMapTestBuilderBase +public class NibbleMapTestBuilder_2 : NibbleMapTestBuilderBase { public NibbleMapTestBuilder_2(TargetPointer mapBase, ulong mapRangeSize, TargetPointer mapStart, MockTarget.Architecture arch) : base(mapBase, mapRangeSize, mapStart, arch) @@ -141,7 +143,7 @@ public override void AllocateCodeChunk(TargetCodePointer codeStart, uint codeSiz uint index = (uint) (pos >>> Log2NibblesPerDword); uint mask = ~(HighestNibbleMask >>> (int)((pos & NibblesPerDwordMask) << Log2NibbleSize)); - value = value << Pos2ShiftCount(pos); + value <<= Pos2ShiftCount(pos); Span entry = NibbleMapFragment.Data.AsSpan((int)(index * sizeof(uint)), sizeof(uint)); uint oldValue = TestPlaceholderTarget.ReadFromSpan(entry, Arch.IsLittleEndian); @@ -157,11 +159,11 @@ public override void AllocateCodeChunk(TargetCodePointer codeStart, uint codeSiz ulong firstByteAfterMethod = delta + (uint)codeSize; uint encodedPointer = NibbleMapConstantLookup.EncodePointer((uint)delta); index++; - while((index + 1) * 256 <= firstByteAfterMethod) + while ((index + 1) * 256 <= firstByteAfterMethod) { entry = NibbleMapFragment.Data.AsSpan((int)(index * sizeof(uint)), sizeof(uint)); oldValue = TestPlaceholderTarget.ReadFromSpan(entry, Arch.IsLittleEndian); - if(oldValue != 0) + if (oldValue != 0) { throw new InvalidOperationException("Overwriting existing offset"); } diff --git a/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks.csproj b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks.csproj new file mode 100644 index 00000000000000..e57a3917c46d10 --- /dev/null +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks.csproj @@ -0,0 +1,24 @@ + + + + $(NetMinimum) + Microsoft.Diagnostics.Internal.RuntimeMemoryMocks + annotations + true + + false + true + true + false + + + + + + + + + + + + diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.CodeVersions.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.CodeVersions.cs similarity index 97% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.CodeVersions.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.CodeVersions.cs index feee26fc9c24f8..22fed8aeb83870 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.CodeVersions.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.CodeVersions.cs @@ -5,9 +5,13 @@ using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +using Data = Microsoft.Diagnostics.DataContractReader.Data; -internal partial class MockDescriptors +using Microsoft.Diagnostics.DataContractReader; + +namespace Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; + +public static partial class MockDescriptors { public class CodeVersions { @@ -113,7 +117,6 @@ public TargetPointer AddMethodDescVersioningState(TargetPointer nativeCodeVersio public TargetPointer AddNativeCodeVersionNode() { - Target.TypeInfo info = Types[DataType.NativeCodeVersionNode]; MockMemorySpace.HeapFragment fragment = _codeVersionsAllocator.Allocate((ulong)Types[DataType.NativeCodeVersionNode].Size, "NativeCodeVersionNode"); Builder.AddHeapFragment(fragment); return fragment.Address; @@ -176,7 +179,7 @@ public TargetPointer AddILCodeVersionNode(TargetPointer prevNodeAddress, TargetN Builder.TargetTestHelpers.WritePointer(fragment.Data.AsSpan().Slice(info.Fields[nameof(Data.ILCodeVersionNode.Next)].Offset), TargetPointer.Null); // set the previous node next pointer to the new node - if(prevNodeAddress != TargetPointer.Null) + if (prevNodeAddress != TargetPointer.Null) { Span prevNode = Builder.BorrowAddressRange(prevNodeAddress, fragment.Data.Length); Builder.TargetTestHelpers.WritePointer(prevNode.Slice(info.Fields[nameof(Data.ILCodeVersionNode.Next)].Offset), fragment.Address); diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.ExecutionManager.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.ExecutionManager.cs similarity index 97% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.ExecutionManager.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.ExecutionManager.cs index 524ff8e21405dc..ba19877dbdfc32 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.ExecutionManager.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.ExecutionManager.cs @@ -5,19 +5,23 @@ using System.Collections.Generic; using System.Linq; using Microsoft.Diagnostics.DataContractReader.ExecutionManagerHelpers; -using Microsoft.Diagnostics.DataContractReader.Tests.ExecutionManager; +using Microsoft.Diagnostics.Internal.RuntimeMemoryMocks.ExecutionManager; using InteriorMapValue = Microsoft.Diagnostics.DataContractReader.ExecutionManagerHelpers.RangeSectionMap.InteriorMapValue; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +using Data = Microsoft.Diagnostics.DataContractReader.Data; -internal partial class MockDescriptors +using Microsoft.Diagnostics.DataContractReader; + +namespace Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; + +public static partial class MockDescriptors { - internal class ExecutionManager + public class ExecutionManager { public const ulong ExecutionManagerCodeRangeMapAddress = 0x000a_fff0; - const int RealCodeHeaderSize = 0x30; // must be big enough for the offsets of RealCodeHeader size in ExecutionManagerTestTarget, below + private const int RealCodeHeaderSize = 0x30; // must be big enough for the offsets of RealCodeHeader size in ExecutionManagerTestTarget, below public struct AllocationRange { @@ -42,11 +46,11 @@ public struct AllocationRange ExecutionManagerStart = 0x0033_4000, ExecutionManagerEnd = 0x0033_5000, }; - internal class RangeSectionMapTestBuilder + public class RangeSectionMapTestBuilder { - const ulong DefaultTopLevelAddress = 0x0000_1000u; // arbitrary - const int EntriesPerMapLevel = 256; // for now its fixed at 256, see codeman.h RangeSectionMap::entriesPerMapLevel - const int BitsPerLevel = 8; + private const ulong DefaultTopLevelAddress = 0x0000_1000u; // arbitrary + private const int EntriesPerMapLevel = 256; // for now its fixed at 256, see codeman.h RangeSectionMap::entriesPerMapLevel + private const int BitsPerLevel = 8; private readonly TargetPointer _topLevelAddress; private readonly MockMemorySpace.Builder _builder; @@ -144,7 +148,7 @@ private RangeSectionMap.Cursor GetOrAddLevelSlot(TargetCodePointer address, Rang // ensures that the maps for all the levels for the given address are allocated. // returns the address of the slot in the last level that corresponds to the given address - RangeSectionMap.Cursor EnsureLevelsForAddress(TargetCodePointer address, bool collectible = false) + private RangeSectionMap.Cursor EnsureLevelsForAddress(TargetCodePointer address, bool collectible = false) { int topIndex = EffectiveBitsForLevel(address, _levels); RangeSectionMap.Cursor cursor = new RangeSectionMap.Cursor(TopLevel, _levels, topIndex); @@ -352,7 +356,7 @@ internal NibbleMapTestBuilderBase CreateNibbleMap(ulong codeRangeStart, uint cod return nibBuilder; } - internal readonly struct JittedCodeRange + public readonly struct JittedCodeRange { public MockMemorySpace.BumpAllocator Allocator { get; init; } public ulong RangeStart => Allocator.RangeStart; diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.GC.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.GC.cs similarity index 98% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.GC.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.GC.cs index f10f69b4378716..a74105e1ca0687 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.GC.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.GC.cs @@ -5,14 +5,18 @@ using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +using Data = Microsoft.Diagnostics.DataContractReader.Data; + +using Microsoft.Diagnostics.DataContractReader; + +namespace Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; /// /// Configuration object for GC heap mock data, used with /// and /// . /// -internal class GCHeapBuilder +public class GCHeapBuilder { // The native GC sizes m_FillPointers as total_generation_count + ExtraSegCount. private const int DefaultGenerationCount = 4; @@ -23,14 +27,14 @@ internal class GCHeapBuilder public record struct GenerationInput { - public ulong StartSegment; - public ulong AllocationStart; - public ulong AllocContextPointer; - public ulong AllocContextLimit; + public ulong StartSegment { get; set; } + public ulong AllocationStart { get; set; } + public ulong AllocContextPointer { get; set; } + public ulong AllocContextLimit { get; set; } } } -internal static class GCHeapBuilderExtensions +public static class GCHeapBuilderExtensions { private const ulong DefaultAllocationRangeStart = 0x0010_0000; private const ulong DefaultAllocationRangeEnd = 0x0020_0000; diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.HashMap.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.HashMap.cs similarity index 95% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.HashMap.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.HashMap.cs index 84230ad874276b..c76dab9c740e37 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.HashMap.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.HashMap.cs @@ -5,9 +5,14 @@ using System.Collections.Generic; using System.Linq; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +using Data = Microsoft.Diagnostics.DataContractReader.Data; -internal partial class MockDescriptors +using ExecutionManagerHelpers = Microsoft.Diagnostics.DataContractReader.ExecutionManagerHelpers; +using Microsoft.Diagnostics.DataContractReader; + +namespace Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; + +public static partial class MockDescriptors { public class HashMap { @@ -18,7 +23,7 @@ public class HashMap DataType = DataType.HashMap, Fields = [ - new (nameof(Data.HashMap.Buckets), DataType.pointer), + new(nameof(Data.HashMap.Buckets), DataType.pointer), ] }; diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.Loader.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.Loader.cs similarity index 94% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.Loader.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.Loader.cs index 303cc468df3adc..0cd5baa2a44182 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.Loader.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.Loader.cs @@ -5,9 +5,13 @@ using System.Collections.Generic; using System.Text; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +using Data = Microsoft.Diagnostics.DataContractReader.Data; -internal partial class MockDescriptors +using Microsoft.Diagnostics.DataContractReader; + +namespace Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; + +public static partial class MockDescriptors { public class Loader { diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.MethodDescriptors.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.MethodDescriptors.cs similarity index 98% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.MethodDescriptors.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.MethodDescriptors.cs index 06ec85b8852758..08ae9055681bcf 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.MethodDescriptors.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.MethodDescriptors.cs @@ -5,9 +5,13 @@ using System.Collections.Generic; using System.Linq; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +using Data = Microsoft.Diagnostics.DataContractReader.Data; -internal partial class MockDescriptors +using Microsoft.Diagnostics.DataContractReader; + +namespace Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; + +public static partial class MockDescriptors { public class MethodDescriptors { diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.Object.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.Object.cs similarity index 98% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.Object.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.Object.cs index 3f99a46e8d13d2..75b3535e861c16 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.Object.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.Object.cs @@ -8,9 +8,13 @@ using System.Runtime.InteropServices; using Microsoft.Diagnostics.DataContractReader.RuntimeTypeSystemHelpers; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +using Data = Microsoft.Diagnostics.DataContractReader.Data; -internal partial class MockDescriptors +using Microsoft.Diagnostics.DataContractReader; + +namespace Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; + +public static partial class MockDescriptors { public class Object { diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.ReJIT.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.ReJIT.cs similarity index 93% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.ReJIT.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.ReJIT.cs index f3e9085b7857ec..fd4f793f6ef378 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.ReJIT.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.ReJIT.cs @@ -5,9 +5,13 @@ using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +using Data = Microsoft.Diagnostics.DataContractReader.Data; -internal partial class MockDescriptors +using Microsoft.Diagnostics.DataContractReader; + +namespace Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; + +public static partial class MockDescriptors { public class ReJIT { @@ -78,10 +82,12 @@ public ILCodeVersionHandle AddExplicitILCodeVersion(TargetNUInt rejitId, RejitFl [ ProfControlBlockFields ]); - foreach(var (dataType, typeInfo) in cvTypes) + + foreach (var (dataType, typeInfo) in cvTypes) { types.Add(dataType, typeInfo); } + return types; } diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.RuntimeFunctions.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.RuntimeFunctions.cs similarity index 95% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.RuntimeFunctions.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.RuntimeFunctions.cs index c7d772f96d6308..e10a52bbc3c111 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.RuntimeFunctions.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.RuntimeFunctions.cs @@ -5,11 +5,15 @@ using System.Collections.Generic; using System.Linq; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +using Data = Microsoft.Diagnostics.DataContractReader.Data; -internal partial class MockDescriptors +using Microsoft.Diagnostics.DataContractReader; + +namespace Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; + +public static partial class MockDescriptors { - internal class RuntimeFunctions + public class RuntimeFunctions { private static TypeFields RuntimeFunctionFields(bool includeEndAddress) { @@ -94,7 +98,7 @@ public TargetPointer AddRuntimeFunctions(uint[] runtimeFunctions) } else { - // First 18 bits of the header are function length / (pointer size / 2) + // First 18 bits of the header are function length / (pointer size / 2) uint headerBits = (uint)(functionLength / (helpers.PointerSize / 2)); if (headerBits > 1 << 18 - 1) throw new InvalidOperationException("Function length is too long "); diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.RuntimeTypeSystem.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.RuntimeTypeSystem.cs similarity index 98% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.RuntimeTypeSystem.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.RuntimeTypeSystem.cs index 2b9de8e1b31782..0f8486e7d9d116 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.RuntimeTypeSystem.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.RuntimeTypeSystem.cs @@ -5,9 +5,13 @@ using System.Collections.Generic; using Microsoft.Diagnostics.DataContractReader.Contracts; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +using Data = Microsoft.Diagnostics.DataContractReader.Data; -internal partial class MockDescriptors +using Microsoft.Diagnostics.DataContractReader; + +namespace Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; + +public static partial class MockDescriptors { public class RuntimeTypeSystem { @@ -232,7 +236,7 @@ internal TargetPointer AddFunctionPointerTypeDesc(uint callConv, TargetPointer[] helpers.Write(dest.Slice(typeInfo.Fields[nameof(Data.FnPtrTypeDesc.NumArgs)].Offset), retAndArgTypes.Length - 1); helpers.Write(dest.Slice(typeInfo.Fields[nameof(Data.FnPtrTypeDesc.CallConv)].Offset), callConv); helpers.WritePointer(dest.Slice(typeInfo.Fields[nameof(Data.FnPtrTypeDesc.LoaderModule)].Offset), loaderModule); - for (int i = 0; i < retAndArgTypes.Length; i ++) + for (int i = 0; i < retAndArgTypes.Length; i++) { Span span = fragment.Data.AsSpan().Slice(typeInfo.Fields[nameof(Data.FnPtrTypeDesc.RetAndArgTypes)].Offset + i * helpers.PointerSize, helpers.PointerSize); helpers.WritePointer(span, retAndArgTypes[i]); diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.SyncBlock.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.SyncBlock.cs similarity index 96% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.SyncBlock.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.SyncBlock.cs index 139df9cbe074ba..58799f1b6fe200 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.SyncBlock.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.SyncBlock.cs @@ -4,17 +4,18 @@ using System; using System.Collections.Generic; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +using Data = Microsoft.Diagnostics.DataContractReader.Data; -internal partial class MockDescriptors +using Microsoft.Diagnostics.DataContractReader; + +namespace Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; + +public static partial class MockDescriptors { public class SyncBlock { private const ulong DefaultAllocationRangeStart = 0x0001_0000; private const ulong DefaultAllocationRangeEnd = 0x0002_0000; - - private const ulong TestSyncBlockCacheGlobalAddress = 0x0000_0100; - private const ulong TestSyncTableEntriesGlobalAddress = 0x0000_0200; private const ulong TestSyncTableEntriesAddress = 0x0000_0300; internal Dictionary Types { get; } diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.Thread.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.Thread.cs similarity index 98% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.Thread.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.Thread.cs index 806822df964d2e..ec633c0ac40820 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.Thread.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.Thread.cs @@ -4,9 +4,13 @@ using System; using System.Collections.Generic; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +using Data = Microsoft.Diagnostics.DataContractReader.Data; -internal partial class MockDescriptors +using Microsoft.Diagnostics.DataContractReader; + +namespace Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; + +public static partial class MockDescriptors { public class Thread { diff --git a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.cs similarity index 97% rename from src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.cs index 7a0b4fd7a95c18..0350bf8fd23360 100644 --- a/src/native/managed/cdac/tests/MockDescriptors/MockDescriptors.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockDescriptors/MockDescriptors.cs @@ -2,12 +2,14 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Collections.Generic; +using Microsoft.Diagnostics.DataContractReader; +using Data = Microsoft.Diagnostics.DataContractReader.Data; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +namespace Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; -internal partial class MockDescriptors +public static partial class MockDescriptors { - internal record TypeFields + public record TypeFields { public DataType DataType; public TargetTestHelpers.Field[] Fields; diff --git a/src/native/managed/cdac/tests/MockMemorySpace.BumpAllocator.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockMemorySpace.BumpAllocator.cs similarity index 91% rename from src/native/managed/cdac/tests/MockMemorySpace.BumpAllocator.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockMemorySpace.BumpAllocator.cs index 46e1130141b2cc..0ab264bb5fee7d 100644 --- a/src/native/managed/cdac/tests/MockMemorySpace.BumpAllocator.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockMemorySpace.BumpAllocator.cs @@ -7,9 +7,10 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Text; -using Xunit; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +using Microsoft.Diagnostics.DataContractReader; + +namespace Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; /// /// Helper for creating a mock memory space for testing. @@ -18,13 +19,13 @@ 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 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(ulong blockStart, ulong blockEnd) diff --git a/src/native/managed/cdac/tests/MockMemorySpace.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockMemorySpace.cs similarity index 97% rename from src/native/managed/cdac/tests/MockMemorySpace.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockMemorySpace.cs index db9b34e867600c..4134fa19e5a58d 100644 --- a/src/native/managed/cdac/tests/MockMemorySpace.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockMemorySpace.cs @@ -7,9 +7,10 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Text; -using Xunit; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +using Microsoft.Diagnostics.DataContractReader; + +namespace Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; /// /// Helper for creating a mock memory space for testing. @@ -17,9 +18,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 +30,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(); @@ -124,7 +125,7 @@ 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; } diff --git a/src/native/managed/cdac/tests/MockTarget.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockTarget.cs similarity index 95% rename from src/native/managed/cdac/tests/MockTarget.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockTarget.cs index 2950929cf8b08b..3318dc3c2bdc5c 100644 --- a/src/native/managed/cdac/tests/MockTarget.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/MockTarget.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +namespace Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; public class MockTarget { diff --git a/src/native/managed/cdac/tests/TargetTestHelpers.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/TargetTestHelpers.cs similarity index 95% rename from src/native/managed/cdac/tests/TargetTestHelpers.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/TargetTestHelpers.cs index e231cca54942f8..f206142f62b582 100644 --- a/src/native/managed/cdac/tests/TargetTestHelpers.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/TargetTestHelpers.cs @@ -6,8 +6,10 @@ using System.Collections.Generic; using System.Text; -namespace Microsoft.Diagnostics.DataContractReader.Tests; -internal unsafe class TargetTestHelpers +using Microsoft.Diagnostics.DataContractReader; + +namespace Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; +public unsafe class TargetTestHelpers { public MockTarget.Architecture Arch { get; init; } @@ -32,7 +34,7 @@ public TargetTestHelpers(MockTarget.Architecture arch) internal uint StringBaseSize => ObjectBaseSize + sizeof(uint) /* length */ + sizeof(char) /* nul terminator */; - internal void Write(Span dest, byte b) => dest[0] = b; + internal static void Write(Span dest, byte b) => dest[0] = b; internal void Write(Span dest, ushort u) { if (Arch.IsLittleEndian) @@ -180,7 +182,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. @@ -197,7 +199,8 @@ 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 = new(); + for (int i = 0; i < fields.Length; i++) { var (name, type, sizeMaybe) = fields[i]; diff --git a/src/native/managed/cdac/tests/TestPlaceholderTarget.cs b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/TestPlaceholderTarget.cs similarity index 97% rename from src/native/managed/cdac/tests/TestPlaceholderTarget.cs rename to src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/TestPlaceholderTarget.cs index b8e7017885cbdd..210221b8d9dcad 100644 --- a/src/native/managed/cdac/tests/TestPlaceholderTarget.cs +++ b/src/native/managed/cdac/tests/Microsoft.Diagnostics.Internal.RuntimeMemoryMocks/TestPlaceholderTarget.cs @@ -8,13 +8,16 @@ using System.Runtime.CompilerServices; using System.Text; using Microsoft.Diagnostics.DataContractReader.Contracts; +using Data = Microsoft.Diagnostics.DataContractReader.Data; -namespace Microsoft.Diagnostics.DataContractReader.Tests; +using Microsoft.Diagnostics.DataContractReader; + +namespace Microsoft.Diagnostics.Internal.RuntimeMemoryMocks; /// /// 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; @@ -22,7 +25,7 @@ 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); + public delegate int ReadFromTargetDelegate(ulong address, Span buffer); private readonly ReadFromTargetDelegate _dataReader; @@ -48,7 +51,7 @@ internal void SetContracts(ContractRegistry contracts) /// 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; @@ -278,7 +281,7 @@ 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 + internal static unsafe T ReadFromSpan(ReadOnlySpan bytes, bool isLittleEndian) where T : unmanaged, IBinaryInteger, IMinMaxValue { if (sizeof(T) != bytes.Length) throw new ArgumentException(nameof(bytes)); @@ -295,7 +298,7 @@ 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 + internal 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));