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));