Skip to content

Commit 2860cab

Browse files
[Test Optimization] Support for MSTest v3.8.x (#6686)
## Summary of changes This PR adds support for MSTest v3.8.x ## Reason for change These new version changed a lot of internal method signatures that break our instrumentation. ## Implementation details Added the missing classes or code to make it work. ## Test coverage ## Other details Ticket: SDTEST-1650 <!-- Fixes #{issue} --> <!-- ⚠️ Note: where possible, please obtain 2 approvals prior to merging. Unless CODEOWNERS specifies otherwise, for external teams it is typically best to have one review from a team member, and one review from apm-dotnet. Trivial changes do not require 2 reviews. --> --------- Co-authored-by: Andrew Lock <andrew.lock@datadoghq.com>
1 parent 4c2790d commit 2860cab

File tree

35 files changed

+1894
-1054
lines changed

35 files changed

+1894
-1054
lines changed

Datadog.Trace.TestOptimization.slnf

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{
2+
"solution": {
3+
"path": "Datadog.Trace.sln",
4+
"projects": [
5+
"tracer\\build\\_build\\_build.csproj",
6+
"tracer\\src\\Datadog.InstrumentedAssemblyGenerator\\Datadog.InstrumentedAssemblyGenerator.csproj",
7+
"tracer\\src\\Datadog.InstrumentedAssemblyVerification\\Datadog.InstrumentedAssemblyVerification.csproj",
8+
"tracer\\src\\Datadog.Trace.Annotations\\Datadog.Trace.Annotations.csproj",
9+
"tracer\\src\\Datadog.Trace.BenchmarkDotNet\\Datadog.Trace.BenchmarkDotNet.csproj",
10+
"tracer\\src\\Datadog.Trace.Coverage.collector\\Datadog.Trace.Coverage.collector.csproj",
11+
"tracer\\src\\Datadog.Trace.Manual\\Datadog.Trace.Manual.csproj",
12+
"tracer\\src\\Datadog.Trace.MSBuild\\Datadog.Trace.MSBuild.csproj",
13+
"tracer\\src\\Datadog.Trace.SourceGenerators\\Datadog.Trace.SourceGenerators.csproj",
14+
"tracer\\src\\Datadog.Trace.Tools.Analyzers\\Datadog.Trace.Tools.Analyzers.csproj",
15+
"tracer\\src\\Datadog.Trace.Tools.Runner\\Datadog.Trace.Tools.Runner.csproj",
16+
"tracer\\src\\Datadog.Trace.Tools.Shared\\Datadog.Trace.Tools.Shared.csproj",
17+
"tracer\\src\\Datadog.Trace\\Datadog.Trace.csproj",
18+
"tracer\\test\\benchmarks\\Benchmarks.Trace\\Benchmarks.Trace.csproj",
19+
"tracer\\test\\Datadog.Trace.BenchmarkDotNet.Tests\\Datadog.Trace.BenchmarkDotNet.Tests.csproj",
20+
"tracer\\test\\Datadog.Trace.ClrProfiler.IntegrationTests\\Datadog.Trace.ClrProfiler.IntegrationTests.csproj",
21+
"tracer\\test\\Datadog.Trace.ClrProfiler.Managed.Tests\\Datadog.Trace.ClrProfiler.Managed.Tests.csproj",
22+
"tracer\\test\\Datadog.Trace.DuckTyping.Tests\\Datadog.Trace.DuckTyping.Tests.csproj",
23+
"tracer\\test\\Datadog.Trace.IntegrationTests\\Datadog.Trace.IntegrationTests.csproj",
24+
"tracer\\test\\Datadog.Trace.TestHelpers.AutoInstrumentation\\Datadog.Trace.TestHelpers.AutoInstrumentation.csproj",
25+
"tracer\\test\\Datadog.Trace.TestHelpers\\Datadog.Trace.TestHelpers.csproj",
26+
"tracer\\test\\Datadog.Trace.Tests\\Datadog.Trace.Tests.csproj",
27+
"tracer\\test\\Datadog.Trace.Tools.Runner.IntegrationTests\\Datadog.Trace.Tools.Runner.IntegrationTests.csproj",
28+
"tracer\\test\\Datadog.Trace.Tools.Runner.Tests\\Datadog.Trace.Tools.Runner.Tests.csproj",
29+
"tracer\\test\\test-applications\\instrumentation\\CallTargetNativeTest\\CallTargetNativeTest.csproj",
30+
"tracer\\test\\test-applications\\integrations\\Samples.CIVisibilityIpc\\Samples.CIVisibilityIpc.csproj",
31+
"tracer\\test\\test-applications\\integrations\\Samples.CIVisibilityVersionMismatch\\Samples.CIVisibilityVersionMismatch.csproj",
32+
"tracer\\test\\test-applications\\integrations\\Samples.MSTestTests2\\Samples.MSTestTests2.csproj",
33+
"tracer\\test\\test-applications\\integrations\\Samples.MSTestTestsRetries\\Samples.MSTestTestsRetries.csproj",
34+
"tracer\\test\\test-applications\\integrations\\Samples.MSTestTests\\Samples.MSTestTests.csproj",
35+
"tracer\\test\\test-applications\\integrations\\Samples.NUnitTestsRetries\\Samples.NUnitTestsRetries.csproj",
36+
"tracer\\test\\test-applications\\integrations\\Samples.NUnitTests\\Samples.NUnitTests.csproj",
37+
"tracer\\test\\test-applications\\integrations\\Samples.XUnitTestsRetriesV3\\Samples.XUnitTestsRetriesV3.csproj",
38+
"tracer\\test\\test-applications\\integrations\\Samples.XUnitTestsRetries\\Samples.XUnitTestsRetries.csproj",
39+
"tracer\\test\\test-applications\\integrations\\Samples.XUnitTestsV3\\Samples.XUnitTestsV3.csproj",
40+
"tracer\\test\\test-applications\\integrations\\Samples.XUnitTests\\Samples.XUnitTests.csproj",
41+
"tracer\\test\\test-applications\\Samples.Shared\\Samples.Shared.shproj",
42+
]
43+
}
44+
}

tracer/build/PackageVersionsLatestMajors.g.props

+27-27
Large diffs are not rendered by default.

tracer/build/PackageVersionsLatestMinors.g.props

+162
Large diffs are not rendered by default.

tracer/build/PackageVersionsLatestSpecific.g.props

+27-27
Large diffs are not rendered by default.

tracer/build/_build/Honeypot/IntegrationGroups.cs

+1
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ static IntegrationMap()
117117
NugetPackages.Add("Microsoft.AspNetCore.Session", new [] { "Microsoft.AspNetCore.Session" });
118118
NugetPackages.Add("Microsoft.TestPlatform.PlatformAbstractions", Array.Empty<string>());
119119
NugetPackages.Add("Microsoft.VisualStudio.TraceDataCollector", Array.Empty<string>());
120+
NugetPackages.Add("Microsoft.TestPlatform.CrossPlatEngine", Array.Empty<string>());
120121
NugetPackages.Add("RestSharp", Array.Empty<string>());
121122

122123
// Manual instrumentation

tracer/build/supported_calltargets.g.json

+120
Original file line numberDiff line numberDiff line change
@@ -9534,6 +9534,28 @@
95349534
"IsAdoNetIntegration": false,
95359535
"InstrumentationCategory": 1
95369536
},
9537+
{
9538+
"IntegrationName": "MsTestV2",
9539+
"AssemblyName": "Microsoft.TestPlatform.CrossPlatEngine",
9540+
"TargetTypeName": "Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Execution.RunTestsWithSources",
9541+
"TargetMethodName": "SendSessionEnd",
9542+
"TargetReturnType": "System.Void",
9543+
"TargetParameterTypes": [],
9544+
"MinimumVersion": {
9545+
"Item1": 14,
9546+
"Item2": 0,
9547+
"Item3": 0
9548+
},
9549+
"MaximumVersion": {
9550+
"Item1": 15,
9551+
"Item2": 65535,
9552+
"Item3": 65535
9553+
},
9554+
"InstrumentationTypeName": "Datadog.Trace.ClrProfiler.AutoInstrumentation.Testing.MsTestV2.RunTestsWithSourcesSendSessionEndIntegration",
9555+
"IntegrationKind": 0,
9556+
"IsAdoNetIntegration": false,
9557+
"InstrumentationCategory": 1
9558+
},
95379559
{
95389560
"IntegrationName": "MsTestV2",
95399561
"AssemblyName": "Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter",
@@ -9624,6 +9646,30 @@
96249646
"IsAdoNetIntegration": false,
96259647
"InstrumentationCategory": 1
96269648
},
9649+
{
9650+
"IntegrationName": "MsTestV2",
9651+
"AssemblyName": "Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter",
9652+
"TargetTypeName": "Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestClassInfo",
9653+
"TargetMethodName": "ExecuteClassCleanup",
9654+
"TargetReturnType": "_",
9655+
"TargetParameterTypes": [
9656+
"_"
9657+
],
9658+
"MinimumVersion": {
9659+
"Item1": 14,
9660+
"Item2": 0,
9661+
"Item3": 0
9662+
},
9663+
"MaximumVersion": {
9664+
"Item1": 14,
9665+
"Item2": 65535,
9666+
"Item3": 65535
9667+
},
9668+
"InstrumentationTypeName": "Datadog.Trace.ClrProfiler.AutoInstrumentation.Testing.MsTestV2.TestClassInfoRunClassCleanupIntegration",
9669+
"IntegrationKind": 0,
9670+
"IsAdoNetIntegration": false,
9671+
"InstrumentationCategory": 1
9672+
},
96279673
{
96289674
"IntegrationName": "MsTestV2",
96299675
"AssemblyName": "Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter",
@@ -9694,6 +9740,28 @@
96949740
"IsAdoNetIntegration": false,
96959741
"InstrumentationCategory": 1
96969742
},
9743+
{
9744+
"IntegrationName": "MsTestV2",
9745+
"AssemblyName": "Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter",
9746+
"TargetTypeName": "Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestMethodRunner",
9747+
"TargetMethodName": "Execute",
9748+
"TargetReturnType": "Microsoft.VisualStudio.TestTools.UnitTesting.TestResult[]",
9749+
"TargetParameterTypes": [],
9750+
"MinimumVersion": {
9751+
"Item1": 14,
9752+
"Item2": 0,
9753+
"Item3": 0
9754+
},
9755+
"MaximumVersion": {
9756+
"Item1": 14,
9757+
"Item2": 65535,
9758+
"Item3": 65535
9759+
},
9760+
"InstrumentationTypeName": "Datadog.Trace.ClrProfiler.AutoInstrumentation.Testing.MsTestV2.TestMethodRunnerExecuteIntegration3_8",
9761+
"IntegrationKind": 0,
9762+
"IsAdoNetIntegration": false,
9763+
"InstrumentationCategory": 1
9764+
},
96979765
{
96989766
"IntegrationName": "MsTestV2",
96999767
"AssemblyName": "Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter",
@@ -9791,6 +9859,58 @@
97919859
"IsAdoNetIntegration": false,
97929860
"InstrumentationCategory": 1
97939861
},
9862+
{
9863+
"IntegrationName": "MsTestV2",
9864+
"AssemblyName": "Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter",
9865+
"TargetTypeName": "Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner",
9866+
"TargetMethodName": "RunSingleTest",
9867+
"TargetReturnType": "Microsoft.VisualStudio.TestTools.UnitTesting.TestResult[]",
9868+
"TargetParameterTypes": [
9869+
"Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestMethod",
9870+
"System.Collections.Generic.IDictionary`2[System.String,System.Object]",
9871+
"Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging.IMessageLogger"
9872+
],
9873+
"MinimumVersion": {
9874+
"Item1": 14,
9875+
"Item2": 0,
9876+
"Item3": 0
9877+
},
9878+
"MaximumVersion": {
9879+
"Item1": 14,
9880+
"Item2": 65535,
9881+
"Item3": 65535
9882+
},
9883+
"InstrumentationTypeName": "Datadog.Trace.ClrProfiler.AutoInstrumentation.Testing.MsTestV2.UnitTestRunnerRunSingleTestIntegration3_8",
9884+
"IntegrationKind": 0,
9885+
"IsAdoNetIntegration": false,
9886+
"InstrumentationCategory": 1
9887+
},
9888+
{
9889+
"IntegrationName": "MsTestV2",
9890+
"AssemblyName": "Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter",
9891+
"TargetTypeName": "Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner",
9892+
"TargetMethodName": "RunSingleTestAsync",
9893+
"TargetReturnType": "System.Threading.Tasks.Task`1[Microsoft.VisualStudio.TestTools.UnitTesting.TestResult[]]",
9894+
"TargetParameterTypes": [
9895+
"Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestMethod",
9896+
"System.Collections.Generic.IDictionary`2[System.String,System.Object]",
9897+
"Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging.IMessageLogger"
9898+
],
9899+
"MinimumVersion": {
9900+
"Item1": 14,
9901+
"Item2": 0,
9902+
"Item3": 0
9903+
},
9904+
"MaximumVersion": {
9905+
"Item1": 14,
9906+
"Item2": 65535,
9907+
"Item3": 65535
9908+
},
9909+
"InstrumentationTypeName": "Datadog.Trace.ClrProfiler.AutoInstrumentation.Testing.MsTestV2.UnitTestRunnerRunSingleTestAsyncIntegration3_8",
9910+
"IntegrationKind": 0,
9911+
"IsAdoNetIntegration": false,
9912+
"InstrumentationCategory": 1
9913+
},
97949914
{
97959915
"IntegrationName": "MsTestV2",
97969916
"AssemblyName": "Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter",

tracer/build/supported_versions.json

+33-26
Original file line numberDiff line numberDiff line change
@@ -242,8 +242,8 @@
242242
"minVersionAvailableInclusive": "3.1.0",
243243
"minVersionSupportedInclusive": "3.1.0",
244244
"minVersionTestedInclusive": "3.1.5.3",
245-
"maxVersionSupportedInclusive": "3.7.405.22",
246-
"maxVersionAvailableInclusive": "3.7.405.22",
245+
"maxVersionSupportedInclusive": "3.7.405.24",
246+
"maxVersionAvailableInclusive": "3.7.405.24",
247247
"maxVersionTestedInclusive": "3.7.405.22"
248248
}
249249
]
@@ -259,8 +259,8 @@
259259
"minVersionAvailableInclusive": "3.3.100",
260260
"minVersionSupportedInclusive": "3.3.100",
261261
"minVersionTestedInclusive": "3.3.102.16",
262-
"maxVersionSupportedInclusive": "3.7.402.37",
263-
"maxVersionAvailableInclusive": "3.7.402.37",
262+
"maxVersionSupportedInclusive": "3.7.402.39",
263+
"maxVersionAvailableInclusive": "3.7.402.39",
264264
"maxVersionTestedInclusive": "3.7.402.37"
265265
}
266266
]
@@ -276,8 +276,8 @@
276276
"minVersionAvailableInclusive": "3.1.0",
277277
"minVersionSupportedInclusive": "3.1.0",
278278
"minVersionTestedInclusive": "3.1.3.5",
279-
"maxVersionSupportedInclusive": "3.7.402.72",
280-
"maxVersionAvailableInclusive": "3.7.402.72",
279+
"maxVersionSupportedInclusive": "3.7.402.74",
280+
"maxVersionAvailableInclusive": "3.7.402.74",
281281
"maxVersionTestedInclusive": "3.7.402.72"
282282
}
283283
]
@@ -310,8 +310,8 @@
310310
"minVersionAvailableInclusive": "3.1.0",
311311
"minVersionSupportedInclusive": "3.3.0",
312312
"minVersionTestedInclusive": "3.3.113.2",
313-
"maxVersionSupportedInclusive": "3.7.415",
314-
"maxVersionAvailableInclusive": "3.7.415",
313+
"maxVersionSupportedInclusive": "3.7.415.2",
314+
"maxVersionAvailableInclusive": "3.7.415.2",
315315
"maxVersionTestedInclusive": "3.7.415"
316316
}
317317
]
@@ -327,8 +327,8 @@
327327
"minVersionAvailableInclusive": "3.1.0",
328328
"minVersionSupportedInclusive": "3.1.0",
329329
"minVersionTestedInclusive": null,
330-
"maxVersionSupportedInclusive": "3.7.402.1",
331-
"maxVersionAvailableInclusive": "3.7.402.1",
330+
"maxVersionSupportedInclusive": "3.7.402.3",
331+
"maxVersionAvailableInclusive": "3.7.402.3",
332332
"maxVersionTestedInclusive": null
333333
}
334334
]
@@ -344,8 +344,8 @@
344344
"minVersionAvailableInclusive": "3.1.0",
345345
"minVersionSupportedInclusive": "3.1.0",
346346
"minVersionTestedInclusive": "3.1.2.1",
347-
"maxVersionSupportedInclusive": "3.7.400.95",
348-
"maxVersionAvailableInclusive": "3.7.400.95",
347+
"maxVersionSupportedInclusive": "3.7.400.97",
348+
"maxVersionAvailableInclusive": "3.7.400.97",
349349
"maxVersionTestedInclusive": "3.7.400.95"
350350
}
351351
]
@@ -361,8 +361,8 @@
361361
"minVersionAvailableInclusive": "3.1.0",
362362
"minVersionSupportedInclusive": "3.1.0",
363363
"minVersionTestedInclusive": "3.1.0.13",
364-
"maxVersionSupportedInclusive": "3.7.400.95",
365-
"maxVersionAvailableInclusive": "3.7.400.95",
364+
"maxVersionSupportedInclusive": "3.7.400.97",
365+
"maxVersionAvailableInclusive": "3.7.400.97",
366366
"maxVersionTestedInclusive": "3.7.400.95"
367367
}
368368
]
@@ -378,8 +378,8 @@
378378
"minVersionAvailableInclusive": "3.3.0",
379379
"minVersionSupportedInclusive": "3.3.0",
380380
"minVersionTestedInclusive": "3.3.104.87",
381-
"maxVersionSupportedInclusive": "3.7.403.38",
382-
"maxVersionAvailableInclusive": "3.7.403.38",
381+
"maxVersionSupportedInclusive": "3.7.403.40",
382+
"maxVersionAvailableInclusive": "3.7.403.40",
383383
"maxVersionTestedInclusive": "3.7.403.38"
384384
}
385385
]
@@ -460,8 +460,8 @@
460460
"minVersionAvailableInclusive": "3.0.0",
461461
"minVersionSupportedInclusive": "3.6.0",
462462
"minVersionTestedInclusive": "3.6.0",
463-
"maxVersionSupportedInclusive": "3.47.0",
464-
"maxVersionAvailableInclusive": "3.47.0",
463+
"maxVersionSupportedInclusive": "3.47.1",
464+
"maxVersionAvailableInclusive": "3.47.1",
465465
"maxVersionTestedInclusive": "3.47.0"
466466
}
467467
]
@@ -560,8 +560,8 @@
560560
"minVersionAvailableInclusive": "0.1.0",
561561
"minVersionSupportedInclusive": "2.3.0",
562562
"minVersionTestedInclusive": "4.1.0",
563-
"maxVersionSupportedInclusive": "8.3.1",
564-
"maxVersionAvailableInclusive": "8.3.1",
563+
"maxVersionSupportedInclusive": "8.4.0",
564+
"maxVersionAvailableInclusive": "8.4.0",
565565
"maxVersionTestedInclusive": "8.3.1"
566566
}
567567
]
@@ -885,6 +885,13 @@
885885
"maxAssemblyVersionInclusive": "4.65535.65535",
886886
"packages": []
887887
},
888+
{
889+
"integrationName": "MsTestV2",
890+
"assemblyName": "Microsoft.TestPlatform.CrossPlatEngine",
891+
"minAssemblyVersionInclusive": "14.0.0",
892+
"maxAssemblyVersionInclusive": "15.65535.65535",
893+
"packages": []
894+
},
888895
{
889896
"integrationName": "MsTestV2",
890897
"assemblyName": "Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter",
@@ -896,8 +903,8 @@
896903
"minVersionAvailableInclusive": "1.1.11",
897904
"minVersionSupportedInclusive": "1.1.11",
898905
"minVersionTestedInclusive": null,
899-
"maxVersionSupportedInclusive": "3.7.3",
900-
"maxVersionAvailableInclusive": "3.8.0",
906+
"maxVersionSupportedInclusive": "3.8.2",
907+
"maxVersionAvailableInclusive": "3.8.2",
901908
"maxVersionTestedInclusive": null
902909
}
903910
]
@@ -1087,8 +1094,8 @@
10871094
"minVersionAvailableInclusive": "1.0.0",
10881095
"minVersionSupportedInclusive": "3.6.9",
10891096
"minVersionTestedInclusive": "3.6.9",
1090-
"maxVersionSupportedInclusive": "7.0.0",
1091-
"maxVersionAvailableInclusive": "7.0.0",
1097+
"maxVersionSupportedInclusive": "7.1.0",
1098+
"maxVersionAvailableInclusive": "7.1.0",
10921099
"maxVersionTestedInclusive": "7.0.0"
10931100
}
10941101
]
@@ -1111,8 +1118,8 @@
11111118
"minVersionAvailableInclusive": "2.2.0",
11121119
"minVersionSupportedInclusive": "3.0.0",
11131120
"minVersionTestedInclusive": "4.0.1",
1114-
"maxVersionSupportedInclusive": "4.28.0",
1115-
"maxVersionAvailableInclusive": "4.28.0",
1121+
"maxVersionSupportedInclusive": "4.29.0",
1122+
"maxVersionAvailableInclusive": "4.29.0",
11161123
"maxVersionTestedInclusive": "4.28.0"
11171124
}
11181125
]

0 commit comments

Comments
 (0)