Skip to content

Commit 5c9d070

Browse files
authored
chore: Update Microsoft.NET.Test.Sdk version (dotnet#2755)
* chore: update test sdk version * chore: add validation logic of nuget package versions
1 parent 68feeb4 commit 5c9d070

File tree

9 files changed

+69
-28
lines changed

9 files changed

+69
-28
lines changed

samples/BenchmarkDotNet.Samples.FSharp/BenchmarkDotNet.Samples.FSharp.fsproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@
2323
<ItemGroup>
2424
<PackageReference Update="FSharp.Core" Version="9.0.300" />
2525
<PackageReference Update="System.ValueTuple" Version="4.6.1" />
26-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="[17.13.0]" />
26+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
2727
</ItemGroup>
2828
</Project>

samples/BenchmarkDotNet.Samples/BenchmarkDotNet.Samples.csproj

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,13 @@
1919
<PackageReference Include="System.Memory" Version="4.6.3" />
2020
</ItemGroup>
2121
<ItemGroup>
22-
<PackageReference Include="Newtonsoft.Json" Version="[13.0.1]" />
22+
<!-- Use v9.0.3 as baseline package for WithNuGet tests -->
23+
<PackageReference Include="System.Collections.Immutable" Version="9.0.3" />
24+
</ItemGroup>
25+
<ItemGroup>
2326
<PackageReference Include="System.Drawing.Common" Version="9.0.5" />
2427
<!-- The Test SDK is required only for the VSTest Adapter to work -->
25-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="[17.13.0]" />
28+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
2629
<!-- This package enables the Visual Studio Profiler integration IntroVisualStudioProfiler.cs -->
2730
<PackageReference Include="Microsoft.VisualStudio.DiagnosticsHub.BenchmarkDotNetDiagnosers" Version="18.0.36127.1" />
2831
</ItemGroup>

samples/BenchmarkDotNet.Samples/IntroNuGet.cs

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
using System;
2+
using System.Collections.Immutable;
3+
using System.Linq;
24
using BenchmarkDotNet.Attributes;
35
using BenchmarkDotNet.Configs;
46
using BenchmarkDotNet.Jobs;
5-
using Newtonsoft.Json;
67

78
namespace BenchmarkDotNet.Samples
89
{
@@ -26,22 +27,26 @@ public Config()
2627
var baseJob = Job.MediumRun;
2728

2829
string[] targetVersions = [
29-
"13.0.3",
30-
"13.0.2",
31-
"13.0.1"
30+
"9.0.3",
31+
"9.0.4",
32+
"9.0.5",
3233
];
3334

3435
foreach (var version in targetVersions)
3536
{
36-
AddJob(baseJob.WithNuGet("Newtonsoft.Json", version)
37-
.WithId(version));
37+
AddJob(baseJob.WithNuGet("System.Collections.Immutable", version)
38+
.WithId("v"+version));
3839
}
3940
}
4041
}
4142

43+
private static readonly Random rand = new Random(Seed: 0);
44+
private static readonly double[] values = Enumerable.Range(1, 10_000).Select(x => rand.NextDouble()).ToArray();
45+
4246
[Benchmark]
43-
public void SerializeAnonymousObject()
44-
=> JsonConvert.SerializeObject(
45-
new { hello = "world", price = 1.99, now = DateTime.UtcNow });
47+
public void ToImmutableArrayBenchmark()
48+
{
49+
var results = values.ToImmutableArray();
50+
}
4651
}
4752
}

tests/BenchmarkDotNet.Exporters.Plotting.Tests/BenchmarkDotNet.Exporters.Plotting.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<ProjectReference Include="..\BenchmarkDotNet.Tests\BenchmarkDotNet.Tests.csproj" />
1717
</ItemGroup>
1818
<ItemGroup>
19-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="[17.13.0]" />
19+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
2020
<PackageReference Include="xunit" Version="2.9.3" />
2121
<PackageReference Include="xunit.runner.visualstudio" Version="[2.8.2]">
2222
<PrivateAssets>all</PrivateAssets>

