From 93ae9e4354431a59c44a26350b70691cb9a6de3d Mon Sep 17 00:00:00 2001 From: BenoƮt Gianinetti Date: Mon, 14 Jan 2019 10:14:29 +0100 Subject: SONAR-11621 Add sonar.scm.exclusions.disabled property --- .../org/sonar/scanner/scm/ScmConfiguration.java | 8 ++++++ .../sonar/scanner/scm/ScmConfigurationTest.java | 31 ++++++++++++++++++++++ 2 files changed, 39 insertions(+) (limited to 'sonar-scanner-engine') diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scm/ScmConfiguration.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scm/ScmConfiguration.java index 05737631ae2..e00a06c7da5 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scm/ScmConfiguration.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scm/ScmConfiguration.java @@ -59,6 +59,7 @@ public class ScmConfiguration implements Startable { public static final String FORCE_RELOAD_KEY = "sonar.scm.forceReloadAll"; static final String MESSAGE_SCM_STEP_IS_DISABLED_BY_CONFIGURATION = "SCM Step is disabled by configuration"; + static final String MESSAGE_SCM_EXLUSIONS_IS_DISABLED_BY_CONFIGURATION = "Exclusions based on SCM info is disabled by configuration"; private final Configuration settings; private final AnalysisWarnings analysisWarnings; @@ -105,6 +106,9 @@ public class ScmConfiguration implements Startable { analysisWarnings.addUnique(message); } } + if (isExclusionDisabled()) { + LOG.info(MESSAGE_SCM_EXLUSIONS_IS_DISABLED_BY_CONFIGURATION); + } } private void setProviderIfSupported(String forcedProviderKey) { @@ -150,6 +154,10 @@ public class ScmConfiguration implements Startable { return settings.getBoolean(CoreProperties.SCM_DISABLED_KEY).orElse(false); } + public boolean isExclusionDisabled() { + return isDisabled() || settings.getBoolean(CoreProperties.SCM_EXCLUSIONS_DISABLED_KEY).orElse(false); + } + public boolean forceReloadAll() { return settings.getBoolean(FORCE_RELOAD_KEY).orElse(false); } diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scm/ScmConfigurationTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scm/ScmConfigurationTest.java index 34809883d2c..efa705bf0f1 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scm/ScmConfigurationTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scm/ScmConfigurationTest.java @@ -48,6 +48,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyZeroInteractions; import static org.mockito.Mockito.when; import static org.mockito.Mockito.withSettings; +import static org.sonar.scanner.scm.ScmConfiguration.MESSAGE_SCM_EXLUSIONS_IS_DISABLED_BY_CONFIGURATION; import static org.sonar.scanner.scm.ScmConfiguration.MESSAGE_SCM_STEP_IS_DISABLED_BY_CONFIGURATION; @RunWith(DataProviderRunner.class) @@ -103,6 +104,36 @@ public class ScmConfigurationTest { assertThat(logTester.logs()).contains(MESSAGE_SCM_STEP_IS_DISABLED_BY_CONFIGURATION); } + @Test + public void log_when_exclusion_is_disabled() { + when(settings.getBoolean(CoreProperties.SCM_EXCLUSIONS_DISABLED_KEY)).thenReturn(Optional.of(true)); + + underTest.start(); + + assertThat(logTester.logs()).contains(MESSAGE_SCM_EXLUSIONS_IS_DISABLED_BY_CONFIGURATION); + } + + @Test + @UseDataProvider("scmDisabledProperty") + public void exclusion_is_disabled_by_property(boolean scmDisabled, boolean scmExclusionsDisabled, boolean isScmExclusionDisabled) { + when(settings.getBoolean(CoreProperties.SCM_DISABLED_KEY)).thenReturn(Optional.of(scmDisabled)); + when(settings.getBoolean(CoreProperties.SCM_EXCLUSIONS_DISABLED_KEY)).thenReturn(Optional.of(scmExclusionsDisabled)); + + underTest.start(); + + assertThat(underTest.isExclusionDisabled()).isEqualTo(isScmExclusionDisabled); + } + + @DataProvider + public static Object[][] scmDisabledProperty() { + return new Object[][] { + {true, true, true}, + {true, false, true}, + {false, true, true}, + {false, false, false} + }; + } + @Test public void return_early_from_start_in_issues_mode() { // return early = doesn't reach the logging when disabled -- cgit v1.2.3