From d83078bfa2c7b1698d814bb306da43fee9cba0eb Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Fri, 19 Jul 2024 06:31:41 -0700 Subject: [PATCH 1/6] Update Roslyn to 4.12.0-1.24358.3 --- Directory.Packages.props | 2 +- src/OmniSharp.Abstractions/Configuration.cs | 2 +- tests/OmniSharp.Cake.Tests/BlockStructureFacts.cs | 4 +++- tests/OmniSharp.Roslyn.CSharp.Tests/BlockStructureFacts.cs | 4 +++- tests/OmniSharp.Script.Tests/ScriptProjectProviderTests.cs | 2 +- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 78587d5c43..35f2d16dd4 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -9,7 +9,7 @@ 17.8.0 17.3.2 6.11.0-rc.110 - 4.10.0-2.24112.8 + 4.12.0-1.24358.3 2.6.1 diff --git a/src/OmniSharp.Abstractions/Configuration.cs b/src/OmniSharp.Abstractions/Configuration.cs index 51031d62b4..3fd36a2469 100644 --- a/src/OmniSharp.Abstractions/Configuration.cs +++ b/src/OmniSharp.Abstractions/Configuration.cs @@ -4,7 +4,7 @@ internal static class Configuration { public static bool ZeroBasedIndices = false; - public const string RoslynVersion = "4.10.0.0"; + public const string RoslynVersion = "4.12.0.0"; public const string RoslynPublicKeyToken = "31bf3856ad364e35"; public readonly static string RoslynFeatures = GetRoslynAssemblyFullName("Microsoft.CodeAnalysis.Features"); diff --git a/tests/OmniSharp.Cake.Tests/BlockStructureFacts.cs b/tests/OmniSharp.Cake.Tests/BlockStructureFacts.cs index a170950055..9dfd9d1ab3 100644 --- a/tests/OmniSharp.Cake.Tests/BlockStructureFacts.cs +++ b/tests/OmniSharp.Cake.Tests/BlockStructureFacts.cs @@ -38,7 +38,9 @@ void M()[| .ToArray(); var expected = testFile.Content.GetSpans() - .Select(span => testFile.Content.GetRangeFromSpan(span).ToRange()).ToArray(); + .Select(span => testFile.Content.GetRangeFromSpan(span).ToRange()) + .Reverse() + .ToArray(); Assert.Equal(expected, lineSpans); } diff --git a/tests/OmniSharp.Roslyn.CSharp.Tests/BlockStructureFacts.cs b/tests/OmniSharp.Roslyn.CSharp.Tests/BlockStructureFacts.cs index 2579e0baba..e4e165adeb 100644 --- a/tests/OmniSharp.Roslyn.CSharp.Tests/BlockStructureFacts.cs +++ b/tests/OmniSharp.Roslyn.CSharp.Tests/BlockStructureFacts.cs @@ -37,7 +37,9 @@ void M()[| .ToArray(); var expected = testFile.Content.GetSpans() - .Select(span => testFile.Content.GetRangeFromSpan(span).ToRange()).ToArray(); + .Select(span => testFile.Content.GetRangeFromSpan(span).ToRange()) + .Reverse() + .ToArray(); Assert.Equal(expected, lineSpans); } diff --git a/tests/OmniSharp.Script.Tests/ScriptProjectProviderTests.cs b/tests/OmniSharp.Script.Tests/ScriptProjectProviderTests.cs index d71165b28c..92fd268ed6 100644 --- a/tests/OmniSharp.Script.Tests/ScriptProjectProviderTests.cs +++ b/tests/OmniSharp.Script.Tests/ScriptProjectProviderTests.cs @@ -17,7 +17,7 @@ public void DefaultLanguageVersionShouldBeLatest() var scriptProjectProvider = new ScriptProjectProvider(new ScriptOptions(), new OmniSharpEnvironment(), new LoggerFactory(), true, false); var scriptProjectInfo = scriptProjectProvider.CreateProject("test.csx", Enumerable.Empty(), Path.GetTempPath(), typeof(CommandLineScriptGlobals)); Assert.Equal(LanguageVersion.Latest, ((CSharpParseOptions)scriptProjectInfo.ParseOptions).SpecifiedLanguageVersion); - Assert.Equal(LanguageVersion.CSharp12, ((CSharpParseOptions)scriptProjectInfo.ParseOptions).LanguageVersion); + Assert.Equal(LanguageVersion.CSharp13, ((CSharpParseOptions)scriptProjectInfo.ParseOptions).LanguageVersion); } } } From 51c9515735fcbd8dc091210cad8916fe89593f1c Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Sat, 20 Jul 2024 08:43:42 -0700 Subject: [PATCH 2/6] Reorder test runs in CI --- .github/workflows/tests-net6.yml | 4 ++-- .github/workflows/tests.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/tests-net6.yml b/.github/workflows/tests-net6.yml index 95e9a7e3fe..14d69d51a5 100644 --- a/.github/workflows/tests-net6.yml +++ b/.github/workflows/tests-net6.yml @@ -29,8 +29,8 @@ jobs: matrix: os: [ubuntu-20.04, windows-2022, macos-12] testProjects: - - OmniSharp.MSBuild.Tests,OmniSharp.Roslyn.CSharp.Tests,OmniSharp.Cake.Tests,OmniSharp.Script.Tests,OmniSharp.Stdio.Tests,OmniSharp.Http.Tests,OmniSharp.Tests,OmniSharp.Lsp.Tests - - OmniSharp.DotNetTest.Tests + - OmniSharp.MSBuild.Tests,OmniSharp.Roslyn.CSharp.Tests,OmniSharp.DotNetTest.Tests,OmniSharp.Cake.Tests + - OmniSharp.Lsp.Tests,OmniSharp.Script.Tests,OmniSharp.Tests,OmniSharp.Stdio.Tests,OmniSharp.Http.Tests name: 'Test' steps: - name: Checkout diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index cdf3a34616..017dafdb25 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -29,8 +29,8 @@ jobs: matrix: os: [ubuntu-20.04, windows-2022, macos-12] testProjects: - - OmniSharp.MSBuild.Tests,OmniSharp.Roslyn.CSharp.Tests,OmniSharp.Cake.Tests,OmniSharp.Script.Tests,OmniSharp.Stdio.Tests,OmniSharp.Http.Tests,OmniSharp.Tests,OmniSharp.Lsp.Tests - - OmniSharp.DotNetTest.Tests + - OmniSharp.MSBuild.Tests,OmniSharp.Roslyn.CSharp.Tests,OmniSharp.DotNetTest.Tests,OmniSharp.Cake.Tests + - OmniSharp.Lsp.Tests,OmniSharp.Script.Tests,OmniSharp.Tests,OmniSharp.Stdio.Tests,OmniSharp.Http.Tests name: 'Test' steps: - name: Checkout From 50c401d2fffae8a4df42528fd1c15a055290bb0f Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Mon, 22 Jul 2024 23:05:43 -0700 Subject: [PATCH 3/6] Fix test --- build.json | 4 ++-- tests/OmniSharp.Roslyn.CSharp.Tests/QuickInfoProviderFacts.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.json b/build.json index 988db58b03..bceb92eab2 100644 --- a/build.json +++ b/build.json @@ -16,8 +16,8 @@ "TestProjects": [ "OmniSharp.MSBuild.Tests", "OmniSharp.Roslyn.CSharp.Tests", - "OmniSharp.DotNetTest.Tests", "OmniSharp.Lsp.Tests", + "OmniSharp.DotNetTest.Tests", "OmniSharp.Script.Tests", "OmniSharp.Cake.Tests", "OmniSharp.Http.Tests", @@ -55,4 +55,4 @@ "RestoreOnlyTestAssets": [ "ProjectWithMissingType" ] -} \ No newline at end of file +} diff --git a/tests/OmniSharp.Roslyn.CSharp.Tests/QuickInfoProviderFacts.cs b/tests/OmniSharp.Roslyn.CSharp.Tests/QuickInfoProviderFacts.cs index 28863d82f9..f0526bbeea 100644 --- a/tests/OmniSharp.Roslyn.CSharp.Tests/QuickInfoProviderFacts.cs +++ b/tests/OmniSharp.Roslyn.CSharp.Tests/QuickInfoProviderFacts.cs @@ -196,7 +196,7 @@ public async Task DisplayFormatForMethodSymbol_Invocation() var response = await GetTypeLookUpResponse(line: 6, column: 35); #if NETCOREAPP - Assert.Equal("```csharp\nvoid Console.WriteLine(string? value) (+ 17 overloads)\n```", response.Markdown); + Assert.Equal("```csharp\nvoid Console.WriteLine(string? value) (+ 18 overloads)\n```", response.Markdown); #else Assert.Equal("```csharp\nvoid Console.WriteLine(string value) (+ 18 overloads)\n```", response.Markdown); #endif From cce743fffa20ae423440328ec07809f011268dda Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Thu, 25 Jul 2024 23:24:28 -0700 Subject: [PATCH 4/6] Request completions until timeout in LSP tests --- .../OmnisharpCompletionHandlerFacts.cs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/tests/OmniSharp.Lsp.Tests/OmnisharpCompletionHandlerFacts.cs b/tests/OmniSharp.Lsp.Tests/OmnisharpCompletionHandlerFacts.cs index e9ad524bce..c2caf0ac96 100644 --- a/tests/OmniSharp.Lsp.Tests/OmnisharpCompletionHandlerFacts.cs +++ b/tests/OmniSharp.Lsp.Tests/OmnisharpCompletionHandlerFacts.cs @@ -1561,11 +1561,18 @@ private async Task FindCompletionsWithImportedAsync(string filen return completions; } - // Populating the completion list should take no more than a few ms, don't let it take too + // Populating the completion cache should take no more than a few ms, don't let it take too // long - await Task.Delay(ImportCompletionTimeout); - - completions = await FindCompletionsAsync(filename, source); + CancellationTokenSource cts = new CancellationTokenSource(millisecondsDelay: ImportCompletionTimeout); + await Task.Run(async () => + { + while (completions.IsIncomplete) + { + await Task.Delay(100); + completions = await FindCompletionsAsync(filename, source); + cts.Token.ThrowIfCancellationRequested(); + } + }, cts.Token); Assert.False(completions.IsIncomplete); return completions; From 33bc91ad0ee0a18d492cae58c6d4981086220f2e Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Thu, 25 Jul 2024 23:47:50 -0700 Subject: [PATCH 5/6] Revert fix test --- tests/OmniSharp.Roslyn.CSharp.Tests/QuickInfoProviderFacts.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/OmniSharp.Roslyn.CSharp.Tests/QuickInfoProviderFacts.cs b/tests/OmniSharp.Roslyn.CSharp.Tests/QuickInfoProviderFacts.cs index f0526bbeea..28863d82f9 100644 --- a/tests/OmniSharp.Roslyn.CSharp.Tests/QuickInfoProviderFacts.cs +++ b/tests/OmniSharp.Roslyn.CSharp.Tests/QuickInfoProviderFacts.cs @@ -196,7 +196,7 @@ public async Task DisplayFormatForMethodSymbol_Invocation() var response = await GetTypeLookUpResponse(line: 6, column: 35); #if NETCOREAPP - Assert.Equal("```csharp\nvoid Console.WriteLine(string? value) (+ 18 overloads)\n```", response.Markdown); + Assert.Equal("```csharp\nvoid Console.WriteLine(string? value) (+ 17 overloads)\n```", response.Markdown); #else Assert.Equal("```csharp\nvoid Console.WriteLine(string value) (+ 18 overloads)\n```", response.Markdown); #endif From ce58118a1e3df1bb6dc1c2e68b97092092e6958e Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Fri, 26 Jul 2024 00:24:19 -0700 Subject: [PATCH 6/6] Free up space in ADO CI --- .pipelines/init.yml | 58 ++++++++++++++++----------------------------- 1 file changed, 20 insertions(+), 38 deletions(-) diff --git a/.pipelines/init.yml b/.pipelines/init.yml index 8adcb81d47..a44c330558 100644 --- a/.pipelines/init.yml +++ b/.pipelines/init.yml @@ -1,13 +1,10 @@ parameters: # Configuration: Release Verbosity: Normal - DotNetVersion: "9.0.100-preview.1.24101.2" - DotNetVersion2: "8.0.201" - DotNetVersion3: "7.0.406" - DotNetVersion4: "6.0.203" # This is the last version Mono supports. It is used for our Mono CI tests. + DotNetVersion: "8.0.201" CakeVersion: "1.1.0" NuGetVersion: "5.7.0" - MonoVersion: '' + MonoVersion: "" steps: - task: DownloadBuildArtifacts@0 displayName: "Download GitVersion Variables" @@ -18,36 +15,21 @@ steps: pipelineId: GitVersion targetPath: "$(Build.ArtifactStagingDirectory)/gitversion/" - task: RocketSurgeonsGuild.variable-tools.DeserializeVariables.DeserializeVariables@1 - displayName: 'Deserialize GitVersion' + displayName: "Deserialize GitVersion" inputs: jsonfiles: $(Build.ArtifactStagingDirectory)/gitversion/**/gitversion.json - task: UseDotNet@2 displayName: Install dotnet $(DotNetVersion) inputs: - packageType: 'sdk' + packageType: "sdk" version: ${{ parameters.DotNetVersion }} - - task: UseDotNet@2 - displayName: Install dotnet $(DotNetVersion2) - inputs: - packageType: 'sdk' - version: ${{ parameters.DotNetVersion2 }} - - task: UseDotNet@2 - displayName: Install dotnet $(DotNetVersion3) - inputs: - packageType: 'sdk' - version: ${{ parameters.DotNetVersion3 }} - - task: UseDotNet@2 - displayName: Install dotnet $(DotNetVersion4) - inputs: - packageType: 'sdk' - version: ${{ parameters.DotNetVersion4 }} - task: DotNetCoreCLI@2 - displayName: 'dotnet install cake' + displayName: "dotnet install cake" inputs: command: custom custom: tool - arguments: 'install -g Cake.Tool --version $(CakeVersion)' - workingDirectory: '$(Build.ArtifactStagingDirectory)' + arguments: "install -g Cake.Tool --version $(CakeVersion)" + workingDirectory: "$(Build.ArtifactStagingDirectory)" env: CakeVersion: ${{ parameters.CakeVersion }} - task: NuGetToolInstaller@0 @@ -55,21 +37,21 @@ steps: inputs: versionSpec: ${{ parameters.NuGetVersion }} - task: NuGetCommand@2 - displayName: 'Cake restore packages.config' + displayName: "Cake restore packages.config" inputs: command: custom feedsToUse: config arguments: install tools/packages.config -ExcludeVersion -OutputDirectory tools - ${{ if ne(parameters.MonoVersion, '') }}: - - script: | - curl -o mono.pkg https://download.mono-project.com/archive/$MONO_VERSION/macos-10-universal/MonoFramework-MDK-$MONO_VERSION.182.macos10.xamarin.universal.pkg - sudo installer -pkg mono.pkg -target / - sudo cp -rf /Library/Frameworks/Mono.framework/Versions/$MONO_VERSION/ /Library/Frameworks/Mono.framework/Versions/Current/ - MONOPREFIX=/Library/Frameworks/Mono.framework/Versions/$MONO_VERSION - echo "##vso[task.setvariable variable=DYLD_FALLBACK_LIBRARY_PATH;]$MONOPREFIX/lib:/lib:/usr/lib:$DYLD_LIBRARY_FALLBACK_PATH" - echo "##vso[task.setvariable variable=PKG_CONFIG_PATH;]$MONOPREFIX/lib/pkgconfig:$MONOPREFIX/share/pkgconfig:$PKG_CONFIG_PATH" - echo "##vso[task.setvariable variable=PATH;]$MONOPREFIX/bin:$PATH" - env: - MONO_VERSION: ${{ parameters.MonoVersion }} - displayName: Use Mono ${{ parameters.MonoVersion }} - failOnStderr: false + - script: | + curl -o mono.pkg https://download.mono-project.com/archive/$MONO_VERSION/macos-10-universal/MonoFramework-MDK-$MONO_VERSION.182.macos10.xamarin.universal.pkg + sudo installer -pkg mono.pkg -target / + sudo cp -rf /Library/Frameworks/Mono.framework/Versions/$MONO_VERSION/ /Library/Frameworks/Mono.framework/Versions/Current/ + MONOPREFIX=/Library/Frameworks/Mono.framework/Versions/$MONO_VERSION + echo "##vso[task.setvariable variable=DYLD_FALLBACK_LIBRARY_PATH;]$MONOPREFIX/lib:/lib:/usr/lib:$DYLD_LIBRARY_FALLBACK_PATH" + echo "##vso[task.setvariable variable=PKG_CONFIG_PATH;]$MONOPREFIX/lib/pkgconfig:$MONOPREFIX/share/pkgconfig:$PKG_CONFIG_PATH" + echo "##vso[task.setvariable variable=PATH;]$MONOPREFIX/bin:$PATH" + env: + MONO_VERSION: ${{ parameters.MonoVersion }} + displayName: Use Mono ${{ parameters.MonoVersion }} + failOnStderr: false