aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor <victor.diez@sonarsource.com>2025-03-18 16:30:06 +0100
committersonartech <sonartech@sonarsource.com>2025-03-18 20:04:07 +0000
commit9d0c5fc1bab676e52d935c0d65d56fecdc12747f (patch)
treea7169b046eefd25c03d1cedcea53a6c9fc4d1a60
parentc83eaf9a5363401e5a1273479c2fa8997074c4c2 (diff)
downloadsonarqube-9d0c5fc1bab676e52d935c0d65d56fecdc12747f.tar.gz
sonarqube-9d0c5fc1bab676e52d935c0d65d56fecdc12747f.zip
SONAR-24639 Accept S1291 as a valid nosonar rule key
-rw-r--r--sonar-scanner-engine/src/main/java/org/sonar/scanner/issue/IssuePublisher.java4
-rw-r--r--sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/IssuePublisherTest.java13
2 files changed, 11 insertions, 6 deletions
diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/issue/IssuePublisher.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/issue/IssuePublisher.java
index 1e37a715066..df9bfd00b48 100644
--- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/issue/IssuePublisher.java
+++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/issue/IssuePublisher.java
@@ -24,6 +24,7 @@ import java.util.Collection;
import java.util.EnumMap;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.function.Consumer;
import javax.annotation.Nullable;
import javax.annotation.concurrent.ThreadSafe;
@@ -54,6 +55,7 @@ import org.sonar.scanner.report.ReportPublisher;
@ThreadSafe
public class IssuePublisher {
+ private static final Set<String> noSonarKeyContains = Set.of("nosonar", "S1291");
private final ActiveRules activeRules;
private final IssueFilters filters;
private final ReportPublisher reportPublisher;
@@ -91,7 +93,7 @@ public class IssuePublisher {
return inputComponent.isFile()
&& textRange != null
&& ((DefaultInputFile) inputComponent).hasNoSonarAt(textRange.start().line())
- && !StringUtils.containsIgnoreCase(issue.ruleKey().rule(), "nosonar");
+ && noSonarKeyContains.stream().noneMatch(k -> StringUtils.containsIgnoreCase(issue.ruleKey().rule(), k));
}
public void initAndAddExternalIssue(ExternalIssue issue) {
diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/IssuePublisherTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/IssuePublisherTest.java
index 5a124b74214..de4a41c519b 100644
--- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/IssuePublisherTest.java
+++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/IssuePublisherTest.java
@@ -26,6 +26,8 @@ import java.util.List;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
import org.junit.rules.TemporaryFolder;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -67,7 +69,6 @@ import static org.sonar.api.issue.impact.SoftwareQuality.RELIABILITY;
@RunWith(MockitoJUnitRunner.class)
public class IssuePublisherTest {
private static final RuleKey JAVA_RULE_KEY = RuleKey.of("java", "AvoidCycle");
- private static final RuleKey NOSONAR_RULE_KEY = RuleKey.of("java", "NoSonarCheck");
private DefaultInputProject project;
@@ -279,11 +280,13 @@ public class IssuePublisherTest {
verifyNoInteractions(reportPublisher);
}
- @Test
- public void should_accept_issues_on_no_sonar_rules() {
+ @ParameterizedTest
+ @ValueSource(strings = {"NoSonarCheck", "S1291", "S1291Check"})
+ public void should_accept_issues_on_no_sonar_rules(String noSonarRule) {
+ RuleKey noSonarRuleKey = RuleKey.of("java", noSonarRule);
// The "No Sonar" rule logs violations on the lines that are flagged with "NOSONAR" !!
activeRulesBuilder.addRule(new NewActiveRule.Builder()
- .setRuleKey(NOSONAR_RULE_KEY)
+ .setRuleKey(noSonarRuleKey)
.setSeverity(Severity.INFO)
.setQProfileKey("qp-1")
.build());
@@ -293,7 +296,7 @@ public class IssuePublisherTest {
DefaultIssue issue = new DefaultIssue(project)
.at(new DefaultIssueLocation().on(file).at(file.selectLine(3)).message(""))
- .forRule(NOSONAR_RULE_KEY);
+ .forRule(noSonarRuleKey);
when(filters.accept(any(InputComponent.class), any(ScannerReport.Issue.class), anyString())).thenReturn(true);