From 374e5768e395b44f60652796aa52e3a955442ef1 Mon Sep 17 00:00:00 2001 From: Akshita Date: Thu, 11 Apr 2019 14:29:10 -0700 Subject: [PATCH] do not hash target framework and change to project id --- .../Eventing/IEventEmitterExtensions.cs | 8 ++--- .../Events/ProjectConfigurationMessage.cs | 2 +- src/OmniSharp.MSBuild/ProjectLoadListener.cs | 13 ++++---- .../ProjectLoadListenerTests.cs | 32 +++++++------------ 4 files changed, 23 insertions(+), 32 deletions(-) diff --git a/src/OmniSharp.Abstractions/Eventing/IEventEmitterExtensions.cs b/src/OmniSharp.Abstractions/Eventing/IEventEmitterExtensions.cs index ef2d19fc37..aeb2dfd816 100644 --- a/src/OmniSharp.Abstractions/Eventing/IEventEmitterExtensions.cs +++ b/src/OmniSharp.Abstractions/Eventing/IEventEmitterExtensions.cs @@ -46,15 +46,15 @@ public static void UnresolvedDepdendencies(this IEventEmitter emitter, string pr } public static void ProjectInformation(this IEventEmitter emitter, - HashedString projectGuid, - IEnumerable targetFrameworks, + HashedString projectId, + IEnumerable targetFrameworks, IEnumerable references, IEnumerable fileExtensions) { var projectConfiguration = new ProjectConfigurationMessage() { - TargetFrameworks = targetFrameworks.Select(hashed => hashed.Value), - ProjectGuid = projectGuid.Value, + TargetFrameworks = targetFrameworks, + ProjectId = projectId.Value, References = references.Select(hashed => hashed.Value), FileExtensions = fileExtensions.Select(hashed => hashed.Value) }; diff --git a/src/OmniSharp.Abstractions/Models/Events/ProjectConfigurationMessage.cs b/src/OmniSharp.Abstractions/Models/Events/ProjectConfigurationMessage.cs index df0707ba78..dce44dcf0e 100644 --- a/src/OmniSharp.Abstractions/Models/Events/ProjectConfigurationMessage.cs +++ b/src/OmniSharp.Abstractions/Models/Events/ProjectConfigurationMessage.cs @@ -5,7 +5,7 @@ namespace OmniSharp.Models.Events { public class ProjectConfigurationMessage { - public string ProjectGuid { get; set; } + public string ProjectId { get; set; } public IEnumerable TargetFrameworks { get; set; } public IEnumerable References { get; set; } public IEnumerable FileExtensions { get; set; } diff --git a/src/OmniSharp.MSBuild/ProjectLoadListener.cs b/src/OmniSharp.MSBuild/ProjectLoadListener.cs index c4aa6fe415..618391fe1b 100644 --- a/src/OmniSharp.MSBuild/ProjectLoadListener.cs +++ b/src/OmniSharp.MSBuild/ProjectLoadListener.cs @@ -34,8 +34,8 @@ public void ProjectLoaded(ProjectLoadedEventArgs args) { try { - var projectGuid = GetProjectId(args); - var hashedTargetFrameworks = GetHashedTargetFrameworks(args.ProjectInstance); + var projectId = GetProjectId(args); + var targetFrameworks = GetTargetFrameworks(args.ProjectInstance); if (args.References == null) { @@ -45,7 +45,7 @@ public void ProjectLoaded(ProjectLoadedEventArgs args) var hashedReferences = GetHashedReferences(args); var hashedFileExtensions = GetUniqueHashedFileExtensions(args); - _eventEmitter.ProjectInformation(projectGuid, hashedTargetFrameworks, hashedReferences, hashedFileExtensions); + _eventEmitter.ProjectInformation(projectId, targetFrameworks, hashedReferences, hashedFileExtensions); } catch (Exception ex) { @@ -80,7 +80,7 @@ private static IEnumerable GetHashedReferences(ProjectLoadedEventA } // Internal for testing - internal static IEnumerable GetHashedTargetFrameworks(ProjectInstance projectInstance) + internal static IEnumerable GetTargetFrameworks(ProjectInstance projectInstance) { var targetFrameworks = projectInstance.GetPropertyValue(TargetFrameworks); if (string.IsNullOrEmpty(targetFrameworks)) @@ -96,11 +96,10 @@ internal static IEnumerable GetHashedTargetFrameworks(ProjectInsta { return targetFrameworks.Split(';') .Where(tfm => !string.IsNullOrWhiteSpace(tfm)) - .Select(tfm => tfm.ToLower()) - .Select(_tfmAndFileHashingAlgorithm.HashInput); + .Select(tfm => tfm.ToLower()); } - return new List(); + return new List(); } } } diff --git a/tests/OmniSharp.MSBuild.Tests/ProjectLoadListenerTests.cs b/tests/OmniSharp.MSBuild.Tests/ProjectLoadListenerTests.cs index c35449252b..6255614527 100644 --- a/tests/OmniSharp.MSBuild.Tests/ProjectLoadListenerTests.cs +++ b/tests/OmniSharp.MSBuild.Tests/ProjectLoadListenerTests.cs @@ -37,15 +37,14 @@ public void GetTargetFramework_ReturnsTargetFramework() // Arrange const string targetFramework = "net461"; - var expectedTFM = GetHashedTargetFramework(targetFramework); var projectInstance = new ProjectInstance(ProjectRootElement.Create()); projectInstance.SetProperty(ProjectLoadListener.TargetFramework, targetFramework); // Act - var tfm = ProjectLoadListener.GetHashedTargetFrameworks(projectInstance); + var tfm = ProjectLoadListener.GetTargetFrameworks(projectInstance); // Assert - Assert.Equal(expectedTFM, tfm.First().Value); + Assert.Equal(targetFramework, tfm.First()); } [Fact] @@ -53,15 +52,14 @@ public void GetTargetFramework_NoTFM_ReturnsTargetFrameworkVersion() { // Arrange const string targetFramework = "v4.6.1"; - var expectedTFM = GetHashedTargetFramework(targetFramework); var projectInstance = new ProjectInstance(ProjectRootElement.Create()); projectInstance.SetProperty(ProjectLoadListener.TargetFrameworkVersion, targetFramework); // Act - var tfm = ProjectLoadListener.GetHashedTargetFrameworks(projectInstance); + var tfm = ProjectLoadListener.GetTargetFrameworks(projectInstance); // Assert - Assert.Equal(expectedTFM, tfm.First().Value); + Assert.Equal(targetFramework, tfm.First()); } [Fact] @@ -69,16 +67,15 @@ public void GetTargetFramework_PrioritizesTargetFrameworkOverVersion() { // Arrange const string targetFramework = "v4.6.1"; - var expectedTFM = GetHashedTargetFramework(targetFramework); var projectInstance = new ProjectInstance(ProjectRootElement.Create()); projectInstance.SetProperty(ProjectLoadListener.TargetFramework, targetFramework); projectInstance.SetProperty(ProjectLoadListener.TargetFrameworkVersion, "Unexpected"); // Act - var tfm = ProjectLoadListener.GetHashedTargetFrameworks(projectInstance); + var tfm = ProjectLoadListener.GetTargetFrameworks(projectInstance); // Assert - Assert.Equal(expectedTFM, tfm.First().Value); + Assert.Equal(targetFramework, tfm.First()); } [Fact] @@ -88,7 +85,7 @@ public void GetTargetFramework_NoTFM_ReturnsEmpty() var projectInstance = new ProjectInstance(ProjectRootElement.Create()); // Act - var tfm = ProjectLoadListener.GetHashedTargetFrameworks(projectInstance); + var tfm = ProjectLoadListener.GetTargetFrameworks(projectInstance); // Assert Assert.Empty(tfm); @@ -98,7 +95,7 @@ public void GetTargetFramework_NoTFM_ReturnsEmpty() public async Task The_target_framework_is_emitted() { // Arrange - var expectedTFM = GetHashedTargetFramework("netcoreapp2.1"); + var expectedTFM = "netcoreapp2.1"; var messages = new List(); var emitter = new ProjectLoadTestEventEmitter(messages); @@ -134,7 +131,7 @@ public async Task If_there_is_a_solution_file_the_project_guid_present_in_it_is_ { var expectedGuid = "A4C2694D-AEB4-4CB1-8951-5290424EF883".ToLower(); Assert.Single(messages); - Assert.Equal(messages[0].ProjectGuid, expectedGuid); + Assert.Equal(messages[0].ProjectId, expectedGuid); } } @@ -157,7 +154,7 @@ public async Task If_there_is_no_solution_file_the_hash_of_project_file_content_ var projectFileContent = File.ReadAllText(Directory.GetFiles(testProject.Directory, "*.csproj").Single()); var expectedGuid = GetHashedReference($"Filename: HelloWorld.csproj\n{projectFileContent}"); Assert.Single(messages); - Assert.Equal(messages[0].ProjectGuid, expectedGuid); + Assert.Equal(messages[0].ProjectId, expectedGuid); } } @@ -205,8 +202,8 @@ public async Task If_there_are_multiple_target_frameworks_they_are_emitted() Assert.Single(messages); var tfm = messages[0].TargetFrameworks.ToArray(); Assert.Equal(2, tfm.Count()); - Assert.Equal(tfm[0], GetHashedTargetFramework("netstandard1.3")); - Assert.Equal(tfm[1], GetHashedTargetFramework("netstandard2.0")); + Assert.Equal("netstandard1.3", tfm[0]); + Assert.Equal("netstandard2.0",tfm[1]); } } @@ -232,11 +229,6 @@ public async Task The_hashed_references_of_the_source_files_are_emitted() } } - private string GetHashedTargetFramework(string targetFramework) - { - return _tfmAndFileHashingAlgorithm.HashInput(targetFramework).Value; - } - private string GetHashedFileExtension(string fileExtension) { return _tfmAndFileHashingAlgorithm.HashInput(fileExtension).Value;