diff options
author | Julien HENRY <julien.henry@sonarsource.com> | 2024-04-02 14:47:45 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2024-04-03 20:02:40 +0000 |
commit | 369eb731d47e5d6e2a9016f0d6db6f3c272b1c18 (patch) | |
tree | 85e81f76fda820eb4ce94e31ba88cd3b43ef1a14 /sonar-scanner-engine | |
parent | c3da6dcd16ab17e706f17a09a73587f2b58d7f76 (diff) | |
download | sonarqube-369eb731d47e5d6e2a9016f0d6db6f3c272b1c18.tar.gz sonarqube-369eb731d47e5d6e2a9016f0d6db6f3c272b1c18.zip |
SONAR-21972 Fix tests to not depend on the operating system's locale
Diffstat (limited to 'sonar-scanner-engine')
-rw-r--r-- | sonar-scanner-engine/src/main/java/org/sonar/scm/git/ProcessWrapperFactory.java | 13 | ||||
-rw-r--r-- | sonar-scanner-engine/src/test/java/org/sonar/scm/git/ProcessWrapperFactoryTest.java | 5 |
2 files changed, 14 insertions, 4 deletions
diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scm/git/ProcessWrapperFactory.java b/sonar-scanner-engine/src/main/java/org/sonar/scm/git/ProcessWrapperFactory.java index dfcaf24af93..d3bf4575ccf 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scm/git/ProcessWrapperFactory.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scm/git/ProcessWrapperFactory.java @@ -23,6 +23,8 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.file.Path; +import java.util.HashMap; +import java.util.Map; import java.util.Scanner; import java.util.function.Consumer; import javax.annotation.Nullable; @@ -41,7 +43,11 @@ public class ProcessWrapperFactory { } public ProcessWrapper create(@Nullable Path baseDir, Consumer<String> stdOutLineConsumer, String... command) { - return new ProcessWrapper(baseDir, stdOutLineConsumer, command); + return new ProcessWrapper(baseDir, stdOutLineConsumer, Map.of(), command); + } + + public ProcessWrapper create(@Nullable Path baseDir, Consumer<String> stdOutLineConsumer, Map<String, String> envVariables, String... command) { + return new ProcessWrapper(baseDir, stdOutLineConsumer, envVariables, command); } static class ProcessWrapper { @@ -49,10 +55,12 @@ public class ProcessWrapperFactory { private final Path baseDir; private final Consumer<String> stdOutLineConsumer; private final String[] command; + private final Map<String, String> envVariables = new HashMap<>(); - ProcessWrapper(@Nullable Path baseDir, Consumer<String> stdOutLineConsumer, String... command) { + ProcessWrapper(@Nullable Path baseDir, Consumer<String> stdOutLineConsumer, Map<String, String> envVariables, String... command) { this.baseDir = baseDir; this.stdOutLineConsumer = stdOutLineConsumer; + this.envVariables.putAll(envVariables); this.command = command; } @@ -60,6 +68,7 @@ public class ProcessWrapperFactory { ProcessBuilder pb = new ProcessBuilder() .command(command) .directory(baseDir != null ? baseDir.toFile() : null); + envVariables.forEach(pb.environment()::put); Process p = pb.start(); try { diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scm/git/ProcessWrapperFactoryTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scm/git/ProcessWrapperFactoryTest.java index 1eaa3c5cff6..ed7b600cd25 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scm/git/ProcessWrapperFactoryTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scm/git/ProcessWrapperFactoryTest.java @@ -20,6 +20,7 @@ package org.sonar.scm.git; import java.io.IOException; +import java.util.Map; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; @@ -41,8 +42,8 @@ public class ProcessWrapperFactoryTest { public void should_log_error_output_in_debug_mode() throws IOException { logTester.setLevel(Level.DEBUG); var root = temp.newFolder().toPath(); - var processWrapper = underTest.create(root, v -> {}, "git", "blame"); - assertThatThrownBy(() -> processWrapper.execute()) + var processWrapper = underTest.create(root, v -> {}, Map.of("LANG", "en_US"), "git", "blame"); + assertThatThrownBy(processWrapper::execute) .isInstanceOf(IllegalStateException.class); assertThat(logTester.logs(Level.DEBUG).get(0)).startsWith("fatal:"); |