From 44f26a7d1968663d109bbd3722f41771a6cc7a00 Mon Sep 17 00:00:00 2001 From: Jared Parsons Date: Mon, 9 Sep 2024 21:46:15 -0700 Subject: [PATCH 1/5] Remove MS.CA.Test.Resources.Proprietary This package is the last remnants of the roslyn-internal repository. It was still holding onto a few test assets that never got ported into the open but were available through the NuPkg reference. This package is becoming a problem with component governance as it is a `netstandard1.3` package and hence brings in a lot of vulnerable components. Considered upgrading this package to `netstandard2.0` but that would mean un-archiving the roslyn-internal repo, finding a place to put the source code and setting up a new official pipeline for the package. That is a pretty high price. Instead I decided to finish the work that I should've completed a number of years ago. Yes this does add a few more .dll into our git tree. These are files that haven't changed in 10+ years so versioning won't be an issue. They were all brought down already for restore hence it's not new files. --- eng/Directory.Packages.props | 2 +- .../Test/CommandLine/CommandLineTests.cs | 3 +- .../CommandLine/TouchedFileLoggingTests.cs | 3 +- .../CSharp/Test/Emit/CodeGen/CodeGenTests.cs | 7 +- .../Test/Emit2/CodeGen/CodeGenCallTests.cs | 1 - .../Test/WinRT/Metadata/WinMdDumpTest.cs | 3 +- .../CodeAnalysisTest/CryptoBlobParserTests.cs | 22 ++---- ...crosoft.CodeAnalysis.Test.Utilities.csproj | 1 - src/Compilers/Test/Core/Mocks/Silverlight.cs | 68 ++++++++++++++++++ .../Test/Core/Mocks/TestReferences.cs | 5 +- .../Test/Core/Platform/Desktop/TestHelpers.cs | 1 - src/Compilers/Test/Core/TestBase.cs | 19 ++--- src/Compilers/Test/Core/TestHelpers.cs | 26 +++++++ ...odeAnalysis.Compiler.Test.Resources.csproj | 15 ++-- .../NetFX/PortableProfile7/System.Runtime.dll | Bin 0 -> 116168 bytes .../Core/NetFX/PortableProfile7/mscorlib.dll | Bin 0 -> 38832 bytes .../System.Runtime.WindowsRuntime.UI.Xaml.dll | Bin 0 -> 63000 bytes .../WinRt/System.Runtime.WindowsRuntime.dll | Bin 0 -> 137208 bytes .../Metadata/BadDefaultParameterValue.dll | Bin 0 -> 4096 bytes .../Test/Resources/Core/TestResources.cs | 32 +++++++++ .../Test/Emit/CodeGen/CodeGenTests.vb | 2 +- 21 files changed, 156 insertions(+), 54 deletions(-) create mode 100644 src/Compilers/Test/Core/Mocks/Silverlight.cs create mode 100644 src/Compilers/Test/Resources/Core/NetFX/PortableProfile7/System.Runtime.dll create mode 100644 src/Compilers/Test/Resources/Core/NetFX/PortableProfile7/mscorlib.dll create mode 100644 src/Compilers/Test/Resources/Core/NetFX/WinRt/System.Runtime.WindowsRuntime.UI.Xaml.dll create mode 100644 src/Compilers/Test/Resources/Core/NetFX/WinRt/System.Runtime.WindowsRuntime.dll create mode 100644 src/Compilers/Test/Resources/Core/SymbolsTests/Metadata/BadDefaultParameterValue.dll diff --git a/eng/Directory.Packages.props b/eng/Directory.Packages.props index 7b2982ef1f035..29c825be5f169 100644 --- a/eng/Directory.Packages.props +++ b/eng/Directory.Packages.props @@ -255,7 +255,6 @@ - @@ -272,6 +271,7 @@ + diff --git a/src/Compilers/CSharp/Test/CommandLine/CommandLineTests.cs b/src/Compilers/CSharp/Test/CommandLine/CommandLineTests.cs index 61e02f314754e..1cef8beaea68f 100644 --- a/src/Compilers/CSharp/Test/CommandLine/CommandLineTests.cs +++ b/src/Compilers/CSharp/Test/CommandLine/CommandLineTests.cs @@ -26,7 +26,6 @@ using Microsoft.CodeAnalysis.Diagnostics; using Microsoft.CodeAnalysis.Emit; using Microsoft.CodeAnalysis.PooledObjects; -using Microsoft.CodeAnalysis.Test.Resources.Proprietary; using Microsoft.CodeAnalysis.Test.Utilities; using Microsoft.CodeAnalysis.Text; using Microsoft.DiaSymReader; @@ -4339,7 +4338,7 @@ public void AppConfigBasic() "); - var silverlight = Temp.CreateFile().WriteAllBytes(ProprietaryTestResources.silverlight_v5_0_5_0.System_v5_0_5_0_silverlight).Path; + var silverlight = Temp.CreateFile().WriteAllBytes(Silverlight.System).Path; var net4_0dll = Temp.CreateFile().WriteAllBytes(Net461.Resources.System).Path; // Test linking two appconfig dlls with simple src diff --git a/src/Compilers/CSharp/Test/CommandLine/TouchedFileLoggingTests.cs b/src/Compilers/CSharp/Test/CommandLine/TouchedFileLoggingTests.cs index 78f7c4c5141f9..0a1b0c7c3b4fc 100644 --- a/src/Compilers/CSharp/Test/CommandLine/TouchedFileLoggingTests.cs +++ b/src/Compilers/CSharp/Test/CommandLine/TouchedFileLoggingTests.cs @@ -12,7 +12,6 @@ using System.Runtime.InteropServices; using Basic.Reference.Assemblies; using Microsoft.CodeAnalysis.CSharp.Test.Utilities; -using Microsoft.CodeAnalysis.Test.Resources.Proprietary; using Microsoft.CodeAnalysis.Test.Utilities; using Roslyn.Test.Utilities; using Xunit; @@ -77,7 +76,7 @@ public void AppConfigCsc() ").Path; - var silverlight = Temp.CreateFile().WriteAllBytes(ProprietaryTestResources.silverlight_v5_0_5_0.System_v5_0_5_0_silverlight).Path; + var silverlight = Temp.CreateFile().WriteAllBytes(Silverlight.System).Path; var net4_0dll = Temp.CreateFile().WriteAllBytes(Net461.Resources.System).Path; var outWriter = new StringWriter(CultureInfo.InvariantCulture); diff --git a/src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenTests.cs b/src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenTests.cs index cdf16455ae302..3ae7ccf2a7ec9 100644 --- a/src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenTests.cs +++ b/src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenTests.cs @@ -8,11 +8,11 @@ using System.IO; using System.Linq; using System.Threading; +using Basic.Reference.Assemblies; using Microsoft.CodeAnalysis.CSharp.Emit; using Microsoft.CodeAnalysis.CSharp.Symbols; using Microsoft.CodeAnalysis.CSharp.Test.Utilities; using Microsoft.CodeAnalysis.Emit; -using Microsoft.CodeAnalysis.Test.Resources.Proprietary; using Microsoft.CodeAnalysis.Test.Utilities; using Roslyn.Test.Utilities; using Xunit; @@ -473,7 +473,8 @@ public static void Main(string[] args) } }"; var tree = Parse(source); - var compilation = CreateEmptyCompilation(tree, new[] { MscorlibRefSilverlight }, TestOptions.ReleaseExe, assemblyName: "Test"); + var compilation = CreateEmptyCompilation(tree, [Net461.References.mscorlib], TestOptions.ReleaseExe, assemblyName: "Test"); + compilation.MakeMemberMissing(SpecialMember.System_Array__LongLength); CompileAndVerify(compilation, expectedOutput: "k"); } @@ -15130,7 +15131,7 @@ static void Main() } }"; - var testReference = AssemblyMetadata.CreateFromImage(ProprietaryTestResources.Repros.BadDefaultParameterValue).GetReference(); + var testReference = AssemblyMetadata.CreateFromImage(TestResources.SymbolsTests.Metadata.BadDefaultParameterValue).GetReference(); var compilation = CompileAndVerify(source, references: new[] { testReference }); compilation.VerifyIL("Program.Main", @" { diff --git a/src/Compilers/CSharp/Test/Emit2/CodeGen/CodeGenCallTests.cs b/src/Compilers/CSharp/Test/Emit2/CodeGen/CodeGenCallTests.cs index ea003bba0b2f6..26e0d88f23509 100644 --- a/src/Compilers/CSharp/Test/Emit2/CodeGen/CodeGenCallTests.cs +++ b/src/Compilers/CSharp/Test/Emit2/CodeGen/CodeGenCallTests.cs @@ -12,7 +12,6 @@ using Microsoft.CodeAnalysis.CSharp.Symbols; using Microsoft.CodeAnalysis.CSharp.Test.Utilities; using Microsoft.CodeAnalysis.Emit; -using Microsoft.CodeAnalysis.Test.Resources.Proprietary; using Microsoft.CodeAnalysis.Test.Utilities; using Roslyn.Test.Utilities; using Xunit; diff --git a/src/Compilers/CSharp/Test/WinRT/Metadata/WinMdDumpTest.cs b/src/Compilers/CSharp/Test/WinRT/Metadata/WinMdDumpTest.cs index 7e99956bcbe25..ad21fc4b06a2b 100644 --- a/src/Compilers/CSharp/Test/WinRT/Metadata/WinMdDumpTest.cs +++ b/src/Compilers/CSharp/Test/WinRT/Metadata/WinMdDumpTest.cs @@ -14,7 +14,6 @@ using Microsoft.CodeAnalysis.CSharp.Symbols; using Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE; using Microsoft.CodeAnalysis.CSharp.Test.Utilities; -using Microsoft.CodeAnalysis.Test.Resources.Proprietary; using Microsoft.CodeAnalysis.Test.Utilities; using Roslyn.Test.Utilities; using Roslyn.Utilities; @@ -27,7 +26,7 @@ public class WinMdDumpTest : CSharpTestBase private readonly MetadataReference _windowsRef = MetadataReference.CreateFromImage(TestResources.WinRt.Windows.AsImmutableOrNull()); private readonly MetadataReference _systemRuntimeRef = MetadataReference.CreateFromImage(Net461.Resources.SystemRuntime.AsImmutableOrNull()); private readonly MetadataReference _systemObjectModelRef = MetadataReference.CreateFromImage(Net461.Resources.SystemObjectModel.AsImmutableOrNull()); - private readonly MetadataReference _windowsRuntimeUIXamlRef = MetadataReference.CreateFromImage(ProprietaryTestResources.v4_0_30319_17929.System_Runtime_WindowsRuntime_UI_Xaml.AsImmutableOrNull()); + private readonly MetadataReference _windowsRuntimeUIXamlRef = MetadataReference.CreateFromImage(TestResources.NetFX.WinRt.SystemRuntimeWindowsRuntimeUIXaml.AsImmutableOrNull()); private readonly MetadataReference _interopServicesWindowsRuntimeRef = MetadataReference.CreateFromImage(Net461.Resources.SystemRuntimeInteropServicesWindowsRuntime.AsImmutableOrNull()); private void AppendMembers(StringBuilder result, NamespaceOrTypeSymbol container, string indent) diff --git a/src/Compilers/Core/CodeAnalysisTest/CryptoBlobParserTests.cs b/src/Compilers/Core/CodeAnalysisTest/CryptoBlobParserTests.cs index c3ef283b036f0..f0f8009d50a8d 100644 --- a/src/Compilers/Core/CodeAnalysisTest/CryptoBlobParserTests.cs +++ b/src/Compilers/Core/CodeAnalysisTest/CryptoBlobParserTests.cs @@ -170,24 +170,10 @@ public void TryGetPublicKeyFailsForInvalidKeyBlobs() "0602000000240000DEADBEEF" + new string('0', 136 * 2), // public key blob without magic public key }; - Assert.False(CryptoBlobParser.TryParseKey(HexToBin(invalidKeyBlobs[0]), out _, out _)); - Assert.False(CryptoBlobParser.TryParseKey(HexToBin(invalidKeyBlobs[1]), out _, out _)); - Assert.False(CryptoBlobParser.TryParseKey(HexToBin(invalidKeyBlobs[2]), out _, out _)); - Assert.False(CryptoBlobParser.TryParseKey(HexToBin(invalidKeyBlobs[3]), out _, out _)); - } - - private static ImmutableArray HexToBin(string input) - { - Assert.True(input != null && (input.Length & 1) == 0, "invalid input string."); - - var result = new byte[input.Length >> 1]; - - for (var i = 0; i < result.Length; i++) - { - result[i] = byte.Parse(input.Substring(i << 1, 2), NumberStyles.HexNumber); - } - - return ImmutableArray.Create(result); + Assert.False(CryptoBlobParser.TryParseKey(TestHelpers.HexToByte(invalidKeyBlobs[0].AsSpan()), out _, out _)); + Assert.False(CryptoBlobParser.TryParseKey(TestHelpers.HexToByte(invalidKeyBlobs[1].AsSpan()), out _, out _)); + Assert.False(CryptoBlobParser.TryParseKey(TestHelpers.HexToByte(invalidKeyBlobs[2].AsSpan()), out _, out _)); + Assert.False(CryptoBlobParser.TryParseKey(TestHelpers.HexToByte(invalidKeyBlobs[3].AsSpan()), out _, out _)); } } } diff --git a/src/Compilers/Test/Core/Microsoft.CodeAnalysis.Test.Utilities.csproj b/src/Compilers/Test/Core/Microsoft.CodeAnalysis.Test.Utilities.csproj index 6103306da16bd..730c518eee96b 100644 --- a/src/Compilers/Test/Core/Microsoft.CodeAnalysis.Test.Utilities.csproj +++ b/src/Compilers/Test/Core/Microsoft.CodeAnalysis.Test.Utilities.csproj @@ -91,7 +91,6 @@ - diff --git a/src/Compilers/Test/Core/Mocks/Silverlight.cs b/src/Compilers/Test/Core/Mocks/Silverlight.cs new file mode 100644 index 0000000000000..cf012505eb6c5 --- /dev/null +++ b/src/Compilers/Test/Core/Mocks/Silverlight.cs @@ -0,0 +1,68 @@ +// 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; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.Test.Utilities; +using Microsoft.CodeAnalysis.Text; + +namespace Roslyn.Test.Utilities; + +/// +/// The assemblies produced here are designed to mimic the public key token structure of +/// silverlight references. This often presents challenges to the compiler because it has +/// to know that two mscorlib with different public key tokens need to be treated as the +/// identicial. The assemblies produced here have the same identity of those that come +/// from silverlight but without necessarily the same type contents. +/// +public static class Silverlight +{ + private static readonly Lazy<(byte[], byte[])> s_tuple = new Lazy<(byte[], byte[])>( + () => BuildImages(), + LazyThreadSafetyMode.PublicationOnly); + + public static byte[] Mscorlib => s_tuple.Value.Item1; + + public static byte[] System => s_tuple.Value.Item2; + + private static (byte[], byte[]) BuildImages() + { + var publicKeyText = "" + + "00240000048000009400000006020000002400005253413100040000010001008d56c76f9e8649383049f" + + "383c44be0ec204181822a6c31cf5eb7ef486944d032188ea1d3920763712ccb12d75fb77e9811149e6148" + + "e5d32fbaab37611c1878ddc19e20ef135d0cb2cff2bfec3d115810c3d9069638fe4be215dbf795861920e" + + "5ab6f7db2e2ceef136ac23d5dd2bf031700aec232f6c6b1c785b4305c123b37ab"; + var publicKey = TestHelpers.HexToByte(publicKeyText.AsSpan()); + var publicKeyToken = AssemblyIdentity.CalculatePublicKeyToken(publicKey); + Debug.Assert("7C-EC-85-D7-BE-A7-79-8E" == BitConverter.ToString(publicKeyToken.ToArray())); + + var options = new CSharpCompilationOptions( + OutputKind.DynamicallyLinkedLibrary, + cryptoPublicKey: publicKey, + optimizationLevel: OptimizationLevel.Release); + var mscorlibCompilation = CSharpCompilation.Create( + "mscorlib", + [CSharpSyntaxTree.ParseText(SourceText.From(TestResources.NetFX.Minimal.mincorlib_cs))], + references: [], + options); + + var mscorlib = mscorlibCompilation.EmitToStream(); + + var systemCompilation = CSharpCompilation.Create( + "System", + syntaxTrees: [], + references: [mscorlibCompilation.EmitToImageReference()], + options: options); + + var system = systemCompilation.EmitToStream(); + return (mscorlib.ToArray(), system.ToArray()); + } +} diff --git a/src/Compilers/Test/Core/Mocks/TestReferences.cs b/src/Compilers/Test/Core/Mocks/TestReferences.cs index 35b42d3633597..aaa94bdd69572 100644 --- a/src/Compilers/Test/Core/Mocks/TestReferences.cs +++ b/src/Compilers/Test/Core/Mocks/TestReferences.cs @@ -8,7 +8,6 @@ using System.IO; using System.Threading; using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.Test.Resources.Proprietary; using Roslyn.Test.Utilities; public static class TestReferences @@ -98,7 +97,7 @@ public static class ValueTuple public static class silverlight_v5_0_5_0 { private static readonly Lazy s_system = new Lazy( - () => AssemblyMetadata.CreateFromImage(ProprietaryTestResources.silverlight_v5_0_5_0.System_v5_0_5_0_silverlight).GetReference(display: "System.v5.0.5.0_silverlight.dll"), + () => AssemblyMetadata.CreateFromImage(Silverlight.System).GetReference(display: "System.v5.0.5.0_silverlight.dll"), LazyThreadSafetyMode.PublicationOnly); public static PortableExecutableReference System => s_system.Value; } @@ -689,7 +688,7 @@ public static class MultiTargeting public static class NoPia { private static readonly Lazy s_stdOle = new Lazy( - () => AssemblyMetadata.CreateFromImage(ProprietaryTestResources.ProprietaryPias.stdole).GetReference(display: "stdole.dll"), + () => AssemblyMetadata.CreateFromImage(TestResources.SymbolsTests.StdOle.Net45).GetReference(display: "stdole.dll"), LazyThreadSafetyMode.PublicationOnly); public static PortableExecutableReference StdOle => s_stdOle.Value; diff --git a/src/Compilers/Test/Core/Platform/Desktop/TestHelpers.cs b/src/Compilers/Test/Core/Platform/Desktop/TestHelpers.cs index c00cc71683579..a58904aacffaa 100644 --- a/src/Compilers/Test/Core/Platform/Desktop/TestHelpers.cs +++ b/src/Compilers/Test/Core/Platform/Desktop/TestHelpers.cs @@ -13,7 +13,6 @@ using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.Diagnostics; -using Microsoft.CodeAnalysis.Test.Resources.Proprietary; using Microsoft.CodeAnalysis.Test.Utilities; using Microsoft.CodeAnalysis.Text; using Microsoft.Win32; diff --git a/src/Compilers/Test/Core/TestBase.cs b/src/Compilers/Test/Core/TestBase.cs index 4c52c0168b1f2..98c497aca2453 100644 --- a/src/Compilers/Test/Core/TestBase.cs +++ b/src/Compilers/Test/Core/TestBase.cs @@ -14,7 +14,6 @@ using Microsoft.CodeAnalysis.Text; using Microsoft.CodeAnalysis.VisualBasic; using static TestReferences.NetFx; -using Microsoft.CodeAnalysis.Test.Resources.Proprietary; using Basic.Reference.Assemblies; using Roslyn.Utilities; using System.Globalization; @@ -103,7 +102,7 @@ public virtual void Dispose() var winmd = AssemblyMetadata.CreateFromImage(TestResources.WinRt.Windows).GetReference(display: "Windows"); var windowsruntime = - AssemblyMetadata.CreateFromImage(ProprietaryTestResources.v4_0_30319_17929.System_Runtime_WindowsRuntime).GetReference(display: "System.Runtime.WindowsRuntime.dll"); + AssemblyMetadata.CreateFromImage(TestResources.NetFX.WinRt.SystemRuntimeWindowsRuntime).GetReference(display: "System.Runtime.WindowsRuntime.dll"); var runtime = AssemblyMetadata.CreateFromImage(Net461.Resources.SystemRuntime).GetReference(display: "System.Runtime.dll"); @@ -111,7 +110,7 @@ public virtual void Dispose() var objectModel = AssemblyMetadata.CreateFromImage(Net461.Resources.SystemObjectModel).GetReference(display: "System.ObjectModel.dll"); - var uixaml = AssemblyMetadata.CreateFromImage(ProprietaryTestResources.v4_0_30319_17929.System_Runtime_WindowsRuntime_UI_Xaml). + var uixaml = AssemblyMetadata.CreateFromImage(TestResources.NetFX.WinRt.SystemRuntimeWindowsRuntimeUIXaml). GetReference(display: "System.Runtime.WindowsRuntime.UI.Xaml.dll"); var interop = AssemblyMetadata.CreateFromImage(Net461.Resources.SystemRuntimeInteropServicesWindowsRuntime). @@ -187,7 +186,7 @@ public virtual void Dispose() public static MetadataReference MscorlibRef => s_mscorlibRef.Value; private static readonly Lazy s_mscorlibRefPortable = new Lazy( - () => AssemblyMetadata.CreateFromImage(ProprietaryTestResources.v4_0_30319.mscorlib_portable).GetReference(display: "mscorlib.v4_0_30319.portable.dll"), + () => AssemblyMetadata.CreateFromImage(TestResources.NetFX.PortableProfile7.Mscorlib).GetReference(display: "mscorlib.v4_0_30319.portable.dll"), LazyThreadSafetyMode.PublicationOnly); public static MetadataReference MscorlibRefPortable => s_mscorlibRefPortable.Value; @@ -223,14 +222,6 @@ public virtual void Dispose() LazyThreadSafetyMode.PublicationOnly); public static MetadataReference MscorlibRef_v46 => s_mscorlibRef_v46.Value; - /// - /// Reference to an mscorlib silverlight assembly in which the System.Array does not contain the special member LongLength. - /// - private static readonly Lazy s_mscorlibRef_silverlight = new Lazy( - () => AssemblyMetadata.CreateFromImage(ProprietaryTestResources.silverlight_v5_0_5_0.mscorlib_v5_0_5_0_silverlight).GetReference(display: "mscorlib.v5.0.5.0_silverlight.dll"), - LazyThreadSafetyMode.PublicationOnly); - public static MetadataReference MscorlibRefSilverlight => s_mscorlibRef_silverlight.Value; - public static MetadataReference MinCorlibRef => TestReferences.NetFx.Minimal.mincorlib; public static MetadataReference MinAsyncCorlibRef => TestReferences.NetFx.Minimal.minasynccorlib; @@ -318,12 +309,12 @@ public virtual void Dispose() public static MetadataReference SystemThreadingTaskFacadeRef => s_systemThreadingTasksFacadeRef.Value; private static readonly Lazy s_mscorlibPP7Ref = new Lazy( - () => AssemblyMetadata.CreateFromImage(ProprietaryTestResources.ReferenceAssemblies_PortableProfile7.mscorlib).GetReference(display: "mscorlib.dll"), + () => AssemblyMetadata.CreateFromImage(TestResources.NetFX.PortableProfile7.Mscorlib).GetReference(display: "mscorlib.dll"), LazyThreadSafetyMode.PublicationOnly); public static MetadataReference MscorlibPP7Ref => s_mscorlibPP7Ref.Value; private static readonly Lazy s_systemRuntimePP7Ref = new Lazy( - () => AssemblyMetadata.CreateFromImage(ProprietaryTestResources.ReferenceAssemblies_PortableProfile7.System_Runtime).GetReference(display: "System.Runtime.dll"), + () => AssemblyMetadata.CreateFromImage(TestResources.NetFX.PortableProfile7.SystemRuntime).GetReference(display: "System.Runtime.dll"), LazyThreadSafetyMode.PublicationOnly); public static MetadataReference SystemRuntimePP7Ref => s_systemRuntimePP7Ref.Value; diff --git a/src/Compilers/Test/Core/TestHelpers.cs b/src/Compilers/Test/Core/TestHelpers.cs index e0cd28c75ffc4..05f8777281074 100644 --- a/src/Compilers/Test/Core/TestHelpers.cs +++ b/src/Compilers/Test/Core/TestHelpers.cs @@ -11,6 +11,7 @@ using System.Globalization; using System.Linq; using System.Reflection; +using System.Runtime.InteropServices; using System.Text; using System.Xml.Linq; using Microsoft.CodeAnalysis; @@ -146,5 +147,30 @@ public static string NormalizeNewLines(XCData data) return data.Value; } + + public static ImmutableArray HexToByte(ReadOnlySpan input) + { + if (input.Length % 2 != 0) + { + throw new ArgumentException("Length of the input string must be even", nameof(input)); + } + + var bytes = new byte[input.Length >> 1]; + for (var i = 0; i < bytes.Length; i++) + { + bytes[i] = parseByte(input.Slice(i << 1, 2), NumberStyles.HexNumber); + } + + return ImmutableCollectionsMarshal.AsImmutableArray(bytes); + + byte parseByte(ReadOnlySpan input, NumberStyles numberStyle) + { +#if NET + return byte.Parse(input, numberStyle); +#else + return byte.Parse(input.ToString(), numberStyle); +#endif + } + } } } diff --git a/src/Compilers/Test/Resources/Core/Microsoft.CodeAnalysis.Compiler.Test.Resources.csproj b/src/Compilers/Test/Resources/Core/Microsoft.CodeAnalysis.Compiler.Test.Resources.csproj index 9b0bcffc30be4..ef8d381c230dd 100644 --- a/src/Compilers/Test/Resources/Core/Microsoft.CodeAnalysis.Compiler.Test.Resources.csproj +++ b/src/Compilers/Test/Resources/Core/Microsoft.CodeAnalysis.Compiler.Test.Resources.csproj @@ -15,6 +15,7 @@ + @@ -85,11 +86,16 @@ + + + + + @@ -189,6 +195,7 @@ + @@ -370,13 +377,9 @@ - - - - @@ -384,8 +387,10 @@ + - + + diff --git a/src/Compilers/Test/Resources/Core/NetFX/PortableProfile7/System.Runtime.dll b/src/Compilers/Test/Resources/Core/NetFX/PortableProfile7/System.Runtime.dll new file mode 100644 index 0000000000000000000000000000000000000000..0afd7a96a6308bbe0863000ee4cba61bcebdf8eb GIT binary patch literal 116168 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

N{9E7=v#0}YhwZ(0}@6<9u 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 Xa|x~}kCvj7lY@7~U+Fveny3E(K%{Yq literal 0 HcmV?d00001 diff --git a/src/Compilers/Test/Resources/Core/NetFX/PortableProfile7/mscorlib.dll b/src/Compilers/Test/Resources/Core/NetFX/PortableProfile7/mscorlib.dll new file mode 100644 index 0000000000000000000000000000000000000000..ce2519b1887fa15e9707a819f43b739d2fe4d25c GIT binary patch literal 38832 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 literal 0 HcmV?d00001 diff --git a/src/Compilers/Test/Resources/Core/NetFX/WinRt/System.Runtime.WindowsRuntime.UI.Xaml.dll b/src/Compilers/Test/Resources/Core/NetFX/WinRt/System.Runtime.WindowsRuntime.UI.Xaml.dll new file mode 100644 index 0000000000000000000000000000000000000000..e4bbbb5376e8fcdf8659f83101ab2f48972396c1 GIT binary patch literal 63000 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

uwREEPPUXhfsGIqVl7hi@ceU>9% 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

=$nOZ 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 literal 0 HcmV?d00001 diff --git a/src/Compilers/Test/Resources/Core/NetFX/WinRt/System.Runtime.WindowsRuntime.dll b/src/Compilers/Test/Resources/Core/NetFX/WinRt/System.Runtime.WindowsRuntime.dll new file mode 100644 index 0000000000000000000000000000000000000000..dbd3e5ea114bcf4039c3284476545eac3326c77f GIT binary patch literal 137208 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≷$g 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 Ak6O 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 ResourceLoader.GetOrCreateResource(ref s_mincorlib, "NetFX.Minimal.mincorlib.dll"); + private static string s_mincorlib_cs; + public static string mincorlib_cs => ResourceLoader.GetOrCreateResource(ref s_mincorlib_cs, "NetFX.Minimal.mincorlib.cs"); + private static byte[] s_minasync; public static byte[] minasync => ResourceLoader.GetOrCreateResource(ref s_minasync, "NetFX.Minimal.minasync.dll"); @@ -177,6 +182,24 @@ public static class Minimal public static byte[] minasynccorlib => ResourceLoader.GetOrCreateResource(ref s_minasynccorlib, "NetFX.Minimal.minasynccorlib.dll"); } + public static class PortableProfile7 + { + private static byte[] s_mscorlib; + public static byte[] Mscorlib => ResourceLoader.GetOrCreateResource(ref s_mscorlib, "NetFX.PortableProfile7.mscorlib.dll"); + + private static byte[] s_systemRuntime; + public static byte[] SystemRuntime => ResourceLoader.GetOrCreateResource(ref s_systemRuntime, "NetFX.PortableProfile7.System.Runtime.dll"); + } + + public static class WinRt + { + public static byte[] s_systemRuntimeWindowsRuntime; + public static byte[] SystemRuntimeWindowsRuntime => ResourceLoader.GetOrCreateResource(ref s_systemRuntimeWindowsRuntime, "NetFX.WinRt.System.Runtime.WindowsRuntime.dll"); + + public static byte[] s_systemRuntimeWindowsRuntimeUIXaml; + public static byte[] SystemRuntimeWindowsRuntimeUIXaml => ResourceLoader.GetOrCreateResource(ref s_systemRuntimeWindowsRuntimeUIXaml, "NetFX.WinRt.System.Runtime.WindowsRuntime.UI.Xaml.dll"); + } + public static class ValueTuple { private static byte[] s_tuplelib; @@ -489,6 +512,9 @@ public static class Metadata private static byte[] s_invalidPublicKey; public static byte[] InvalidPublicKey => ResourceLoader.GetOrCreateResource(ref s_invalidPublicKey, "SymbolsTests.Metadata.InvalidPublicKey.dll"); + private static byte[] s_badDefaultParameterValue; + public static byte[] BadDefaultParameterValue => ResourceLoader.GetOrCreateResource(ref s_badDefaultParameterValue, "BadDefaultParameterValue.dll"); + private static byte[] s_MDTestAttributeApplicationLib; public static byte[] MDTestAttributeApplicationLib => ResourceLoader.GetOrCreateResource(ref s_MDTestAttributeApplicationLib, "SymbolsTests.Metadata.MDTestAttributeApplicationLib.dll"); @@ -601,6 +627,12 @@ public static class netModule public static byte[] x64COFF => ResourceLoader.GetOrCreateResource(ref s_x64COFF, "SymbolsTests.netModule.x64COFF.obj"); } + public static class StdOle + { + private static byte[] s_net45; + public static byte[] Net45 => ResourceLoader.GetOrCreateResource(ref s_net45, "net45.stdole.dll"); + } + public static class NoPia { private static byte[] s_A; diff --git a/src/Compilers/VisualBasic/Test/Emit/CodeGen/CodeGenTests.vb b/src/Compilers/VisualBasic/Test/Emit/CodeGen/CodeGenTests.vb index 9c611c473152c..0a76d3c560bc9 100644 --- a/src/Compilers/VisualBasic/Test/Emit/CodeGen/CodeGenTests.vb +++ b/src/Compilers/VisualBasic/Test/Emit/CodeGen/CodeGenTests.vb @@ -13655,7 +13655,7 @@ End Module - Dim testReference = AssemblyMetadata.CreateFromImage(ProprietaryTestResources.Repros.BadDefaultParameterValue).GetReference() + Dim testReference = AssemblyMetadata.CreateFromImage(TestResources.SymbolsTests.Metadata.BadDefaultParameterValue).GetReference() Dim compilation = CompileAndVerify(source, references:=New MetadataReference() {testReference}) compilation.VerifyIL("C.Main", Date: Mon, 9 Sep 2024 22:10:36 -0700 Subject: [PATCH 2/5] more --- .../Microsoft.CodeAnalysis.Compiler.Test.Resources.csproj | 4 ---- src/Compilers/VisualBasic/Test/Emit/CodeGen/CodeGenTests.vb | 1 - 2 files changed, 5 deletions(-) diff --git a/src/Compilers/Test/Resources/Core/Microsoft.CodeAnalysis.Compiler.Test.Resources.csproj b/src/Compilers/Test/Resources/Core/Microsoft.CodeAnalysis.Compiler.Test.Resources.csproj index ef8d381c230dd..3a18cac838a28 100644 --- a/src/Compilers/Test/Resources/Core/Microsoft.CodeAnalysis.Compiler.Test.Resources.csproj +++ b/src/Compilers/Test/Resources/Core/Microsoft.CodeAnalysis.Compiler.Test.Resources.csproj @@ -389,8 +389,4 @@ - - - - diff --git a/src/Compilers/VisualBasic/Test/Emit/CodeGen/CodeGenTests.vb b/src/Compilers/VisualBasic/Test/Emit/CodeGen/CodeGenTests.vb index 0a76d3c560bc9..5283e27fcd974 100644 --- a/src/Compilers/VisualBasic/Test/Emit/CodeGen/CodeGenTests.vb +++ b/src/Compilers/VisualBasic/Test/Emit/CodeGen/CodeGenTests.vb @@ -5,7 +5,6 @@ Imports System.Collections.Immutable Imports System.Reflection Imports Microsoft.CodeAnalysis -Imports Microsoft.CodeAnalysis.Test.Resources.Proprietary Imports Microsoft.CodeAnalysis.Test.Utilities Imports Microsoft.CodeAnalysis.VisualBasic Imports Microsoft.CodeAnalysis.VisualBasic.Symbols From 1a29238537755c2d18d4756d4a7ec9a528710de7 Mon Sep 17 00:00:00 2001 From: Jared Parsons Date: Tue, 10 Sep 2024 06:40:07 -0700 Subject: [PATCH 3/5] more --- .../Test/Semantic/Semantics/ForEachTests.cs | 3 +- src/Compilers/Test/Core/TestBase.cs | 5 -- .../Test/Resources/Core/TestResources.cs | 2 +- .../Test/Semantic/Semantics/ForeachTest.vb | 4 +- .../SymbolFinder/DependentTypeFinderTests.cs | 55 ++++++++++--------- .../CoreTest/FindReferencesTests.cs | 4 +- 6 files changed, 35 insertions(+), 38 deletions(-) diff --git a/src/Compilers/CSharp/Test/Semantic/Semantics/ForEachTests.cs b/src/Compilers/CSharp/Test/Semantic/Semantics/ForEachTests.cs index fd120694a384c..6ac8cbcb83698 100644 --- a/src/Compilers/CSharp/Test/Semantic/Semantics/ForEachTests.cs +++ b/src/Compilers/CSharp/Test/Semantic/Semantics/ForEachTests.cs @@ -6,6 +6,7 @@ using System.Collections.Immutable; using System.Linq; +using Basic.Reference.Assemblies; using Microsoft.CodeAnalysis.CSharp.Symbols; using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.CSharp.Test.Utilities; @@ -2119,7 +2120,7 @@ void Test(string s) } "; - var comp = CreateEmptyCompilation(source, new[] { MscorlibRefPortable }); + var comp = CreateEmptyCompilation(source, [SystemRuntimePP7Ref]); comp.VerifyDiagnostics(); var tree = comp.SyntaxTrees.Single(); diff --git a/src/Compilers/Test/Core/TestBase.cs b/src/Compilers/Test/Core/TestBase.cs index 98c497aca2453..0930775cc7469 100644 --- a/src/Compilers/Test/Core/TestBase.cs +++ b/src/Compilers/Test/Core/TestBase.cs @@ -185,11 +185,6 @@ public virtual void Dispose() LazyThreadSafetyMode.PublicationOnly); public static MetadataReference MscorlibRef => s_mscorlibRef.Value; - private static readonly Lazy s_mscorlibRefPortable = new Lazy( - () => AssemblyMetadata.CreateFromImage(TestResources.NetFX.PortableProfile7.Mscorlib).GetReference(display: "mscorlib.v4_0_30319.portable.dll"), - LazyThreadSafetyMode.PublicationOnly); - public static MetadataReference MscorlibRefPortable => s_mscorlibRefPortable.Value; - private static readonly Lazy s_aacorlibRef = new Lazy( () => { diff --git a/src/Compilers/Test/Resources/Core/TestResources.cs b/src/Compilers/Test/Resources/Core/TestResources.cs index a3f0b98034326..f310edd02bc1b 100644 --- a/src/Compilers/Test/Resources/Core/TestResources.cs +++ b/src/Compilers/Test/Resources/Core/TestResources.cs @@ -513,7 +513,7 @@ public static class Metadata public static byte[] InvalidPublicKey => ResourceLoader.GetOrCreateResource(ref s_invalidPublicKey, "SymbolsTests.Metadata.InvalidPublicKey.dll"); private static byte[] s_badDefaultParameterValue; - public static byte[] BadDefaultParameterValue => ResourceLoader.GetOrCreateResource(ref s_badDefaultParameterValue, "BadDefaultParameterValue.dll"); + public static byte[] BadDefaultParameterValue => ResourceLoader.GetOrCreateResource(ref s_badDefaultParameterValue, "SymbolsTests.Metadata.BadDefaultParameterValue.dll"); private static byte[] s_MDTestAttributeApplicationLib; public static byte[] MDTestAttributeApplicationLib => ResourceLoader.GetOrCreateResource(ref s_MDTestAttributeApplicationLib, "SymbolsTests.Metadata.MDTestAttributeApplicationLib.dll"); diff --git a/src/Compilers/VisualBasic/Test/Semantic/Semantics/ForeachTest.vb b/src/Compilers/VisualBasic/Test/Semantic/Semantics/ForeachTest.vb index b4885ca05dd6f..af8b346a6f7e3 100644 --- a/src/Compilers/VisualBasic/Test/Semantic/Semantics/ForeachTest.vb +++ b/src/Compilers/VisualBasic/Test/Semantic/Semantics/ForeachTest.vb @@ -1148,7 +1148,7 @@ Public Class C End Sub End Class -, {MscorlibRefPortable}) +, {SystemRuntimePP7Ref}) comp.VerifyDiagnostics() @@ -1188,7 +1188,7 @@ Public Class C End Sub End Class -, {MscorlibRefPortable}) +, {SystemRuntimePP7Ref}) comp.VerifyDiagnostics() diff --git a/src/EditorFeatures/Test/SymbolFinder/DependentTypeFinderTests.cs b/src/EditorFeatures/Test/SymbolFinder/DependentTypeFinderTests.cs index c28bb4f6a5fb4..5b768839c6340 100644 --- a/src/EditorFeatures/Test/SymbolFinder/DependentTypeFinderTests.cs +++ b/src/EditorFeatures/Test/SymbolFinder/DependentTypeFinderTests.cs @@ -9,6 +9,7 @@ using System.Threading; using System.Threading.Tasks; using System.Xml.Linq; +using Basic.Reference.Assemblies; using Microsoft.CodeAnalysis.Editor.UnitTests; using Microsoft.CodeAnalysis.FindSymbols; using Microsoft.CodeAnalysis.Remote.Testing; @@ -57,7 +58,7 @@ namespace N { public abstract class BaseClass { } } -", MscorlibRefPortable); +", Net40.References.mscorlib); var portableProject = GetPortableProject(solution); @@ -68,7 +69,7 @@ namespace M { public class DerivedClass : BaseClass { } } -", MscorlibRef, portableProject.Id); +", Net461.References.mscorlib, portableProject.Id); // get symbols for types var portableCompilation = await GetPortableProject(solution).GetCompilationAsync(); @@ -98,7 +99,7 @@ namespace N { public interface BaseInterface { } } -", MscorlibRefPortable); +", Net40.References.mscorlib); var portableProject = GetPortableProject(solution); @@ -109,7 +110,7 @@ namespace M { public interface DerivedInterface : BaseInterface { } } -", MscorlibRef, portableProject.Id); +", Net461.References.mscorlib, portableProject.Id); // get symbols for types var portableCompilation = await GetPortableProject(solution).GetCompilationAsync(); @@ -145,7 +146,7 @@ namespace N { public abstract class BaseClass { } } -", MscorlibRefPortable); +", Net40.References.mscorlib); var portableProject = GetPortableProject(solution); @@ -160,7 +161,7 @@ namespace M public class DerivedClass : Alias2 { } } -", MscorlibRef, portableProject.Id); +", Net461.References.mscorlib, portableProject.Id); // get symbols for types var portableCompilation = await GetPortableProject(solution).GetCompilationAsync(); @@ -190,7 +191,7 @@ namespace N { public abstract class BaseClass { } } -", MscorlibRefPortable); +", Net40.References.mscorlib); var portableProject = GetPortableProject(solution); @@ -231,7 +232,7 @@ Namespace N Public MustInherit Class BaseClass End Class End Namespace -", MscorlibRefPortable); +", Net40.References.mscorlib); var portableProject = GetPortableProject(solution); @@ -243,7 +244,7 @@ Public Class DerivedClass Inherits BaseClass End Class End Namespace -", MscorlibRef, portableProject.Id); +", Net461.References.mscorlib, portableProject.Id); // get symbols for types var portableCompilation = await GetPortableProject(solution).GetCompilationAsync(); @@ -273,7 +274,7 @@ namespace N { public abstract class BaseClass { } } -", MscorlibRefPortable); +", Net40.References.mscorlib); var portableProject = GetPortableProject(solution); @@ -285,7 +286,7 @@ Public Class DerivedClass Inherits BaseClass End Class End Namespace -", MscorlibRef, portableProject.Id); +", Net40.References.mscorlib, portableProject.Id); // get symbols for types var portableCompilation = await GetPortableProject(solution).GetCompilationAsync(); @@ -315,7 +316,7 @@ namespace N { public interface IBaseInterface { } } -", MscorlibRefPortable); +", Net40.References.mscorlib); var portableProject = GetPortableProject(solution); @@ -326,7 +327,7 @@ namespace M { public class ImplementingClass : IBaseInterface { } } -", MscorlibRef, portableProject.Id); +", Net461.References.mscorlib, portableProject.Id); // get symbols for types var portableCompilation = await GetPortableProject(solution).GetCompilationAsync(); @@ -355,7 +356,7 @@ Namespace N Public Interface IBaseInterface End Interface End Namespace -", MscorlibRefPortable); +", Net40.References.mscorlib); var portableProject = GetPortableProject(solution); @@ -367,7 +368,7 @@ Public Class ImplementingClass Implements IBaseInterface End Class End Namespace -", MscorlibRef, portableProject.Id); +", Net461.References.mscorlib, portableProject.Id); // get symbols for types var portableCompilation = await GetPortableProject(solution).GetCompilationAsync(); @@ -396,7 +397,7 @@ Namespace N Public Interface IBaseInterface End Interface End Namespace -", MscorlibRefPortable); +", Net40.References.mscorlib); var portableProject = GetPortableProject(solution); @@ -407,7 +408,7 @@ namespace M { public class ImplementingClass : IBaseInterface { } } -", MscorlibRef, portableProject.Id); +", Net40.References.mscorlib, portableProject.Id); // get symbols for types var portableCompilation = await GetPortableProject(solution).GetCompilationAsync(); @@ -431,7 +432,7 @@ public async Task DerivedMetadataClasses(TestHost host) var solution = workspace.CurrentSolution; // create a normal assembly with a type derived from the portable abstract base - solution = AddProjectWithMetadataReferences(solution, "NormalProject", LanguageNames.CSharp, @"", MscorlibRef); + solution = AddProjectWithMetadataReferences(solution, "NormalProject", LanguageNames.CSharp, @"", Net40.References.mscorlib); // get symbols for types var compilation = await GetNormalProject(solution).GetCompilationAsync(); @@ -476,7 +477,7 @@ interface IC3 : IB3 { } interface ID1 : IC1 { } interface IOther { } -", MscorlibRef); +", Net40.References.mscorlib); // get symbols for types var compilation = await GetNormalProject(solution).GetCompilationAsync(); @@ -528,7 +529,7 @@ class D1 : C1 { } class OtherClass { } struct OtherStruct { } -", MscorlibRef); +", Net40.References.mscorlib); // get symbols for types var compilation = await GetNormalProject(solution).GetCompilationAsync(); @@ -565,7 +566,7 @@ public async Task ImplementingTypesDoesProduceDelegates(TestHost host) // create a normal assembly with a type derived from the portable abstract base solution = AddProjectWithMetadataReferences(solution, "NormalProject", LanguageNames.CSharp, @" delegate void D(); -", MscorlibRef); +", Net40.References.mscorlib); // get symbols for types var compilation = await GetNormalProject(solution).GetCompilationAsync(); @@ -595,7 +596,7 @@ enum E { A, B, C, } -", MscorlibRef); +", Net40.References.mscorlib); // get symbols for types var compilation = await GetNormalProject(solution).GetCompilationAsync(); @@ -679,7 +680,7 @@ public abstract class T_BaseProject_DerivedClass2 : T_BaseProject_DerivedClass1 { } } -", MscorlibRef); +", Net40.References.mscorlib); var normalProject1 = solution.Projects.Single(); @@ -691,7 +692,7 @@ public class T_DependProject_Class : T_BaseProject_DerivedClass2 { } } -", MscorlibRef, normalProject1.Id); +", Net40.References.mscorlib, normalProject1.Id); normalProject1 = solution.GetProject(normalProject1.Id); var normalProject2 = solution.Projects.Single(p => p != normalProject1); @@ -734,7 +735,7 @@ public interface I void M(); } } -", MscorlibRefPortable); +", Net40.References.mscorlib); var portableProject1 = solution.Projects.Single(p => p.Name == "PortableProject1"); @@ -747,7 +748,7 @@ public class C : I public void M() { } } } -", MscorlibRefPortable, portableProject1.Id); +", Net40.References.mscorlib, portableProject1.Id); // get symbols for types var compilation1 = await solution.Projects.Single(p => p.Name == "PortableProject1").GetCompilationAsync(); @@ -778,7 +779,7 @@ public interface I void M(); } } -", MscorlibRefPortable); +", Net40.References.mscorlib); var portableProject1 = GetPortableProject(solution); diff --git a/src/Workspaces/CoreTest/FindReferencesTests.cs b/src/Workspaces/CoreTest/FindReferencesTests.cs index 909a0db02fee3..45edebba88936 100644 --- a/src/Workspaces/CoreTest/FindReferencesTests.cs +++ b/src/Workspaces/CoreTest/FindReferencesTests.cs @@ -461,7 +461,7 @@ public class BaseClass public virtual void SomeMethod() { } } } -", MscorlibRefPortable); +", MscorlibPP7Ref); // create a normal assembly with a type derived from the portable base and overriding the method solution = AddProjectWithMetadataReferences(solution, "NormalProject", LanguageNames.CSharp, @" @@ -473,7 +473,7 @@ public class DerivedClass : BaseClass public override void SomeMethod() { } } } -", MscorlibRef, solution.Projects.Single(pid => pid.Name == "PortableProject").Id); +", Net40.References.mscorlib, solution.Projects.Single(pid => pid.Name == "PortableProject").Id); // get symbols for methods var portableCompilation = await solution.Projects.Single(p => p.Name == "PortableProject").GetCompilationAsync(); From bb1bc700ac8582ddf251d08650a5dc153c5d15d9 Mon Sep 17 00:00:00 2001 From: Jared Parsons Date: Tue, 10 Sep 2024 13:39:47 -0700 Subject: [PATCH 4/5] more --- eng/Directory.Packages.props | 1 - src/Compilers/Test/Core/Mocks/StdOle.cs | 83 +++++++++++++++++++ .../Test/Core/Mocks/TestReferences.cs | 4 +- ...odeAnalysis.Compiler.Test.Resources.csproj | 4 +- .../Test/Resources/Core/TestResources.cs | 6 -- 5 files changed, 86 insertions(+), 12 deletions(-) create mode 100644 src/Compilers/Test/Core/Mocks/StdOle.cs diff --git a/eng/Directory.Packages.props b/eng/Directory.Packages.props index 29c825be5f169..43df945a6417a 100644 --- a/eng/Directory.Packages.props +++ b/eng/Directory.Packages.props @@ -271,7 +271,6 @@ - diff --git a/src/Compilers/Test/Core/Mocks/StdOle.cs b/src/Compilers/Test/Core/Mocks/StdOle.cs new file mode 100644 index 0000000000000..efad464a13c9b --- /dev/null +++ b/src/Compilers/Test/Core/Mocks/StdOle.cs @@ -0,0 +1,83 @@ +// 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; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.Test.Utilities; +using Microsoft.CodeAnalysis.Text; + +namespace Roslyn.Test.Utilities; + +///

