ソースを参照

Update to the latest scanner-java-library

pull/178/head
Julien HENRY 3週間前
コミット
f2df80dbd2

+ 2
- 0
.cirrus.yml ファイルの表示

@@ -77,6 +77,7 @@ linux_qa_java17_task:
matrix:
- SQ_VERSION: LATEST_RELEASE[9.9]
- SQ_VERSION: LATEST_RELEASE
- SQ_VERSION: DEV
maven_cache:
folder: ${CIRRUS_WORKING_DIR}/.m2/repository
qa_script:
@@ -103,6 +104,7 @@ win_qa_java17_task:
matrix:
- SQ_VERSION: LATEST_RELEASE[9.9]
- SQ_VERSION: LATEST_RELEASE
- SQ_VERSION: DEV
maven_cache:
folder: ${CIRRUS_WORKING_DIR}/.m2/repository
qa_script:

+ 22
- 16
it/pom.xml ファイルの表示

@@ -67,22 +67,28 @@
</dependencies>

<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemProperties>
<scanner.version>${env.PROJECT_VERSION}</scanner.version>
</systemProperties>
<includes>
<include>**/SonarScannerTestSuite.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- Some tests are asserting on localized messages or dates -->
<systemPropertyVariables>
<user.language>en</user.language>
<user.country>US</user.country>
</systemPropertyVariables>
<environmentVariables>
<LANGUAGE>en_US</LANGUAGE>
</environmentVariables>
<systemProperties>
<scanner.version>${env.PROJECT_VERSION}</scanner.version>
</systemProperties>
<includes>
<include>**/SonarScannerTestSuite.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>

<profiles>

+ 5
- 11
it/src/test/java/com/sonarsource/scanner/it/ScannerTest.java ファイルの表示

