From f05abce14d75924c57ed0ccd9c97331f8d774800 Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Thu, 26 Oct 2023 17:45:11 +0200 Subject: [PATCH 1/2] test: RuntimeHostConfigurationOptionIsCopied --- .../CsProjGeneratorTests.cs | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/tests/BenchmarkDotNet.Tests/CsProjGeneratorTests.cs b/tests/BenchmarkDotNet.Tests/CsProjGeneratorTests.cs index 715d7dad64..323da8ddba 100644 --- a/tests/BenchmarkDotNet.Tests/CsProjGeneratorTests.cs +++ b/tests/BenchmarkDotNet.Tests/CsProjGeneratorTests.cs @@ -18,6 +18,11 @@ namespace BenchmarkDotNet.Tests public class CsProjGeneratorTests { private FileInfo TestAssemblyFileInfo = new FileInfo(typeof(CsProjGeneratorTests).Assembly.Location); + private const string runtimeHostConfigurationOptionChunk = """ + + + +"""; [Theory] [InlineData("net471", false)] @@ -68,7 +73,7 @@ private void AssertParsedSdkName(string csProjContent, string targetFrameworkMon private static void AssertCustomProperties(string expected, string actual) { - Assert.Equal(expected.Replace(Environment.NewLine, "\n").Replace("\n", Environment.NewLine), actual); + Assert.Equal(expected.Replace("\r", "").Replace("\n", Environment.NewLine), actual); } [Fact] @@ -158,6 +163,24 @@ public void SettingsFromPropsFileImportedUsingRelativePathGetCopies() File.Delete(propsFilePath); } + [Fact] + public void RuntimeHostConfigurationOptionIsCopied() + { + string source = $@" + +{runtimeHostConfigurationOptionChunk} +"; + + var sut = new CsProjGenerator("netcoreapp3.0", null, null, null, true); + + var xmlDoc = new XmlDocument(); + xmlDoc.LoadXml(source); + var (customProperties, sdkName) = sut.GetSettingsThatNeedToBeCopied(xmlDoc, TestAssemblyFileInfo); + + AssertCustomProperties(runtimeHostConfigurationOptionChunk, customProperties); + Assert.Equal("Microsoft.NET.Sdk", sdkName); + } + [Fact] public void TheDefaultFilePathShouldBeUsedWhenAnAssemblyLocationIsEmpty() { From 3fecb17ca2dcf36d4ac26a1576fe573cb087a38b Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Thu, 26 Oct 2023 17:46:03 +0200 Subject: [PATCH 2/2] feat: set RuntimeHostConfigurationOption on generated project --- src/BenchmarkDotNet/Toolchains/CsProj/CsProjGenerator.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/BenchmarkDotNet/Toolchains/CsProj/CsProjGenerator.cs b/src/BenchmarkDotNet/Toolchains/CsProj/CsProjGenerator.cs index af12d018b5..eaf1da4683 100644 --- a/src/BenchmarkDotNet/Toolchains/CsProj/CsProjGenerator.cs +++ b/src/BenchmarkDotNet/Toolchains/CsProj/CsProjGenerator.cs @@ -34,7 +34,8 @@ public class CsProjGenerator : DotNetCliGenerator, IEquatable "CopyLocalLockFileAssemblies", "PreserveCompilationContext", "UserSecretsId", - "EnablePreviewFeatures" + "EnablePreviewFeatures", + "RuntimeHostConfigurationOption", }.ToImmutableArray(); public string RuntimeFrameworkVersion { get; }