From ade2db3f8527b119d7fd499e9d6b99d29817e574 Mon Sep 17 00:00:00 2001 From: Sam Harwell Date: Fri, 8 May 2020 12:28:18 -0700 Subject: [PATCH 1/5] Update Microsoft.CodeAnalysis.Workspaces.UnitTests to target netcoreapp3.1 --- .../InternalUtilities/ExceptionUtilities.cs | 7 +- .../CoreTest/BatchFixAllProviderTests.cs | 4 - .../CoreTest/CodeCleanup/ReduceTokenTests.cs | 126 +++++++++--------- ...t.CodeAnalysis.Workspaces.UnitTests.csproj | 6 +- .../UtilityTest/ReferenceHolderTests.cs | 2 +- ...soft.CodeAnalysis.Remote.Workspaces.csproj | 2 - 6 files changed, 76 insertions(+), 71 deletions(-) diff --git a/src/Compilers/Core/Portable/InternalUtilities/ExceptionUtilities.cs b/src/Compilers/Core/Portable/InternalUtilities/ExceptionUtilities.cs index 7b105407dd699..3f2a09b8b9175 100644 --- a/src/Compilers/Core/Portable/InternalUtilities/ExceptionUtilities.cs +++ b/src/Compilers/Core/Portable/InternalUtilities/ExceptionUtilities.cs @@ -19,7 +19,12 @@ internal static class ExceptionUtilities internal static Exception UnexpectedValue(object? o) { string output = string.Format("Unexpected value '{0}' of type '{1}'", o, (o != null) ? o.GetType().FullName : ""); - Debug.Assert(false, output); +#if DEBUG + if (Debugger.IsAttached) + { + Debug.Assert(false, output); + } +#endif // We do not throw from here because we don't want all Watson reports to be bucketed to this call. return new InvalidOperationException(output); diff --git a/src/Workspaces/CoreTest/BatchFixAllProviderTests.cs b/src/Workspaces/CoreTest/BatchFixAllProviderTests.cs index 7820ad8cf5f56..df5e4e2323ce4 100644 --- a/src/Workspaces/CoreTest/BatchFixAllProviderTests.cs +++ b/src/Workspaces/CoreTest/BatchFixAllProviderTests.cs @@ -105,11 +105,7 @@ public override Task RegisterCodeFixesAsync(CodeFixContext context) if (_nested) { -#if NETCOREAPP2_0 || NET472 fixes = new List { CodeAction.Create("Container", fixes.ToImmutableArray(), isInlinable: false) }; -#else - throw new NotSupportedException("Nested code actions are not supported on this framework."); -#endif } foreach (var fix in fixes) diff --git a/src/Workspaces/CoreTest/CodeCleanup/ReduceTokenTests.cs b/src/Workspaces/CoreTest/CodeCleanup/ReduceTokenTests.cs index 7332c19ce01df..2408a16cb0c4b 100644 --- a/src/Workspaces/CoreTest/CodeCleanup/ReduceTokenTests.cs +++ b/src/Workspaces/CoreTest/CodeCleanup/ReduceTokenTests.cs @@ -18,6 +18,12 @@ namespace Microsoft.CodeAnalysis.UnitTests.CodeCleanup [UseExportProvider] public class ReduceTokenTests { +#if NETCOREAPP + private static bool IsNetCoreApp => true; +#else + private static bool IsNetCoreApp => false; +#endif + [Fact] [WorkItem(5529, "DevDiv_Projects/Roslyn")] [Trait(Traits.Feature, Traits.Features.ReduceTokens)] @@ -225,23 +231,23 @@ End Sub End Module |]"; - var expected = @" + var expected = $@" Module Program Sub Main(args As String()) ' CATEGORY 2: 8 significant digits ' Dev11 and Roslyn behavior are identical: Always rounded off and pretty listed to <= 9 significant digits Const f_8_1 As Single = 0.14999795F ' Dev11 & Roslyn: 0.14999795F - Const f_8_2 As Single = 0.149997965F ' Dev11 & Roslyn: 0.149997965F + Const f_8_2 As Single = {(IsNetCoreApp ? "0.14999796F" : "0.149997965F")} ' Dev11 & Roslyn: 0.149997965F Const f_8_3 As Single = 0.1499797F ' Dev11 & Roslyn: Unchanged - Const f_8_4 As Single = 1.49997938F ' Dev11 & Roslyn: 1.49997938F - Const f_8_5 As Single = 1.49997973F ' Dev11 & Roslyn: 1.49997973F + Const f_8_4 As Single = {(IsNetCoreApp ? "1.4999794F" : "1.49997938F")} ' Dev11 & Roslyn: 1.49997938F + Const f_8_5 As Single = {(IsNetCoreApp ? "1.4999797F" : "1.49997973F")} ' Dev11 & Roslyn: 1.49997973F - Const f_8_6 As Single = 1499.97937F ' Dev11 & Roslyn: 1499.97937F + Const f_8_6 As Single = {(IsNetCoreApp ? "1499.9794F" : "1499.97937F")} ' Dev11 & Roslyn: 1499.97937F - Const f_8_7 As Single = 1499979.75F ' Dev11 & Roslyn: 1499979.75F + Const f_8_7 As Single = {(IsNetCoreApp ? "1499979.8F" : "1499979.75F")} ' Dev11 & Roslyn: 1499979.75F Const f_8_8 As Single = 14999797.0F ' Dev11 & Roslyn: unchanged @@ -296,23 +302,23 @@ End Sub End Module |]"; - var expected = @" + var expected = $@" Module Program Sub Main(args As String()) ' CATEGORY 2: 8 significant digits ' Dev11 and Roslyn behavior are identical: Always rounded off and pretty listed to <= 9 significant digits Const f_8_1 As Single = 0.14999795! ' Dev11 & Roslyn: 0.14999795F - Const f_8_2 As Single = 0.149997965! ' Dev11 & Roslyn: 0.149997965F + Const f_8_2 As Single = {(IsNetCoreApp ? "0.14999796!" : "0.149997965!")} ' Dev11 & Roslyn: 0.149997965F Const f_8_3 As Single = 0.1499797! ' Dev11 & Roslyn: Unchanged - Const f_8_4 As Single = 1.49997938! ' Dev11 & Roslyn: 1.49997938F - Const f_8_5 As Single = 1.49997973! ' Dev11 & Roslyn: 1.49997973F + Const f_8_4 As Single = {(IsNetCoreApp ? "1.4999794!" : "1.49997938!")} ' Dev11 & Roslyn: 1.49997938F + Const f_8_5 As Single = {(IsNetCoreApp ? "1.4999797!" : "1.49997973!")} ' Dev11 & Roslyn: 1.49997973F - Const f_8_6 As Single = 1499.97937! ' Dev11 & Roslyn: 1499.97937F + Const f_8_6 As Single = {(IsNetCoreApp ? "1499.9794!" : "1499.97937!")} ' Dev11 & Roslyn: 1499.97937F - Const f_8_7 As Single = 1499979.75! ' Dev11 & Roslyn: 1499979.75F + Const f_8_7 As Single = {(IsNetCoreApp ? "1499979.8!" : "1499979.75!")} ' Dev11 & Roslyn: 1499979.75F Const f_8_8 As Single = 14999797.0! ' Dev11 & Roslyn: unchanged @@ -379,24 +385,24 @@ End Sub End Module |]"; - var expected = @" + var expected = $@" Module Program Sub Main(args As String()) ' CATEGORY 3: > 8 significant digits ' Dev11 and Roslyn behavior are identical: Always rounded off and pretty listed to <= 9 significant digits ' (a) > 8 significant digits overall, but < 8 digits before decimal point. - Const f_9_1 As Single = 0.149997935F ' Dev11 & Roslyn: 0.149997935F - Const f_9_2 As Single = 0.149997935F ' Dev11 & Roslyn: 0.149997935F - Const f_9_3 As Single = 1.49997962F ' Dev11 & Roslyn: 1.49997962F + Const f_9_1 As Single = {(IsNetCoreApp ? "0.14999793F" : "0.149997935F")} ' Dev11 & Roslyn: 0.149997935F + Const f_9_2 As Single = {(IsNetCoreApp ? "0.14999793F" : "0.149997935F")} ' Dev11 & Roslyn: 0.149997935F + Const f_9_3 As Single = {(IsNetCoreApp ? "1.4999796F" : "1.49997962F")} ' Dev11 & Roslyn: 1.49997962F - Const f_10_1 As Single = 14999.7969F ' Dev11 & Roslyn: 14999.7969F + Const f_10_1 As Single = {(IsNetCoreApp ? "14999.797F" : "14999.7969F")} ' Dev11 & Roslyn: 14999.7969F ' (b) > 8 significant digits before decimal point. - Const f_10_2 As Single = 149997968.0F ' Dev11 & Roslyn: 149997968.0F - Const f_10_3 As Single = 1.49997965E+9F ' Dev11 & Roslyn: 1.49997965E+9F + Const f_10_2 As Single = {(IsNetCoreApp ? "149997970.0F" : "149997968.0F")} ' Dev11 & Roslyn: 149997968.0F + Const f_10_3 As Single = {(IsNetCoreApp ? "1.4999796E+9F" : "1.49997965E+9F")} ' Dev11 & Roslyn: 1.49997965E+9F - Const f_24_1 As Single = 1.11111148E+20F ' Dev11 & Roslyn: 1.11111148E+20F + Const f_24_1 As Single = {(IsNetCoreApp ? "1.1111115E+20F" : "1.11111148E+20F")} ' Dev11 & Roslyn: 1.11111148E+20F ' (c) Overflow/Underflow cases for Single: Ensure no pretty listing/round off ' Holds signed IEEE 32-bit (4-byte) single-precision floating-point numbers ranging in value from -3.4028235E+38 through -1.401298E-45 for negative values and @@ -474,24 +480,24 @@ End Sub End Module |]"; - var expected = @" + var expected = $@" Module Program Sub Main(args As String()) ' CATEGORY 3: > 8 significant digits ' Dev11 and Roslyn behavior are identical: Always rounded off and pretty listed to <= 9 significant digits ' (a) > 8 significant digits overall, but < 8 digits before decimal point. - Const f_9_1 As Single = 0.149997935! ' Dev11 & Roslyn: 0.149997935F - Const f_9_2 As Single = 0.149997935! ' Dev11 & Roslyn: 0.149997935F - Const f_9_3 As Single = 1.49997962! ' Dev11 & Roslyn: 1.49997962F + Const f_9_1 As Single = {(IsNetCoreApp ? "0.14999793!" : "0.149997935!")} ' Dev11 & Roslyn: 0.149997935F + Const f_9_2 As Single = {(IsNetCoreApp ? "0.14999793!" : "0.149997935!")} ' Dev11 & Roslyn: 0.149997935F + Const f_9_3 As Single = {(IsNetCoreApp ? "1.4999796!" : "1.49997962!")} ' Dev11 & Roslyn: 1.49997962F - Const f_10_1 As Single = 14999.7969! ' Dev11 & Roslyn: 14999.7969F + Const f_10_1 As Single = {(IsNetCoreApp ? "14999.797!" : "14999.7969!")} ' Dev11 & Roslyn: 14999.7969F ' (b) > 8 significant digits before decimal point. - Const f_10_2 As Single = 149997968.0! ' Dev11 & Roslyn: 149997968.0F - Const f_10_3 As Single = 1.49997965E+9! ' Dev11 & Roslyn: 1.49997965E+9F + Const f_10_2 As Single = {(IsNetCoreApp ? "149997970.0!" : "149997968.0!")} ' Dev11 & Roslyn: 149997968.0F + Const f_10_3 As Single = {(IsNetCoreApp ? "1.4999796E+9!" : "1.49997965E+9!")} ' Dev11 & Roslyn: 1.49997965E+9F - Const f_24_1 As Single = 1.11111148E+20! ' Dev11 & Roslyn: 1.11111148E+20F + Const f_24_1 As Single = {(IsNetCoreApp ? "1.1111115E+20!" : "1.11111148E+20!")} ' Dev11 & Roslyn: 1.11111148E+20F ' (c) Overflow/Underflow cases for Single: Ensure no pretty listing/round off ' Holds signed IEEE 32-bit (4-byte) single-precision floating-point numbers ranging in value from -3.4028235E+38 through -1.401298E-45 for negative values and @@ -731,25 +737,25 @@ End Sub End Module |]"; - var expected = @" + var expected = $@" Module Program Sub Main(args As String()) ' CATEGORY 2: 16 significant digits ' Dev11 and Roslyn behavior are identical: Always rounded off and pretty listed to <= 17 significant digits Const f_16_1 As Double = 0.1499999999799993 ' Dev11 & Roslyn: 0.1499999999799993 - Const f_16_2 As Double = 0.14999999997999969 ' Dev11 & Roslyn: 0.14999999997999969 + Const f_16_2 As Double = {(IsNetCoreApp ? "0.1499999999799997" : "0.14999999997999969")} ' Dev11 & Roslyn: 0.14999999997999969 Const f_16_3 As Double = 0.149999999799995 ' Dev11 & Roslyn: Unchanged Const f_16_4 As Double = 1.499999999799994 ' Dev11 & Roslyn: Unchanged - Const f_16_5 As Double = 1.4999999997999951 ' Dev11 & Roslyn: 1.4999999997999951 + Const f_16_5 As Double = {(IsNetCoreApp ? "1.499999999799995" : "1.4999999997999951")} ' Dev11 & Roslyn: 1.4999999997999951 Const f_16_6 As Double = 14999999.99799994 ' Dev11 & Roslyn: Unchanged - Const f_16_7 As Double = 14999999.997999949 ' Dev11 & Roslyn: 14999999.997999949 + Const f_16_7 As Double = {(IsNetCoreApp ? "14999999.99799995" : "14999999.997999949")} ' Dev11 & Roslyn: 14999999.997999949 - Const f_16_8 As Double = 149999999997999.19 ' Dev11 & Roslyn: 149999999997999.19 - Const f_16_9 As Double = 149999999997999.81 ' Dev11 & Roslyn: 149999999997999.81 + Const f_16_8 As Double = {(IsNetCoreApp ? "149999999997999.2" : "149999999997999.19")} ' Dev11 & Roslyn: 149999999997999.19 + Const f_16_9 As Double = {(IsNetCoreApp ? "149999999997999.8" : "149999999997999.81")} ' Dev11 & Roslyn: 149999999997999.81 Const f_16_10 As Double = 1499999999979995.0 ' Dev11 & Roslyn: Unchanged @@ -810,25 +816,25 @@ End Sub End Module |]"; - var expected = @" + var expected = $@" Module Program Sub Main(args As String()) ' CATEGORY 2: 16 significant digits ' Dev11 and Roslyn behavior are identical: Always rounded off and pretty listed to <= 17 significant digits Const f_16_1 As Double = 0.1499999999799993R ' Dev11 & Roslyn: 0.1499999999799993 - Const f_16_2 As Double = 0.14999999997999969R ' Dev11 & Roslyn: 0.14999999997999969 + Const f_16_2 As Double = {(IsNetCoreApp ? "0.1499999999799997R" : "0.14999999997999969R")} ' Dev11 & Roslyn: 0.14999999997999969 Const f_16_3 As Double = 0.149999999799995# ' Dev11 & Roslyn: Unchanged Const f_16_4 As Double = 1.499999999799994R ' Dev11 & Roslyn: Unchanged - Const f_16_5 As Double = 1.4999999997999951R ' Dev11 & Roslyn: 1.4999999997999951 + Const f_16_5 As Double = {(IsNetCoreApp ? "1.499999999799995R" : "1.4999999997999951R")} ' Dev11 & Roslyn: 1.4999999997999951 Const f_16_6 As Double = 14999999.99799994# ' Dev11 & Roslyn: Unchanged - Const f_16_7 As Double = 14999999.997999949R ' Dev11 & Roslyn: 14999999.997999949 + Const f_16_7 As Double = {(IsNetCoreApp ? "14999999.99799995R" : "14999999.997999949R")} ' Dev11 & Roslyn: 14999999.997999949 - Const f_16_8 As Double = 149999999997999.19R ' Dev11 & Roslyn: 149999999997999.19 - Const f_16_9 As Double = 149999999997999.81# ' Dev11 & Roslyn: 149999999997999.81 + Const f_16_8 As Double = {(IsNetCoreApp ? "149999999997999.2R" : "149999999997999.19R")} ' Dev11 & Roslyn: 149999999997999.19 + Const f_16_9 As Double = {(IsNetCoreApp ? "149999999997999.8#" : "149999999997999.81#")} ' Dev11 & Roslyn: 149999999997999.81 Const f_16_10 As Double = 1499999999979995.0R ' Dev11 & Roslyn: Unchanged @@ -915,7 +921,7 @@ End Sub End Module |]"; - var expected = @" + var expected = $@" Module Program Sub Main(args As String()) ' CATEGORY 3: > 16 significant digits @@ -927,7 +933,7 @@ Sub Main(args As String()) Const f_17_3 As Double = 0.14999999997999938 ' Dev11 & Roslyn: 0.14999999997999938 Const f_17_4 As Double = 0.1499999997999957 ' Dev11 & Roslyn: Unchanged - Const f_17_5 As Double = 0.14999999979999579 ' Dev11 & Roslyn: 0.14999999979999579 + Const f_17_5 As Double = {(IsNetCoreApp ? "0.1499999997999958" : "0.14999999979999579")} ' Dev11 & Roslyn: 0.14999999979999579 Const f_17_6 As Double = 1.4999999997999947 ' Dev11 & Roslyn: Unchanged Const f_17_7 As Double = 1.4999999997999944 ' Dev11 & Roslyn: 1.4999999997999944 @@ -938,10 +944,10 @@ Sub Main(args As String()) Const f_18_3 As Double = 14999999.997999946 ' Dev11 & Roslyn: 14999999.997999946 ' (b) > 16 significant digits before decimal point. - Const f_18_4 As Double = 1.4999999999734E+16 ' Dev11 & Roslyn: 1.4999999999734E+16 + Const f_18_4 As Double = {(IsNetCoreApp ? "14999999999734000.0" : "1.4999999999734E+16")} ' Dev11 & Roslyn: 1.4999999999734E+16 Const f_18_5 As Double = 14999999999379996.0 ' Dev11 & Roslyn: 14999999999379996.0 - Const f_24_1 As Double = 1.1111114999912469E+20 ' Dev11 & Roslyn: 1.1111114999912469E+20 + Const f_24_1 As Double = {(IsNetCoreApp ? "1.111111499991247E+20" : "1.1111114999912469E+20")} ' Dev11 & Roslyn: 1.1111114999912469E+20 ' (c) Overflow/Underflow cases for Double: Ensure no pretty listing/round off ' Holds signed IEEE 64-bit (8-byte) double-precision floating-point numbers ranging in value from -1.79769313486231570E+308 through -4.94065645841246544E-324 for negative values and @@ -1046,7 +1052,7 @@ End Sub End Module |]"; - var expected = @" + var expected = $@" Module Program Sub Main(args As String()) ' CATEGORY 3: > 16 significant digits @@ -1058,7 +1064,7 @@ Sub Main(args As String()) Const f_17_3 As Double = 0.14999999997999938# ' Dev11 & Roslyn: 0.14999999997999938 Const f_17_4 As Double = 0.1499999997999957R ' Dev11 & Roslyn: Unchanged - Const f_17_5 As Double = 0.14999999979999579R ' Dev11 & Roslyn: 0.14999999979999579 + Const f_17_5 As Double = {(IsNetCoreApp ? "0.1499999997999958R" : "0.14999999979999579R")} ' Dev11 & Roslyn: 0.14999999979999579 Const f_17_6 As Double = 1.4999999997999947# ' Dev11 & Roslyn: Unchanged Const f_17_7 As Double = 1.4999999997999944R ' Dev11 & Roslyn: 1.4999999997999944 @@ -1069,10 +1075,10 @@ Sub Main(args As String()) Const f_18_3 As Double = 14999999.997999946R ' Dev11 & Roslyn: 14999999.997999946 ' (b) > 16 significant digits before decimal point. - Const f_18_4 As Double = 1.4999999999734E+16# ' Dev11 & Roslyn: 1.4999999999734E+16 + Const f_18_4 As Double = {(IsNetCoreApp ? "14999999999734000.0#" : "1.4999999999734E+16#")} ' Dev11 & Roslyn: 1.4999999999734E+16 Const f_18_5 As Double = 14999999999379996.0R ' Dev11 & Roslyn: 14999999999379996.0 - Const f_24_1 As Double = 1.1111114999912469E+20R ' Dev11 & Roslyn: 1.1111114999912469E+20 + Const f_24_1 As Double = {(IsNetCoreApp ? "1.111111499991247E+20R" : "1.1111114999912469E+20R")} ' Dev11 & Roslyn: 1.1111114999912469E+20 ' (c) Overflow/Underflow cases for Double: Ensure no pretty listing/round off ' Holds signed IEEE 64-bit (8-byte) double-precision floating-point numbers ranging in value from -1.79769313486231570E+308 through -4.94065645841246544E-324 for negative values and @@ -1502,7 +1508,7 @@ End Sub End Module |]"; - var expected = @" + var expected = $@" Module Program Sub Main(args As String()) @@ -1530,19 +1536,19 @@ Sub Main(args As String()) Const f_4 As Single = 1.234567E-9F ' Change at -9 Const f_5 As Single = 1.234567E-10F - Const f_6 As Single = 0.00000000123456778F - Const f_7 As Single = 0.000000000123456786F - Const f_8 As Single = 1.23456783E-11F ' Change at -11 - Const f_9 As Single = 1.23456779E-12F + Const f_6 As Single = {(IsNetCoreApp ? "0.0000000012345678F" : "0.00000000123456778F")} + Const f_7 As Single = {(IsNetCoreApp ? "0.00000000012345679F" : "0.000000000123456786F")} + Const f_8 As Single = {(IsNetCoreApp ? "1.2345678E-11F" : "1.23456783E-11F")} ' Change at -11 + Const f_9 As Single = {(IsNetCoreApp ? "1.2345678E-12F" : "1.23456779E-12F")} Const d_1 As Single = 0.00000000000000123456789012345 Const d_2 As Single = 0.000000000000000123456789012345 Const d_3 As Single = 1.23456789012345E-17 ' Change at -17 Const d_4 As Single = 1.23456789012345E-18 - Const d_5 As Double = 0.000000000000000012345678901234561 + Const d_5 As Double = {(IsNetCoreApp ? "0.00000000000000001234567890123456" : "0.000000000000000012345678901234561")} Const d_6 As Double = 0.000000000000000001234567890123456 - Const d_7 As Double = 1.2345678901234561E-19 ' Change at -19 + Const d_7 As Double = {(IsNetCoreApp ? "1.234567890123456E-19" : "1.2345678901234561E-19")} ' Change at -19 Const d_8 As Double = 1.234567890123456E-20 End Sub End Module @@ -1585,7 +1591,7 @@ End Sub End Module |]"; - var expected = @" + var expected = $@" Module Program Sub Main(args As String()) Const f1 As Single = 3.011F ' Dev11 & Roslyn: 3.011F @@ -1595,9 +1601,9 @@ Sub Main(args As String()) Const f5 As Single = 3.0E+13! ' Dev11 & Roslyn: 3.0E+13! Const f6 As Single = 3.0E+13F ' Dev11 & Roslyn: 3.0E+13F Const f7 As Single = 30000.1F ' Dev11 & Roslyn: 30000.1F - Const f8 As Single = 3.00012337E+13! ' Dev11 & Roslyn: 3.00012337E+13! - Const f9 As Single = 3.00012337E+13F ' Dev11 & Roslyn: 3.00012337E+13F - Const f10 As Single = 3000.12354F ' Dev11 & Roslyn: 3000.12354F + Const f8 As Single = {(IsNetCoreApp ? "3.0001234E+13!" : "3.00012337E+13!")} ' Dev11 & Roslyn: 3.00012337E+13! + Const f9 As Single = {(IsNetCoreApp ? "3.0001234E+13F" : "3.00012337E+13F")} ' Dev11 & Roslyn: 3.00012337E+13F + Const f10 As Single = {(IsNetCoreApp ? "3000.1235F" : "3000.12354F")} ' Dev11 & Roslyn: 3000.12354F Const f11 As Single = 0.0000003! ' Dev11 & Roslyn: 0.0000003! Console.WriteLine(f1) @@ -2049,7 +2055,7 @@ private static async Task VerifyAsync(string codeWithMarker, string expectedResu var cleanDocument = await CodeCleaner.CleanupAsync(document, textSpans[0], codeCleanups); - Assert.Equal(expectedResult, (await cleanDocument.GetSyntaxRootAsync()).ToFullString()); + AssertEx.EqualOrDiff(expectedResult, (await cleanDocument.GetSyntaxRootAsync()).ToFullString()); } private static Document CreateDocument(string code, string language) diff --git a/src/Workspaces/CoreTest/Microsoft.CodeAnalysis.Workspaces.UnitTests.csproj b/src/Workspaces/CoreTest/Microsoft.CodeAnalysis.Workspaces.UnitTests.csproj index 397b41952a248..19abd984237c3 100644 --- a/src/Workspaces/CoreTest/Microsoft.CodeAnalysis.Workspaces.UnitTests.csproj +++ b/src/Workspaces/CoreTest/Microsoft.CodeAnalysis.Workspaces.UnitTests.csproj @@ -3,7 +3,7 @@ Library - net472 + netcoreapp3.1;net472 true Microsoft.CodeAnalysis.UnitTests @@ -27,10 +27,10 @@ - + + - diff --git a/src/Workspaces/CoreTest/UtilityTest/ReferenceHolderTests.cs b/src/Workspaces/CoreTest/UtilityTest/ReferenceHolderTests.cs index ed94369ffbc11..1bd834e2c498c 100644 --- a/src/Workspaces/CoreTest/UtilityTest/ReferenceHolderTests.cs +++ b/src/Workspaces/CoreTest/UtilityTest/ReferenceHolderTests.cs @@ -60,7 +60,7 @@ public void ExpiredValueNotEqualToNull() { var strongNull = ReferenceHolder.Strong(null); var weakNull = ReferenceHolder.Weak(null); - var expired = ReferenceHolder.TestAccessor.ReleasedWeak(hashCode: EqualityComparer.Default.GetHashCode(null)); + var expired = ReferenceHolder.TestAccessor.ReleasedWeak(hashCode: EqualityComparer.Default.GetHashCode(null!)); Assert.Equal(strongNull.GetHashCode(), expired.GetHashCode()); VerifyNotEqual(strongNull, expired); diff --git a/src/Workspaces/Remote/Core/Microsoft.CodeAnalysis.Remote.Workspaces.csproj b/src/Workspaces/Remote/Core/Microsoft.CodeAnalysis.Remote.Workspaces.csproj index f3383206d8d53..a56b4e748840b 100644 --- a/src/Workspaces/Remote/Core/Microsoft.CodeAnalysis.Remote.Workspaces.csproj +++ b/src/Workspaces/Remote/Core/Microsoft.CodeAnalysis.Remote.Workspaces.csproj @@ -28,8 +28,6 @@ - - From ec3faf997a07aadfeadf527e9ca288774360b4d5 Mon Sep 17 00:00:00 2001 From: Sam Harwell Date: Sat, 9 May 2020 18:09:47 -0700 Subject: [PATCH 2/5] Update Microsoft.CodeAnalysis.CSharp.Workspaces.UnitTests to target netcoreapp3.1 --- ...odeAnalysis.CSharp.Workspaces.UnitTests.csproj | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/src/Workspaces/CSharpTest/Microsoft.CodeAnalysis.CSharp.Workspaces.UnitTests.csproj b/src/Workspaces/CSharpTest/Microsoft.CodeAnalysis.CSharp.Workspaces.UnitTests.csproj index 09ac561e3492c..49ed356f8b424 100644 --- a/src/Workspaces/CSharpTest/Microsoft.CodeAnalysis.CSharp.Workspaces.UnitTests.csproj +++ b/src/Workspaces/CSharpTest/Microsoft.CodeAnalysis.CSharp.Workspaces.UnitTests.csproj @@ -4,7 +4,7 @@ Library Microsoft.CodeAnalysis.CSharp.UnitTests - net472 + netcoreapp3.1;net472 @@ -26,17 +26,6 @@ - - - - - - - - - - - - + \ No newline at end of file From d45cb214e68f1bddc841affc9422b4b2ff90fbd8 Mon Sep 17 00:00:00 2001 From: Sam Harwell Date: Sat, 9 May 2020 18:10:27 -0700 Subject: [PATCH 3/5] Update Microsoft.CodeAnalysis.VisualBasic.Workspaces.UnitTests to target netcoreapp3.1 --- ...nalysis.VisualBasic.Workspaces.UnitTests.vbproj | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/src/Workspaces/VisualBasicTest/Microsoft.CodeAnalysis.VisualBasic.Workspaces.UnitTests.vbproj b/src/Workspaces/VisualBasicTest/Microsoft.CodeAnalysis.VisualBasic.Workspaces.UnitTests.vbproj index 6e5c21b242473..5b1f399e43e6d 100644 --- a/src/Workspaces/VisualBasicTest/Microsoft.CodeAnalysis.VisualBasic.Workspaces.UnitTests.vbproj +++ b/src/Workspaces/VisualBasicTest/Microsoft.CodeAnalysis.VisualBasic.Workspaces.UnitTests.vbproj @@ -4,8 +4,7 @@ Library Off - Default - net472 + netcoreapp3.1;net472 @@ -28,19 +27,10 @@ - - - - + - - - - - - \ No newline at end of file From 129761f184e2065f59059e3720d6ad9c2e7ef0fb Mon Sep 17 00:00:00 2001 From: Sam Harwell Date: Sun, 26 Jul 2020 11:57:43 -0700 Subject: [PATCH 4/5] Install ThrowingTraceListener with a module initializer --- eng/Versions.props | 2 +- eng/config/test/Core/InstallTraceListener.cs | 13 ++++++++++++ eng/config/test/Core/InstallTraceListener.vb | 11 ++++++++++ eng/config/test/Core/app.config | 13 ------------ eng/targets/XUnit.targets | 7 +++++-- .../InternalUtilities/ExceptionUtilities.cs | 7 +------ .../Utilities/Portable/ModuleInitializer.cs | 20 +++++++++++++++++++ .../Portable/ModuleInitializerAttribute.cs | 11 ++++++++++ 8 files changed, 62 insertions(+), 22 deletions(-) create mode 100644 eng/config/test/Core/InstallTraceListener.cs create mode 100644 eng/config/test/Core/InstallTraceListener.vb delete mode 100644 eng/config/test/Core/app.config create mode 100644 src/Test/Utilities/Portable/ModuleInitializer.cs create mode 100644 src/Test/Utilities/Portable/ModuleInitializerAttribute.cs diff --git a/eng/Versions.props b/eng/Versions.props index 55d375c873dd3..e398bbd1e9325 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -23,7 +23,7 @@ - 3.8.0-1.20361.1 + 3.8.0-1.20370.1 diff --git a/eng/config/test/Core/InstallTraceListener.cs b/eng/config/test/Core/InstallTraceListener.cs new file mode 100644 index 0000000000000..968c7d0e1a09e --- /dev/null +++ b/eng/config/test/Core/InstallTraceListener.cs @@ -0,0 +1,13 @@ +// + +using System.Runtime.CompilerServices; +using Roslyn.Test.Utilities; + +internal sealed class InitializeTestModule +{ + [ModuleInitializer] + internal static void Initializer() + { + RuntimeHelpers.RunModuleConstructor(typeof(TestBase).Module.ModuleHandle); + } +} diff --git a/eng/config/test/Core/InstallTraceListener.vb b/eng/config/test/Core/InstallTraceListener.vb new file mode 100644 index 0000000000000..7533fb2b635f6 --- /dev/null +++ b/eng/config/test/Core/InstallTraceListener.vb @@ -0,0 +1,11 @@ +' + +Imports System.Runtime.CompilerServices +Imports Roslyn.Test.Utilities + +Friend Module InitializeTestModule + + Friend Sub Initializer() + RuntimeHelpers.RunModuleConstructor(GetType(TestBase).Module.ModuleHandle) + End Sub +End Module diff --git a/eng/config/test/Core/app.config b/eng/config/test/Core/app.config deleted file mode 100644 index b5c5af684adec..0000000000000 --- a/eng/config/test/Core/app.config +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/eng/targets/XUnit.targets b/eng/targets/XUnit.targets index 7954b4056a1ef..7eb42e539cb41 100644 --- a/eng/targets/XUnit.targets +++ b/eng/targets/XUnit.targets @@ -11,16 +11,19 @@ + + + + <_AlreadyHasAppConfig Condition="'%(None.Filename)%(None.Extension)' == 'app.config'">true <_DefaultAppConfigFile Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'">$(RepositoryEngineeringDir)config\test\Desktop\app.config - <_DefaultAppConfigFile Condition="'$(TargetFrameworkIdentifier)' != '.NETFramework'">$(RepositoryEngineeringDir)config\test\Core\app.config - + app.config diff --git a/src/Compilers/Core/Portable/InternalUtilities/ExceptionUtilities.cs b/src/Compilers/Core/Portable/InternalUtilities/ExceptionUtilities.cs index 3f2a09b8b9175..7b105407dd699 100644 --- a/src/Compilers/Core/Portable/InternalUtilities/ExceptionUtilities.cs +++ b/src/Compilers/Core/Portable/InternalUtilities/ExceptionUtilities.cs @@ -19,12 +19,7 @@ internal static class ExceptionUtilities internal static Exception UnexpectedValue(object? o) { string output = string.Format("Unexpected value '{0}' of type '{1}'", o, (o != null) ? o.GetType().FullName : ""); -#if DEBUG - if (Debugger.IsAttached) - { - Debug.Assert(false, output); - } -#endif + Debug.Assert(false, output); // We do not throw from here because we don't want all Watson reports to be bucketed to this call. return new InvalidOperationException(output); diff --git a/src/Test/Utilities/Portable/ModuleInitializer.cs b/src/Test/Utilities/Portable/ModuleInitializer.cs new file mode 100644 index 0000000000000..db7e6c77d27fd --- /dev/null +++ b/src/Test/Utilities/Portable/ModuleInitializer.cs @@ -0,0 +1,20 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Diagnostics; +using System.Runtime.CompilerServices; +using Microsoft.CodeAnalysis; + +namespace Roslyn.Test.Utilities +{ + internal static class ModuleInitializer + { + [ModuleInitializer] + internal static void Initialize() + { + Trace.Listeners.Clear(); + Trace.Listeners.Add(new ThrowingTraceListener()); + } + } +} diff --git a/src/Test/Utilities/Portable/ModuleInitializerAttribute.cs b/src/Test/Utilities/Portable/ModuleInitializerAttribute.cs new file mode 100644 index 0000000000000..60700f31fe666 --- /dev/null +++ b/src/Test/Utilities/Portable/ModuleInitializerAttribute.cs @@ -0,0 +1,11 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +namespace System.Runtime.CompilerServices +{ + [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] + public sealed class ModuleInitializerAttribute : Attribute + { + } +} From 5a206835224ad5f5c3236537d07b902ebc926b5b Mon Sep 17 00:00:00 2001 From: Sam Harwell Date: Tue, 1 Sep 2020 14:34:05 -0700 Subject: [PATCH 5/5] Update module initializers --- eng/config/test/Core/InstallTraceListener.vb | 11 ----------- eng/targets/XUnit.targets | 3 ++- src/Test/Utilities/Portable/Assert/AssertXml.cs | 1 + .../Utilities/Portable/ModuleInitializerAttribute.cs | 4 ++++ .../Utilities/Portable/Roslyn.Test.Utilities.csproj | 2 +- .../MEF/UseExportProviderAttribute.cs | 9 +++++++++ 6 files changed, 17 insertions(+), 13 deletions(-) delete mode 100644 eng/config/test/Core/InstallTraceListener.vb diff --git a/eng/config/test/Core/InstallTraceListener.vb b/eng/config/test/Core/InstallTraceListener.vb deleted file mode 100644 index 7533fb2b635f6..0000000000000 --- a/eng/config/test/Core/InstallTraceListener.vb +++ /dev/null @@ -1,11 +0,0 @@ -' - -Imports System.Runtime.CompilerServices -Imports Roslyn.Test.Utilities - -Friend Module InitializeTestModule - - Friend Sub Initializer() - RuntimeHelpers.RunModuleConstructor(GetType(TestBase).Module.ModuleHandle) - End Sub -End Module diff --git a/eng/targets/XUnit.targets b/eng/targets/XUnit.targets index 7eb42e539cb41..4d59507b186e0 100644 --- a/eng/targets/XUnit.targets +++ b/eng/targets/XUnit.targets @@ -12,7 +12,8 @@ - + diff --git a/src/Test/Utilities/Portable/Assert/AssertXml.cs b/src/Test/Utilities/Portable/Assert/AssertXml.cs index 3f7a73d848d39..2566a6e0c1825 100644 --- a/src/Test/Utilities/Portable/Assert/AssertXml.cs +++ b/src/Test/Utilities/Portable/Assert/AssertXml.cs @@ -13,6 +13,7 @@ using System.Xml.Linq; using Roslyn.Utilities; using Xunit; +using ReferenceEqualityComparer = Roslyn.Utilities.ReferenceEqualityComparer; namespace Roslyn.Test.Utilities { diff --git a/src/Test/Utilities/Portable/ModuleInitializerAttribute.cs b/src/Test/Utilities/Portable/ModuleInitializerAttribute.cs index 60700f31fe666..92de1528ef3ac 100644 --- a/src/Test/Utilities/Portable/ModuleInitializerAttribute.cs +++ b/src/Test/Utilities/Portable/ModuleInitializerAttribute.cs @@ -2,6 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +#if !NET5_0 + namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] @@ -9,3 +11,5 @@ public sealed class ModuleInitializerAttribute : Attribute { } } + +#endif diff --git a/src/Test/Utilities/Portable/Roslyn.Test.Utilities.csproj b/src/Test/Utilities/Portable/Roslyn.Test.Utilities.csproj index 60f2133bb87c9..1177dea75769c 100644 --- a/src/Test/Utilities/Portable/Roslyn.Test.Utilities.csproj +++ b/src/Test/Utilities/Portable/Roslyn.Test.Utilities.csproj @@ -4,7 +4,7 @@ Library true - netcoreapp3.1;netstandard2.0;net472 + net5.0;netcoreapp3.1;netstandard2.0;net472 false diff --git a/src/Workspaces/CoreTestUtilities/MEF/UseExportProviderAttribute.cs b/src/Workspaces/CoreTestUtilities/MEF/UseExportProviderAttribute.cs index c9cfab495a1d6..62412bb6b52be 100644 --- a/src/Workspaces/CoreTestUtilities/MEF/UseExportProviderAttribute.cs +++ b/src/Workspaces/CoreTestUtilities/MEF/UseExportProviderAttribute.cs @@ -10,6 +10,7 @@ using System.Composition.Hosting; using System.Linq; using System.Reflection; +using System.Runtime.CompilerServices; using System.Text; using System.Threading; using Microsoft.CodeAnalysis.Editor; @@ -59,6 +60,14 @@ public class UseExportProviderAttribute : BeforeAfterTestAttribute private MefHostServices? _hostServices; + static UseExportProviderAttribute() + { + // Make sure we run the module initializer for Roslyn.Test.Utilities. C# projects do this via a + // build-injected module initializer, but VB projects can ensure initialization occurs by applying the + // UseExportProviderAttribute to test classes that rely on it. + RuntimeHelpers.RunModuleConstructor(typeof(TestBase).Module.ModuleHandle); + } + public override void Before(MethodInfo methodUnderTest) { MefHostServices.TestAccessor.HookServiceCreation(CreateMefHostServices);