@@ -164,17 +164,14 @@ public class ScannerTest extends ScannerTestCase {
@Test
public void should_use_environment_prop() {
SonarScanner build = newScanner(new File("projects/simple-sample"))
.setEnvironmentVariable("SONAR_HOST_URL", "http://from-env.org");
.setEnvironmentVariable("SONAR_HOST_URL", "http://www.google.com/404");

BuildRunner runner = new BuildRunner(orchestrator.getConfiguration());
BuildResult buildResult = runner.runQuietly(null, build);

assertThat(buildResult.isSuccess()).isFalse();
assertThat(buildResult.getLogs())
.containsAnyOf(
"No such host is known (from-env.org)", // Windows
"from-env.org: Name or service not known" // Linux
);
.contains("Error status returned by url [http://www.google.com/404/api/v2/analysis/version]: 404");
}

@Test
@@ -192,18 +189,15 @@ public class ScannerTest extends ScannerTestCase {
public void should_fail_if_unable_to_connect() {
SonarScanner build = newScanner(new File("projects/simple-sample"))
//env property should be overridden
.setEnvironmentVariable("SONAR_HOST_URL", "http://from-env.org")
.setProperty("sonar.host.url", "http://foo");
.setEnvironmentVariable("SONAR_HOST_URL", "http://www.google.com")
.setProperty("sonar.host.url", "http://www.google.com/404");

BuildResult result = orchestrator.executeBuildQuietly(build);
// expect build failure
assertThat(result.isSuccess()).isFalse();
// with the following message
assertThat(result.getLogs())
.containsAnyOf(
"No such host is known (foo)", // Windows
"foo: No address associated with hostname" // Linux
);
.contains("Error status returned by url [http://www.google.com/404/api/v2/analysis/version]: 404");
}

// SONARPLUGINS-3574

+ 1
- 1
it/src/test/java/com/sonarsource/scanner/it/SonarScannerTestSuite.java ファイルの表示

@@ -38,7 +38,7 @@ public class SonarScannerTestSuite {

private static OrchestratorRule createOrchestrator() {
String sonarVersion = System
.getProperty("sonar.runtimeVersion", "LATEST_RELEASE[9.9]");
.getProperty("sonar.runtimeVersion", "DEV");
return OrchestratorRule.builderEnv()
.useDefaultAdminCredentialsForBuilds(true)
.setSonarVersion(sonarVersion)

+ 3
- 3
pom.xml ファイルの表示

@@ -66,7 +66,7 @@
<dependency>
<groupId>org.sonarsource.scanner.lib</groupId>
<artifactId>sonar-scanner-java-library</artifactId>
<version>3.0.0.114</version>
<version>3.0.0.141</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
@@ -213,8 +213,8 @@
<configuration>
<rules>
<requireFilesSize>
<minsize>4100000</minsize>
<maxsize>4200000</maxsize>
<minsize>4300000</minsize>
<maxsize>4400000</maxsize>
<files>
<file>${project.build.directory}/sonar-scanner-${project.version}.zip</file>
</files>

+ 2
- 2
src/main/java/org/sonarsource/scanner/cli/Conf.java ファイルの表示

@@ -81,8 +81,8 @@ class Conf {
return resolver.resolve();
}

private Map<String, String> loadEnvironmentProperties() {
return EnvironmentConfig.load(new Slf4jLogOutput());
private static Map<String, String> loadEnvironmentProperties() {
return EnvironmentConfig.load();
}

private Properties loadGlobalProperties() {

+ 1
- 1
src/main/java/org/sonarsource/scanner/cli/ScannerEngineBootstrapperFactory.java ファイルの表示

@@ -38,7 +38,7 @@ class ScannerEngineBootstrapperFactory {
}

ScannerEngineBootstrapper newScannerEngineBootstrapper(String appName, String appVersion) {
return ScannerEngineBootstrapper.create(appName, appVersion, new Slf4jLogOutput());
return ScannerEngineBootstrapper.create(appName, appVersion);
}



+ 0
- 50
src/main/java/org/sonarsource/scanner/cli/Slf4jLogOutput.java ファイルの表示

@@ -1,50 +0,0 @@
/*
* SonarScanner CLI
* Copyright (C) 2011-2024 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
package org.sonarsource.scanner.cli;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.sonarsource.scanner.lib.LogOutput;

public class Slf4jLogOutput implements LogOutput {

private static final Logger LOG = LoggerFactory.getLogger(Slf4jLogOutput.class);

@Override
public void log(String s, Level level) {
switch (level) {
case TRACE:
LOG.trace(s);
break;
case DEBUG:
LOG.debug(s);
break;
case INFO:
LOG.info(s);
break;
case WARN:
LOG.warn(s);
break;
case ERROR:
LOG.error(s);
break;
}
}
}

+ 0
- 51
src/test/java/org/sonarsource/scanner/cli/Slf4jLogOutputTest.java ファイルの表示

@@ -1,51 +0,0 @@
/*
* SonarScanner CLI
* Copyright (C) 2011-2024 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
package org.sonarsource.scanner.cli;

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.slf4j.event.Level;
import org.sonarsource.scanner.lib.LogOutput;
import testutils.LogTester;

import static org.assertj.core.api.Assertions.assertThat;

class Slf4jLogOutputTest {

@RegisterExtension
LogTester logTester = new LogTester().setLevel(Level.TRACE);

@Test
void make_coverage_happy() {
var underTest = new Slf4jLogOutput();
underTest.log("trace", LogOutput.Level.TRACE);
underTest.log("debug", LogOutput.Level.DEBUG);
underTest.log("info", LogOutput.Level.INFO);
underTest.log("warn", LogOutput.Level.WARN);
underTest.log("error", LogOutput.Level.ERROR);

assertThat(logTester.logs(Level.TRACE)).containsOnly("trace");
assertThat(logTester.logs(Level.DEBUG)).containsOnly("debug");
assertThat(logTester.logs(Level.INFO)).containsOnly("info");
assertThat(logTester.logs(Level.WARN)).containsOnly("warn");
assertThat(logTester.logs(Level.ERROR)).containsOnly("error");
}

}

読み込み中…
キャンセル
保存