tests/BenchmarkDotNet.IntegrationTests.ManualRunning.MultipleFrameworks/BenchmarkDotNet.IntegrationTests.ManualRunning.MultipleFrameworks.csproj

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
<PlatformTarget>AnyCPU</PlatformTarget>
1818
<DebugSymbols>true</DebugSymbols>
1919
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
20+
<!-- Suppress tfm compatibility error when targeting net461 -->
21+
<SuppressTfmSupportBuildErrors>true</SuppressTfmSupportBuildErrors>
2022
</PropertyGroup>
2123
<ItemGroup>
2224
<Compile Include="..\BenchmarkDotNet.IntegrationTests\BenchmarkTestExecutor.cs" Link="BenchmarkTestExecutor.cs" />
@@ -41,7 +43,7 @@
4143
</ItemGroup>
4244
<ItemGroup>
4345
<!-- Microsoft.NET.Test.Sdk breaks netcoreapp2.0 -->
44-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="[17.13.0]" Condition=" '$(TargetFramework)' != 'netcoreapp2.0' " />
46+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" Condition=" '$(TargetFramework)' != 'netcoreapp2.0' " />
4547
<PackageReference Include="xunit" Version="2.9.3" />
4648
<!-- We use older version 2.4.1 for combatibility with netcoreapp2.0. -->
4749
<PackageReference Include="xunit.runner.visualstudio" Version="[2.4.1]">

tests/BenchmarkDotNet.IntegrationTests.ManualRunning/BenchmarkDotNet.IntegrationTests.ManualRunning.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
<ProjectReference Include="..\..\src\BenchmarkDotNet.Diagnostics.Windows\BenchmarkDotNet.Diagnostics.Windows.csproj" />
3535
</ItemGroup>
3636
<ItemGroup>
37-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="[17.13.0]" />
37+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
3838
<PackageReference Include="xunit" Version="2.9.3" />
3939
<PackageReference Include="xunit.runner.visualstudio" Version="[2.8.2]">
4040
<PrivateAssets>all</PrivateAssets>

tests/BenchmarkDotNet.IntegrationTests/BenchmarkDotNet.IntegrationTests.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@
3232
<ProjectReference Include="..\..\src\BenchmarkDotNet.Diagnostics.dotMemory\BenchmarkDotNet.Diagnostics.dotMemory.csproj" />
3333
</ItemGroup>
3434
<ItemGroup>
35-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="[17.13.0]" />
35+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
3636
</ItemGroup>
37-
<ItemGroup>
38-
<!-- We implicitly need v13.0.1 of Newtonsoft.Json for BenchmarkDotNet.IntegrationTests.NuGetReferenceTests -->
39-
<PackageReference Include="Newtonsoft.Json" Version="[13.0.1]" />
37+
<ItemGroup>
38+
<!-- Use v9.0.3 as baseline package for WithNuGet tests -->
39+
<PackageReference Include="System.Collections.Immutable" Version="[9.0.3]" />
4040
<PackageReference Include="xunit" Version="2.9.3" />
4141
<PackageReference Include="xunit.runner.visualstudio" Version="[2.8.2]">
4242
<PrivateAssets>all</PrivateAssets>

tests/BenchmarkDotNet.IntegrationTests/NugetReferenceTests.cs

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
using System;
2+
using System.Collections.Immutable;
3+
using System.Linq;
4+
using System.Reflection;
25
using BenchmarkDotNet.Attributes;
36
using BenchmarkDotNet.Jobs;
47
using BenchmarkDotNet.Portability;
58
using BenchmarkDotNet.Running;
69
using BenchmarkDotNet.Tests.XUnit;
710
using BenchmarkDotNet.Toolchains;
811
using BenchmarkDotNet.Toolchains.Roslyn;
9-
using Newtonsoft.Json;
1012
using Xunit;
1113
using Xunit.Abstractions;
1214

