diff options
author | 2016-06-28 17:33:53 +0000 | |
---|---|---|
committer | 2016-06-29 08:54:24 +0000 | |
commit | 4fa0bc21a871f0b95e07464c5a527b0e677d99b9 (patch) | |
tree | 7169ef29b3277031514c123748cb3873985df4c5 /src | |
parent | cb226127fa817fabf149015f8d4af6de93297366 (diff) |
Use a mutable map when collecting environment variables for repository_ctx.execute, so that it allows overriding current environment variables
--
MOS_MIGRATED_REVID=126089693
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkExecutionResult.java | 6 | ||||
-rwxr-xr-x | src/test/shell/bazel/skylark_repository_test.sh | 5 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkExecutionResult.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkExecutionResult.java index d306a52d4a..b049fa8369 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkExecutionResult.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkExecutionResult.java @@ -13,7 +13,7 @@ // limitations under the License. package com.google.devtools.build.lib.bazel.repository.skylark; -import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Maps; import com.google.devtools.build.lib.events.Location; import com.google.devtools.build.lib.shell.BadExitStatusException; import com.google.devtools.build.lib.shell.Command; @@ -109,7 +109,7 @@ final class SkylarkExecutionResult { private final List<String> args = new ArrayList<>(); private File directory = null; - private final ImmutableMap.Builder<String, String> envBuilder = ImmutableMap.builder(); + private final Map<String, String> envBuilder = Maps.newLinkedHashMap(); private long timeout = -1; private boolean executed = false; @@ -181,7 +181,7 @@ final class SkylarkExecutionResult { for (int i = 0; i < args.size(); i++) { argsArray[i] = args.get(i); } - Command command = new Command(argsArray, envBuilder.build(), directory); + Command command = new Command(argsArray, envBuilder, directory); CommandResult result = command.execute(new byte[]{}, timeout, false); return new SkylarkExecutionResult(result); } catch (BadExitStatusException e) { diff --git a/src/test/shell/bazel/skylark_repository_test.sh b/src/test/shell/bazel/skylark_repository_test.sh index 6f6551682c..7d0c9dbf14 100755 --- a/src/test/shell/bazel/skylark_repository_test.sh +++ b/src/test/shell/bazel/skylark_repository_test.sh @@ -326,7 +326,7 @@ def _impl(repository_ctx): bin = repository_ctx.which("bin.sh") if bin == None: fail("bin.sh not found!") - result = repository_ctx.execute([bash, "--version"]) + result = repository_ctx.execute([bash, "--version"], 10, {"FOO": "BAR"}) if result.return_code != 0: fail("Non-zero return code from bash: " + str(result.return_code)) if result.stderr != "": @@ -335,7 +335,8 @@ def _impl(repository_ctx): repo = repository_rule(implementation=_impl, local=True) EOF - PATH="${PATH}:${PWD}" bazel build @foo//:bar >& $TEST_log || fail "Failed to build" + FOO="BAZ" PATH="${PATH}:${PWD}" bazel build @foo//:bar >& $TEST_log \ + || fail "Failed to build" expect_log "version" } |