From 14143710ac35dcf8875c40013a969a068558170e Mon Sep 17 00:00:00 2001 From: Gregory Paidis Date: Fri, 6 Sep 2024 12:10:01 +0200 Subject: [PATCH] Multi-language support: Re-enable sonar.sources and sonar.tests --- .../ProcessedArgsTests.cs | 14 -------------- .../ProcessedArgs.cs | 6 ------ .../AdditionalFilesService.cs | 6 +++++- 3 files changed, 5 insertions(+), 21 deletions(-) diff --git a/Tests/SonarScanner.MSBuild.PreProcessor.Test/ProcessedArgsTests.cs b/Tests/SonarScanner.MSBuild.PreProcessor.Test/ProcessedArgsTests.cs index 4e0f6b4e9d..ebe4ba1df8 100644 --- a/Tests/SonarScanner.MSBuild.PreProcessor.Test/ProcessedArgsTests.cs +++ b/Tests/SonarScanner.MSBuild.PreProcessor.Test/ProcessedArgsTests.cs @@ -134,20 +134,6 @@ public void ProcArgs_ParameterThrow_ScannerEnvProperties() action.Should().Throw().WithParameterName("scannerEnvProperties"); } - [DataTestMethod] - [DataRow("sonar.sources")] - [DataRow("sonar.tests")] - public void ProcArgs_InvalidPropertiesSet(string propertyName) - { - var provider = Substitute.For(); - provider.HasProperty(propertyName).Returns(true); - - args = CreateDefaultArgs(provider); - - args.IsValid.Should().BeFalse(); - logger.AssertSingleErrorExists("The arguments 'sonar.sources' and 'sonar.tests' are not supported. Please remove them and invoke the scanner again."); - } - [TestMethod] public void ProcArgs_Organization() { diff --git a/src/SonarScanner.MSBuild.PreProcessor/ProcessedArgs.cs b/src/SonarScanner.MSBuild.PreProcessor/ProcessedArgs.cs index 3646647c1f..c559b68be5 100644 --- a/src/SonarScanner.MSBuild.PreProcessor/ProcessedArgs.cs +++ b/src/SonarScanner.MSBuild.PreProcessor/ProcessedArgs.cs @@ -168,12 +168,6 @@ public ProcessedArgs( ? architecture.Value : RuntimeInformation.OSArchitecture.ToString().ToLowerInvariant(); - if (AggregateProperties.HasProperty(SonarProperties.SonarSources) - || AggregateProperties.HasProperty(SonarProperties.SonarTests)) - { - IsValid = false; - logger.LogError(Resources.ERROR_SonarSourcesAndTestsNotSupported); - } if (AggregateProperties.TryGetProperty(SonarProperties.JavaExePath, out var javaExePath)) { if (!fileWrapper.Exists(javaExePath.Value)) diff --git a/src/SonarScanner.MSBuild.Shim/AdditionalFilesService.cs b/src/SonarScanner.MSBuild.Shim/AdditionalFilesService.cs index 8c7ba36eae..14fda8336a 100644 --- a/src/SonarScanner.MSBuild.Shim/AdditionalFilesService.cs +++ b/src/SonarScanner.MSBuild.Shim/AdditionalFilesService.cs @@ -102,7 +102,11 @@ private static bool IsExcludedDirectory(DirectoryInfo directory) => part => part.Equals(x, StringComparison.OrdinalIgnoreCase))); private static string FirstUserSpecifiedSonarParameter(AnalysisConfig analysisConfig) => - SonarProperties.ScanAllWarningParameters.FirstOrDefault(x => analysisConfig.LocalSettings.Exists(setting => setting.Id == x)); + FirstUserSpecifiedSonarParameter(analysisConfig.LocalSettings) + ?? FirstUserSpecifiedSonarParameter(analysisConfig.ServerSettings); + + private static string FirstUserSpecifiedSonarParameter(AnalysisProperties properties) => + SonarProperties.ScanAllWarningParameters.FirstOrDefault(x => properties.Exists(setting => setting.Id == x)); private static AdditionalFiles PartitionAdditionalFiles(FileInfo[] allFiles, AnalysisConfig analysisConfig) {