@@ -23,20 +25,26 @@ public void UserCanSpecifyCustomNuGetPackageDependency()
2325
{
2426
var toolchain = RuntimeInformation.GetCurrentRuntime().GetToolchain(preferMsBuildToolchains: true);
2527

26-
var job = Job.Dry.WithToolchain(toolchain).WithNuGet("Newtonsoft.Json", "13.0.2");
28+
const string targetVersion = "9.0.5";
29+
30+
var job = Job.Dry.WithToolchain(toolchain).WithNuGet("System.Collections.Immutable", targetVersion);
2731
var config = CreateSimpleConfig(job: job);
2832

29-
CanExecute<WithCallToNewtonsoft>(config);
33+
var report = CanExecute<WithCallToImmutableArray>(config);
34+
35+
// Validate NuGet package version output message
36+
var stdout = GetSingleStandardOutput(report);
37+
Assert.Contains($"System.Collections.Immutable: {targetVersion}", stdout);
3038
}
3139

3240
[FactEnvSpecific("Roslyn toolchain does not support .NET Core", EnvRequirement.FullFrameworkOnly)]
3341
public void RoslynToolchainDoesNotSupportNuGetPackageDependency()
3442
{
3543
var toolchain = RoslynToolchain.Instance;
3644

37-
var unsupportedJob = Job.Dry.WithToolchain(toolchain).WithNuGet("Newtonsoft.Json", "13.0.2");
45+
var unsupportedJob = Job.Dry.WithToolchain(toolchain).WithNuGet("System.Collections.Immutable", "9.0.5");
3846
var unsupportedJobConfig = CreateSimpleConfig(job: unsupportedJob);
39-
var unsupportedJobBenchmark = BenchmarkConverter.TypeToBenchmarks(typeof(WithCallToNewtonsoft), unsupportedJobConfig);
47+
var unsupportedJobBenchmark = BenchmarkConverter.TypeToBenchmarks(typeof(WithCallToImmutableArray), unsupportedJobConfig);
4048

4149
foreach (var benchmarkCase in unsupportedJobBenchmark.BenchmarksCases)
4250
{
@@ -45,16 +53,39 @@ public void RoslynToolchainDoesNotSupportNuGetPackageDependency()
4553

4654
var supportedJob = Job.Dry.WithToolchain(toolchain);
4755
var supportedConfig = CreateSimpleConfig(job: supportedJob);
48-
var supportedBenchmark = BenchmarkConverter.TypeToBenchmarks(typeof(WithCallToNewtonsoft), supportedConfig);
56+
var supportedBenchmark = BenchmarkConverter.TypeToBenchmarks(typeof(WithCallToImmutableArray), supportedConfig);
4957
foreach (var benchmarkCase in supportedBenchmark.BenchmarksCases)
5058
{
5159
Assert.Empty(toolchain.Validate(benchmarkCase, BenchmarkRunnerClean.DefaultResolver));
5260
}
5361
}
5462

55-
public class WithCallToNewtonsoft
63+
public class WithCallToImmutableArray
5664
{
57-
[Benchmark] public void SerializeAnonymousObject() => JsonConvert.SerializeObject(new { hello = "world", price = 1.99, now = DateTime.UtcNow });
65+
private readonly double[] values;
66+
67+
public WithCallToImmutableArray()
68+
{
69+
var rand = new Random(Seed: 0);
70+
values = Enumerable.Range(1, 10_000)
71+
.Select(x => rand.NextDouble())
72+
.ToArray();
73+
74+
// Gets assembly version text from AssemblyInformationalVersion attribute.
75+
var version = typeof(ImmutableArray).Assembly
76+
.GetCustomAttribute<AssemblyInformationalVersionAttribute>()!
77+
.InformationalVersion
78+
.Split('+')[0];
79+
80+
// Print referenced NuGet package version to stdout.
81+
Console.WriteLine($"System.Collections.Immutable: {version}");
82+
}
83+
84+
[Benchmark]
85+
public void ToImmutableArrayBenchmark()
86+
{
87+
var results = values.ToImmutableArray();
88+
}
5889
}
5990
}
6091
}

tests/BenchmarkDotNet.Tests/BenchmarkDotNet.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
</Content>
1616
</ItemGroup>
1717
<ItemGroup>
18-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="[17.13.0]"/>
18+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1"/>
1919
<PackageReference Include="Verify.Xunit" Version="30.3.1" />
2020
<PackageReference Include="xunit" Version="2.9.3" />
2121
<PackageReference Include="xunit.runner.visualstudio" Version="[2.8.2]">

0 commit comments

Comments
 (0)