From 47e810129186b40b127bc65c71f7719491a0f138 Mon Sep 17 00:00:00 2001 From: Stephen Toub Date: Wed, 13 Aug 2025 14:44:43 -0400 Subject: [PATCH 1/2] Enable logging generator tests on netfx --- .../gen/LoggerMessageGenerator.Emitter.cs | 2 +- .../LoggerMessageGeneratorEmitterTests.cs | 14 +++++++++++--- ...Microsoft.Extensions.Logging.Generators.targets | 6 +++++- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/gen/LoggerMessageGenerator.Emitter.cs b/src/libraries/Microsoft.Extensions.Logging.Abstractions/gen/LoggerMessageGenerator.Emitter.cs index ef55ac527209a7..48749b122b0099 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/gen/LoggerMessageGenerator.Emitter.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/gen/LoggerMessageGenerator.Emitter.cs @@ -177,7 +177,7 @@ private void GenStruct(LoggerMethod lm, string nestedIndentation) string formatMethodBegin = !lm.Message.Contains('{') ? "" : _hasStringCreate ? "string.Create(global::System.Globalization.CultureInfo.InvariantCulture, " : - "global::System.Diagnostics.CodeAnalysis.FormattableString.Invariant("; + "global::System.FormattableString.Invariant("; string formatMethodEnd = formatMethodBegin.Length > 0 ? ")" : ""; _builder.Append($@" diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/tests/Microsoft.Extensions.Logging.Generators.Tests/LoggerMessageGeneratorEmitterTests.cs b/src/libraries/Microsoft.Extensions.Logging.Abstractions/tests/Microsoft.Extensions.Logging.Generators.Tests/LoggerMessageGeneratorEmitterTests.cs index 5f8dc5f9ca20ed..96f163ff80f4e2 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/tests/Microsoft.Extensions.Logging.Generators.Tests/LoggerMessageGeneratorEmitterTests.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/tests/Microsoft.Extensions.Logging.Generators.Tests/LoggerMessageGeneratorEmitterTests.cs @@ -3,6 +3,7 @@ using System; using System.IO; +using System.Linq; using System.Reflection; using System.Threading.Tasks; using SourceGenerators.Tests; @@ -20,7 +21,7 @@ public async Task TestEmitter() string[] sources = Directory.GetFiles("TestClasses"); foreach (var src in sources) { - var testSourceCode = await File.ReadAllTextAsync(src).ConfigureAwait(false); + var testSourceCode = File.ReadAllText(src); var (d, r) = await RoslynTestUtils.RunGenerator( new LoggerMessageGenerator(), @@ -253,9 +254,9 @@ public void GenericTypeParameterAttributesAreRetained() private async Task VerifyAgainstBaselineUsingFile(string filename, string testSourceCode) { - string baseline = LineEndingsHelper.Normalize(await File.ReadAllTextAsync(Path.Combine("Baselines", filename)).ConfigureAwait(false)); + string baseline = LineEndingsHelper.Normalize(File.ReadAllText(Path.Combine("Baselines", filename))); string[] expectedLines = baseline.Replace("%VERSION%", typeof(LoggerMessageGenerator).Assembly.GetName().Version?.ToString()) - .Split(Environment.NewLine); + .Split([Environment.NewLine], StringSplitOptions.None); var (d, r) = await RoslynTestUtils.RunGenerator( new LoggerMessageGenerator(), @@ -265,6 +266,13 @@ private async Task VerifyAgainstBaselineUsingFile(string filename, string testSo Assert.Empty(d); Assert.Single(r); + if (PlatformDetection.IsNetFramework) + { + expectedLines = expectedLines.Select(line => line.Replace( + "string.Create(global::System.Globalization.CultureInfo.InvariantCulture, ", + "global::System.FormattableString.Invariant(")).ToArray(); + } + Assert.True(RoslynTestUtils.CompareLines(expectedLines, r[0].SourceText, out string errorMessage), errorMessage); } diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/tests/Microsoft.Extensions.Logging.Generators.Tests/Microsoft.Extensions.Logging.Generators.targets b/src/libraries/Microsoft.Extensions.Logging.Abstractions/tests/Microsoft.Extensions.Logging.Generators.Tests/Microsoft.Extensions.Logging.Generators.targets index dfc5b8e9ad7856..c247488df3e0d4 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/tests/Microsoft.Extensions.Logging.Generators.Tests/Microsoft.Extensions.Logging.Generators.targets +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/tests/Microsoft.Extensions.Logging.Generators.Tests/Microsoft.Extensions.Logging.Generators.targets @@ -1,7 +1,7 @@ - $(NetCoreAppCurrent) + $(NetCoreAppCurrent);$(NetFrameworkCurrent) true true enable @@ -16,6 +16,10 @@ Link="SourceGenerators\RoslynTestUtils.cs" /> + + + + From 0b8de6538fc5c2779677508eb3c5fd941b75d27b Mon Sep 17 00:00:00 2001 From: Tarek Mahmoud Sayed Date: Wed, 13 Aug 2025 14:40:04 -0700 Subject: [PATCH 2/2] Fix build error in the logging source generator tests when targeting netfx --- eng/Versions.props | 1 - .../Microsoft.Extensions.Logging.Generators.targets | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/eng/Versions.props b/eng/Versions.props index f5b3006345e00f..d61001668130e5 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -129,7 +129,6 @@ 7.0.2 13.0.3 1.0.2 - 2.0.4 4.18.4 8.0.2 2.14.3 diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/tests/Microsoft.Extensions.Logging.Generators.Tests/Microsoft.Extensions.Logging.Generators.targets b/src/libraries/Microsoft.Extensions.Logging.Abstractions/tests/Microsoft.Extensions.Logging.Generators.Tests/Microsoft.Extensions.Logging.Generators.targets index c247488df3e0d4..8e9141f655bd7b 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/tests/Microsoft.Extensions.Logging.Generators.Tests/Microsoft.Extensions.Logging.Generators.targets +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/tests/Microsoft.Extensions.Logging.Generators.Tests/Microsoft.Extensions.Logging.Generators.targets @@ -5,7 +5,7 @@ true true enable - true + true $(NoWarn);NETSDK1206 @@ -23,7 +23,6 @@ -