+/// This type produces stdole.dll that mimic the version used in the original Roslyn +/// interop tests. +/// +public static class StdOle +{ + public static PortableExecutableReference Build(IEnumerable references) + { + const string assemblyAttributes = """ + using System.Reflection; + using System.Runtime.InteropServices; + + [assembly: ImportedFromTypeLib("stdole")] + [assembly: Guid("00020430-0000-0000-c000-000000000046")] + [assembly: PrimaryInteropAssembly(2, 0)] + [assembly: AssemblyVersion("7.0.3300.0")] + + """; + + const string code = """ + using System.Runtime.InteropServices; + namespace stdole; + + public struct GUID + { + public uint Data1; + public ushort Data2; + public ushort Data3; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)] + public byte[] Data4; + } + + [ComImport] + [Guid("00020400-0000-0000-C000-000000000046")] + [TypeLibType(512)] + public interface IDispatch + { + } + """; + + var publicKeyText = "" + + "002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e8" + + "4aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980" + + "957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1" + + "dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293"; + var publicKey = TestHelpers.HexToByte(publicKeyText.AsSpan()); + var publicKeyToken = AssemblyIdentity.CalculatePublicKeyToken(publicKey); + Debug.Assert("B0-3F-5F-7F-11-D5-0A-3A" == BitConverter.ToString(publicKeyToken.ToArray())); + + var options = new CSharpCompilationOptions( + OutputKind.DynamicallyLinkedLibrary, + cryptoPublicKey: publicKey, + optimizationLevel: OptimizationLevel.Release); + var compilation = CSharpCompilation.Create( + "stdole", + [ + CSharpSyntaxTree.ParseText(SourceText.From(code)), + CSharpSyntaxTree.ParseText(SourceText.From(assemblyAttributes)) + ], + references: references, + options); + + return compilation.EmitToPortableExecutableReference(); + } +} diff --git a/src/Compilers/Test/Core/Mocks/TestReferences.cs b/src/Compilers/Test/Core/Mocks/TestReferences.cs index aaa94bdd69572..2ebc1cca75a98 100644 --- a/src/Compilers/Test/Core/Mocks/TestReferences.cs +++ b/src/Compilers/Test/Core/Mocks/TestReferences.cs @@ -9,6 +9,7 @@ using System.Threading; using Microsoft.CodeAnalysis; using Roslyn.Test.Utilities; +using Xunit; public static class TestReferences { @@ -688,8 +689,7 @@ public static class MultiTargeting public static class NoPia { private static readonly Lazy s_stdOle = new Lazy( - () => AssemblyMetadata.CreateFromImage(TestResources.SymbolsTests.StdOle.Net45).GetReference(display: "stdole.dll"), - LazyThreadSafetyMode.PublicationOnly); + () => Roslyn.Test.Utilities.StdOle.Build(TargetFrameworkUtil.StandardReferences), LazyThreadSafetyMode.PublicationOnly); public static PortableExecutableReference StdOle => s_stdOle.Value; private static readonly Lazy s_pia1 = new Lazy( diff --git a/src/Compilers/Test/Resources/Core/Microsoft.CodeAnalysis.Compiler.Test.Resources.csproj b/src/Compilers/Test/Resources/Core/Microsoft.CodeAnalysis.Compiler.Test.Resources.csproj index 3a18cac838a28..2e52cad71d476 100644 --- a/src/Compilers/Test/Resources/Core/Microsoft.CodeAnalysis.Compiler.Test.Resources.csproj +++ b/src/Compilers/Test/Resources/Core/Microsoft.CodeAnalysis.Compiler.Test.Resources.csproj @@ -15,9 +15,7 @@ - - - + diff --git a/src/Compilers/Test/Resources/Core/TestResources.cs b/src/Compilers/Test/Resources/Core/TestResources.cs index f310edd02bc1b..a7fed061b198a 100644 --- a/src/Compilers/Test/Resources/Core/TestResources.cs +++ b/src/Compilers/Test/Resources/Core/TestResources.cs @@ -627,12 +627,6 @@ public static class netModule public static byte[] x64COFF => ResourceLoader.GetOrCreateResource(ref s_x64COFF, "SymbolsTests.netModule.x64COFF.obj"); } - public static class StdOle - { - private static byte[] s_net45; - public static byte[] Net45 => ResourceLoader.GetOrCreateResource(ref s_net45, "net45.stdole.dll"); - } - public static class NoPia { private static byte[] s_A; From 29b259d658d780a5114cff54a9250678101204c9 Mon Sep 17 00:00:00 2001 From: Jared Parsons Date: Tue, 10 Sep 2024 15:24:10 -0700 Subject: [PATCH 5/5] more --- .../Test/Semantic/Semantics/LambdaTests.cs | 21 +++++---- src/Compilers/Test/Core/Mocks/Silverlight.cs | 47 +++++++++++++++++-- .../Test/Core/Mocks/TestReferences.cs | 11 +++-- .../Symbol/SymbolsTests/Retargeting/NoPia.vb | 6 +-- 4 files changed, 65 insertions(+), 20 deletions(-) diff --git a/src/Compilers/CSharp/Test/Semantic/Semantics/LambdaTests.cs b/src/Compilers/CSharp/Test/Semantic/Semantics/LambdaTests.cs index 6bac9eb55fba2..1e55230cdfaa5 100644 --- a/src/Compilers/CSharp/Test/Semantic/Semantics/LambdaTests.cs +++ b/src/Compilers/CSharp/Test/Semantic/Semantics/LambdaTests.cs @@ -414,7 +414,8 @@ public static void Goo(Func func) var comp1 = CreateCompilation( Parse(text1), - new[] { TestReferences.SymbolsTests.NoPia.StdOle.WithEmbedInteropTypes(true) }, + targetFramework: TargetFramework.NetFramework, + references: [TestReferences.SymbolsTests.NoPia.StdOleNetFramework.WithEmbedInteropTypes(true)], options: TestOptions.ReleaseDll); var text2 = @" @@ -429,22 +430,24 @@ public static void Main() var comp2 = CreateCompilation( Parse(text2), - new MetadataReference[] - { + targetFramework: TargetFramework.NetFramework, + references: + [ new CSharpCompilationReference(comp1), - TestReferences.SymbolsTests.NoPia.StdOle.WithEmbedInteropTypes(true) - }, + TestReferences.SymbolsTests.NoPia.StdOleNetFramework.WithEmbedInteropTypes(true) + ], options: TestOptions.ReleaseExe); CompileAndVerify(comp2, expectedOutput: "Y").Diagnostics.Verify(); var comp3 = CreateCompilation( Parse(text2), - new MetadataReference[] - { + targetFramework: TargetFramework.NetFramework, + references: + [ comp1.EmitToImageReference(), - TestReferences.SymbolsTests.NoPia.StdOle.WithEmbedInteropTypes(true) - }, + TestReferences.SymbolsTests.NoPia.StdOleNetFramework.WithEmbedInteropTypes(true) + ], options: TestOptions.ReleaseExe); CompileAndVerify(comp3, expectedOutput: "Y").Diagnostics.Verify(); diff --git a/src/Compilers/Test/Core/Mocks/Silverlight.cs b/src/Compilers/Test/Core/Mocks/Silverlight.cs index cf012505eb6c5..9bfe8bc8ff200 100644 --- a/src/Compilers/Test/Core/Mocks/Silverlight.cs +++ b/src/Compilers/Test/Core/Mocks/Silverlight.cs @@ -11,6 +11,7 @@ using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.Emit; using Microsoft.CodeAnalysis.Test.Utilities; using Microsoft.CodeAnalysis.Text; @@ -35,6 +36,39 @@ public static class Silverlight private static (byte[], byte[]) BuildImages() { + const string corlibExtraCode = """ + using System; + using System.Reflection; + + namespace System.Reflection; + + [AttributeUsage(AttributeTargets.Assembly, Inherited = false)] + public sealed class AssemblyFileVersionAttribute : Attribute + { + public string Version { get; } + public AssemblyFileVersionAttribute(string version) + { + Version = version; + } + } + [AttributeUsage(AttributeTargets.Assembly, Inherited = false)] + public sealed class AssemblyVersionAttribute : Attribute + { + public string Version { get; } + public AssemblyVersionAttribute(string version) + { + Version = version; + } + } + """; + + const string assemblyAttributes = """ + using System.Reflection; + + [assembly: AssemblyFileVersion("5.0.5.0")] + [assembly: AssemblyVersion("5.0.5.0")] + """; + var publicKeyText = "" + "00240000048000009400000006020000002400005253413100040000010001008d56c76f9e8649383049f" + "383c44be0ec204181822a6c31cf5eb7ef486944d032188ea1d3920763712ccb12d75fb77e9811149e6148" + @@ -50,15 +84,18 @@ private static (byte[], byte[]) BuildImages() optimizationLevel: OptimizationLevel.Release); var mscorlibCompilation = CSharpCompilation.Create( "mscorlib", - [CSharpSyntaxTree.ParseText(SourceText.From(TestResources.NetFX.Minimal.mincorlib_cs))], - references: [], - options); + [ + CSharpSyntaxTree.ParseText(SourceText.From(TestResources.NetFX.Minimal.mincorlib_cs)), + CSharpSyntaxTree.ParseText(SourceText.From(corlibExtraCode)), + CSharpSyntaxTree.ParseText(SourceText.From(assemblyAttributes)), + ], + options: options); - var mscorlib = mscorlibCompilation.EmitToStream(); + var mscorlib = mscorlibCompilation.EmitToStream(EmitOptions.Default.WithRuntimeMetadataVersion("v4.0.30319")); var systemCompilation = CSharpCompilation.Create( "System", - syntaxTrees: [], + syntaxTrees: [CSharpSyntaxTree.ParseText(SourceText.From(assemblyAttributes))], references: [mscorlibCompilation.EmitToImageReference()], options: options); diff --git a/src/Compilers/Test/Core/Mocks/TestReferences.cs b/src/Compilers/Test/Core/Mocks/TestReferences.cs index 2ebc1cca75a98..c338990d43864 100644 --- a/src/Compilers/Test/Core/Mocks/TestReferences.cs +++ b/src/Compilers/Test/Core/Mocks/TestReferences.cs @@ -7,6 +7,7 @@ using System; using System.IO; using System.Threading; +using Basic.Reference.Assemblies; using Microsoft.CodeAnalysis; using Roslyn.Test.Utilities; using Xunit; @@ -688,9 +689,13 @@ public static class MultiTargeting public static class NoPia { - private static readonly Lazy s_stdOle = new Lazy( - () => Roslyn.Test.Utilities.StdOle.Build(TargetFrameworkUtil.StandardReferences), LazyThreadSafetyMode.PublicationOnly); - public static PortableExecutableReference StdOle => s_stdOle.Value; + private static readonly Lazy s_stdOleNetFramework = new Lazy( + () => StdOle.Build(NetFramework.References), LazyThreadSafetyMode.PublicationOnly); + public static PortableExecutableReference StdOleNetFramework => s_stdOleNetFramework.Value; + + private static readonly Lazy s_stdOleNet40 = new Lazy( + () => StdOle.Build(Net40.References.All), LazyThreadSafetyMode.PublicationOnly); + public static PortableExecutableReference StdOleNet40 => s_stdOleNet40.Value; private static readonly Lazy s_pia1 = new Lazy( () => AssemblyMetadata.CreateFromImage(TestResources.SymbolsTests.NoPia.Pia1).GetReference(display: "Pia1.dll"), diff --git a/src/Compilers/VisualBasic/Test/Symbol/SymbolsTests/Retargeting/NoPia.vb b/src/Compilers/VisualBasic/Test/Symbol/SymbolsTests/Retargeting/NoPia.vb index 9248ac3e59f8c..83ac35b4e7814 100644 --- a/src/Compilers/VisualBasic/Test/Symbol/SymbolsTests/Retargeting/NoPia.vb +++ b/src/Compilers/VisualBasic/Test/Symbol/SymbolsTests/Retargeting/NoPia.vb @@ -1661,7 +1661,7 @@ public delegate Sub Y(addin As List(Of string)) Dim comp1 = CreateCompilationWithMscorlib40(source1, options:=TestOptions.ReleaseDll, - references:={TestReferences.SymbolsTests.NoPia.StdOle.WithEmbedInteropTypes(True)}) + references:={TestReferences.SymbolsTests.NoPia.StdOleNet40.WithEmbedInteropTypes(True)}) Dim source2 = @@ -1676,14 +1676,14 @@ End Module Dim comp2 = CreateCompilationWithMscorlib40AndVBRuntimeAndReferences(source2, {comp1.EmitToImageReference(), - TestReferences.SymbolsTests.NoPia.StdOle.WithEmbedInteropTypes(True)}, + TestReferences.SymbolsTests.NoPia.StdOleNet40.WithEmbedInteropTypes(True)}, TestOptions.ReleaseExe) CompileAndVerify(comp2, expectedOutput:="Y").Diagnostics.Verify() Dim comp3 = CreateCompilationWithMscorlib40AndVBRuntimeAndReferences(source2, {New VisualBasicCompilationReference(comp1), - TestReferences.SymbolsTests.NoPia.StdOle.WithEmbedInteropTypes(True)}, + TestReferences.SymbolsTests.NoPia.StdOleNet40.WithEmbedInteropTypes(True)}, TestOptions.ReleaseExe) CompileAndVerify(comp3, expectedOutput:="Y").Diagnostics.Verify()