diff options
author | Julien HENRY <julien.henry@sonarsource.com> | 2025-01-10 16:52:36 +0100 |
---|---|---|
committer | Julien HENRY <julien.henry@sonarsource.com> | 2025-01-20 11:51:27 +0100 |
commit | 0d329f7d651982f0d3ca8be6742f98beef1eae50 (patch) | |
tree | 00dfddf9b034497ec35483610ed32dd00e9c4395 | |
parent | 893fca0628ab4c9abc0f3aed0ee36cf8038552d6 (diff) | |
download | sonar-scanner-cli-0d329f7d651982f0d3ca8be6742f98beef1eae50.tar.gz sonar-scanner-cli-0d329f7d651982f0d3ca8be6742f98beef1eae50.zip |
SCANCLI-168 Update Scanner Java Library dependency to 3.2
-rw-r--r-- | it/src/test/java/com/sonarsource/scanner/it/ScannerTest.java | 4 | ||||
-rw-r--r-- | pom.xml | 6 | ||||
-rw-r--r-- | src/main/java/org/sonarsource/scanner/cli/Main.java | 25 | ||||
-rw-r--r-- | src/test/java/org/sonarsource/scanner/cli/MainTest.java | 28 |
4 files changed, 44 insertions, 19 deletions
diff --git a/it/src/test/java/com/sonarsource/scanner/it/ScannerTest.java b/it/src/test/java/com/sonarsource/scanner/it/ScannerTest.java index 2e690ce..d0da6c6 100644 --- a/it/src/test/java/com/sonarsource/scanner/it/ScannerTest.java +++ b/it/src/test/java/com/sonarsource/scanner/it/ScannerTest.java @@ -190,7 +190,7 @@ public class ScannerTest extends ScannerTestCase { assertThat(buildResult.isSuccess()).isFalse(); assertThat(buildResult.getLogs()) - .contains("Error status returned by url [http://www.google.com/404/api/v2/analysis/version]: 404"); + .contains("Failed to query server version: Not Found"); } @Test @@ -216,7 +216,7 @@ public class ScannerTest extends ScannerTestCase { assertThat(result.isSuccess()).isFalse(); // with the following message assertThat(result.getLogs()) - .contains("Error status returned by url [http://www.google.com/404/api/v2/analysis/version]: 404"); + .contains("Failed to query server version: Not Found"); } // SONARPLUGINS-3574 @@ -81,7 +81,7 @@ <dependency> <groupId>org.sonarsource.scanner.lib</groupId> <artifactId>sonar-scanner-java-library</artifactId> - <version>3.1.1.261</version> + <version>3.2.0.370</version> </dependency> <dependency> <groupId>org.slf4j</groupId> @@ -240,8 +240,8 @@ <configuration> <rules> <requireFilesSize> - <minsize>11100000</minsize> - <maxsize>11200000</maxsize> + <minsize>11200000</minsize> + <maxsize>11300000</maxsize> <files> <file>${project.build.directory}/sonar-scanner-${project.version}.zip</file> </files> diff --git a/src/main/java/org/sonarsource/scanner/cli/Main.java b/src/main/java/org/sonarsource/scanner/cli/Main.java index fe53f1c..d539db4 100644 --- a/src/main/java/org/sonarsource/scanner/cli/Main.java +++ b/src/main/java/org/sonarsource/scanner/cli/Main.java @@ -41,6 +41,8 @@ import org.sonarsource.scanner.lib.ScannerProperties; */ public class Main { private static final Logger LOG = LoggerFactory.getLogger(Main.class); + private static final String FAILURE = "FAILURE"; + private static final String SUCCESS = "SUCCESS"; private final Exit exit; private final Cli cli; @@ -71,18 +73,25 @@ public class Main { checkSkip(p); configureLogging(p); init(p); - try (var engine = scannerEngineBootstrapper.bootstrap()) { - var success = engine.analyze((Map) p); - if (success) { - displayExecutionResult(stats, "SUCCESS"); - status = Exit.SUCCESS; + try (var result = scannerEngineBootstrapper.bootstrap()) { + if (result.isSuccessful()) { + var engine = result.getEngineFacade(); + var success = engine.analyze((Map) p); + if (success) { + displayExecutionResult(stats, SUCCESS); + status = Exit.SUCCESS; + } else { + displayExecutionResult(stats, FAILURE); + status = Exit.SCANNER_ENGINE_ERROR; + } } else { - displayExecutionResult(stats, "FAILURE"); - status = Exit.SCANNER_ENGINE_ERROR; + LOG.debug("Scanner engine bootstrapping failed"); + displayExecutionResult(stats, FAILURE); + status = Exit.INTERNAL_ERROR; } } } catch (Throwable e) { - displayExecutionResult(stats, "FAILURE"); + displayExecutionResult(stats, FAILURE); showError(e, cli.isDebugEnabled()); status = isUserError(e) ? Exit.USER_ERROR : Exit.INTERNAL_ERROR; } finally { diff --git a/src/test/java/org/sonarsource/scanner/cli/MainTest.java b/src/test/java/org/sonarsource/scanner/cli/MainTest.java index 746f5c9..7186558 100644 --- a/src/test/java/org/sonarsource/scanner/cli/MainTest.java +++ b/src/test/java/org/sonarsource/scanner/cli/MainTest.java @@ -30,6 +30,7 @@ import org.mockito.Mockito; import org.slf4j.LoggerFactory; import org.slf4j.event.Level; import org.sonar.api.utils.MessageException; +import org.sonarsource.scanner.lib.ScannerEngineBootstrapResult; import org.sonarsource.scanner.lib.ScannerEngineBootstrapper; import org.sonarsource.scanner.lib.ScannerEngineFacade; import org.sonarsource.scanner.lib.ScannerProperties; @@ -56,11 +57,14 @@ class MainTest { private final ScannerEngineBootstrapperFactory scannerEngineBootstrapperFactory = mock(); private final ScannerEngineBootstrapper bootstrapper = mock(); private final ScannerEngineFacade engine = mock(); + private final ScannerEngineBootstrapResult result = mock(); @BeforeEach void setUp() { when(scannerEngineBootstrapperFactory.create(any(Properties.class), any(String.class))).thenReturn(bootstrapper); - when(bootstrapper.bootstrap()).thenReturn(engine); + when(result.isSuccessful()).thenReturn(true); + when(result.getEngineFacade()).thenReturn(engine); + when(bootstrapper.bootstrap()).thenReturn(result); when(engine.analyze(any())).thenReturn(true); when(conf.properties()).thenReturn(properties); } @@ -79,7 +83,7 @@ class MainTest { } @Test - void should_exit_with_error_on_error_during_analysis() { + void should_exit_with_error_on_exception_during_analysis() { Exception e = new NullPointerException("NPE"); e = new IllegalStateException("Error", e); doThrow(e).when(engine).analyze(any()); @@ -94,9 +98,7 @@ class MainTest { @Test void should_exit_with_error_on_error_during_bootstrap() { - Exception e = new NullPointerException("NPE"); - e = new IllegalStateException("Error", e); - doThrow(e).when(bootstrapper).bootstrap(); + when(result.isSuccessful()).thenReturn(false); when(cli.getInvokedFrom()).thenReturn(""); when(cli.isDebugEnabled()).thenReturn(true); @@ -106,7 +108,21 @@ class MainTest { verify(bootstrapper).bootstrap(); verify(engine, never()).analyze(any()); verify(exit).exit(Exit.INTERNAL_ERROR); - assertThat(logTester.logs(Level.ERROR)).contains("Error during SonarScanner CLI execution"); + assertThat(logTester.logs(Level.INFO)).contains("EXECUTION FAILURE"); + } + + @Test + void should_exit_with_error_on_error_during_analysis() { + when(engine.analyze(any())).thenReturn(false); + when(cli.getInvokedFrom()).thenReturn(""); + when(cli.isDebugEnabled()).thenReturn(true); + + Main main = new Main(exit, cli, conf, scannerEngineBootstrapperFactory); + main.analyze(); + + verify(bootstrapper).bootstrap(); + verify(exit).exit(Exit.SCANNER_ENGINE_ERROR); + assertThat(logTester.logs(Level.INFO)).contains("EXECUTION FAILURE"); } @Test |