Browse Source

SQSCANNER-29 Exit code should not be 0 when script fails due to ERROR: Unrecognized option

tags/2.8
Julien HENRY 7 years ago
parent
commit
89fac82713

+ 3
- 3
pom.xml View File

<dependency> <dependency>
<groupId>org.sonarsource.scanner.api</groupId> <groupId>org.sonarsource.scanner.api</groupId>
<artifactId>sonar-scanner-api</artifactId> <artifactId>sonar-scanner-api</artifactId>
<version>2.8-build684</version>
<version>2.8-build700</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.google.code.findbugs</groupId> <groupId>com.google.code.findbugs</groupId>
<configuration> <configuration>
<rules> <rules>
<requireFilesSize> <requireFilesSize>
<minsize>510000</minsize>
<maxsize>530000</maxsize>
<minsize>550000</minsize>
<maxsize>560000</maxsize>
<files> <files>
<file>${project.build.directory}/sonar-scanner-${project.version}.zip</file> <file>${project.build.directory}/sonar-scanner-${project.version}.zip</file>
</files> </files>

+ 2
- 1
src/main/java/org/sonarsource/scanner/cli/Cli.java View File



} else if ("-h".equals(arg) || "--help".equals(arg)) { } else if ("-h".equals(arg) || "--help".equals(arg)) {
printUsage(); printUsage();
exit.exit(Exit.SUCCESS);


} else if ("-v".equals(arg) || "--version".equals(arg)) { } else if ("-v".equals(arg) || "--version".equals(arg)) {
displayVersionOnly = true; displayVersionOnly = true;
private void printError(String message) { private void printError(String message) {
logger.error(message); logger.error(message);
printUsage(); printUsage();
exit.exit(Exit.ERROR);
} }


private void printUsage() { private void printUsage() {
logger.info(" -v,--version Display version information"); logger.info(" -v,--version Display version information");
logger.info(" -X,--debug Produce execution debug output"); logger.info(" -X,--debug Produce execution debug output");
logger.info(" -i,--interactive Run interactively"); logger.info(" -i,--interactive Run interactively");
exit.exit(Exit.SUCCESS);
} }
} }

+ 20
- 0
src/test/java/org/sonarsource/scanner/cli/CliTest.java View File



import static org.fest.assertions.Assertions.assertThat; import static org.fest.assertions.Assertions.assertThat;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;


public class CliTest { public class CliTest {
Exit exit = mock(Exit.class); Exit exit = mock(Exit.class);
assertThat(cli.isDisplayStackTrace()).isFalse(); assertThat(cli.isDisplayStackTrace()).isFalse();
assertThat(cli.properties().get("sonar.verbose")).isNull(); assertThat(cli.properties().get("sonar.verbose")).isNull();
} }

@Test
public void should_show_usage() {
logs = mock(Logs.class);
cli = new Cli(exit, logs);
cli.parse(new String[] {"-h"});
verify(logs).info("usage: sonar-scanner [options]");
verify(exit).exit(Exit.SUCCESS);
}

@Test
public void should_show_usage_on_bad_syntax() {
logs = mock(Logs.class);
cli = new Cli(exit, logs);
cli.parse(new String[] {"-w"});
verify(logs).error("Unrecognized option: -w");
verify(logs).info("usage: sonar-scanner [options]");
verify(exit).exit(Exit.ERROR);
}
} }

Loading…
Cancel
Save