diff options
author | 2018-07-26 13:37:45 -0700 | |
---|---|---|
committer | 2018-07-26 13:39:20 -0700 | |
commit | be31bb8527a93659fb7540d8f4fc087e3b60411c (patch) | |
tree | caba5cc9f1977677260e383fa813fcfd052dda51 /src/test/java | |
parent | cd91d1c3b031d18daf63f8cc05c5155c654b1759 (diff) |
Modify --subcommands to allow pretty printing the arguments of a subcommand
as a list, rather than as a single line (i.e., newline delimited rather than
space delimited).
Before:
SUBCOMMAND: # //src/main/java/com/google/devtools/build/lib:string_util [action 'Building src/main/java/com/google/devtools/build/lib/libstring_util.jar (2 source files) [for host]']
(cd /tmp/devbazel_output_base/execroot/io_bazel && \
exec env - \
LC_CTYPE=en_US.UTF-8 \
external/embedded_jdk/bin/java -XX:+UseParallelOldGC -XX:-CompactStrings '--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED' '--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED' '--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED' '--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED' '--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED' '--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED' '--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED' '--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED' '--patch-module=java.compiler=external/bazel_tools/third_party/java/jdk/langtools/java_compiler.jar' '--patch-module=jdk.compiler=external/bazel_tools/third_party/java/jdk/langtools/jdk_compiler.jar' '--add-opens=java.base/java.nio=ALL-UNNAMED' -jar external/bazel_tools/tools/jdk/JavaBuilder_deploy.jar @bazel-out/host/bin/src/main/java/com/google/devtools/build/lib/libstring_util.jar-2.params)
After:
SUBCOMMAND: # //src/main/java/com/google/devtools/build/lib:string_util [action 'Building src/main/java/com/google/devtools/build/lib/libstring_util.jar (2 source files) [for host]']
(cd /tmp/devbazel_output_base/execroot/io_bazel && \
exec env - \
LC_CTYPE=en_US.UTF-8 \
external/embedded_jdk/bin/java \
-XX:+UseParallelOldGC \
-XX:-CompactStrings \
'--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED' \
'--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED' \
'--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED' \
'--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED' \
'--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED' \
'--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED' \
'--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED' \
'--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED' \
'--patch-module=java.compiler=external/bazel_tools/third_party/java/jdk/langtools/java_compiler.jar' \
'--patch-module=jdk.compiler=external/bazel_tools/third_party/java/jdk/langtools/jdk_compiler.jar' \
'--add-opens=java.base/java.nio=ALL-UNNAMED' \
-jar \
external/bazel_tools/tools/jdk/JavaBuilder_deploy.jar \
@bazel-out/host/bin/src/main/java/com/google/devtools/build/lib/libstring_util.jar-2.params)
RELNOTES: --subcommands can now take a "pretty_print" value ("--subcommands=pretty_print") to print the
arguments of subcommands as a list for easier reading.
PiperOrigin-RevId: 206213009
Diffstat (limited to 'src/test/java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/actions/util/DummyExecutor.java | 3 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/util/CommandFailureUtilsTest.java | 41 |
2 files changed, 39 insertions, 5 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/actions/util/DummyExecutor.java b/src/test/java/com/google/devtools/build/lib/actions/util/DummyExecutor.java index 7b09b6b3f5..6703fdd413 100644 --- a/src/test/java/com/google/devtools/build/lib/actions/util/DummyExecutor.java +++ b/src/test/java/com/google/devtools/build/lib/actions/util/DummyExecutor.java @@ -15,6 +15,7 @@ package com.google.devtools.build.lib.actions.util; import com.google.common.eventbus.EventBus; import com.google.devtools.build.lib.actions.ActionContext; +import com.google.devtools.build.lib.actions.ActionExecutionContext.ShowSubcommands; import com.google.devtools.build.lib.actions.Executor; import com.google.devtools.build.lib.clock.BlazeClock; import com.google.devtools.build.lib.clock.Clock; @@ -87,7 +88,7 @@ public final class DummyExecutor implements Executor { } @Override - public boolean reportsSubcommands() { + public ShowSubcommands reportsSubcommands() { throw new UnsupportedOperationException(); } } diff --git a/src/test/java/com/google/devtools/build/lib/util/CommandFailureUtilsTest.java b/src/test/java/com/google/devtools/build/lib/util/CommandFailureUtilsTest.java index 7ce30ec51d..f13758eecc 100644 --- a/src/test/java/com/google/devtools/build/lib/util/CommandFailureUtilsTest.java +++ b/src/test/java/com/google/devtools/build/lib/util/CommandFailureUtilsTest.java @@ -16,7 +16,7 @@ package com.google.devtools.build.lib.util; import static com.google.common.truth.Truth.assertThat; import java.util.Arrays; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; import org.junit.Test; import org.junit.runner.RunWith; @@ -34,9 +34,9 @@ public class CommandFailureUtilsTest { } args[7] = "with spaces"; // Test embedded spaces in argument. args[9] = "*"; // Test shell meta characters. - Map<String, String> env = new HashMap<>(); - env.put("PATH", "/usr/bin:/bin:/sbin"); + Map<String, String> env = new LinkedHashMap<>(); env.put("FOO", "foo"); + env.put("PATH", "/usr/bin:/bin:/sbin"); String cwd = "/my/working/directory"; String message = CommandFailureUtils.describeCommandError(false, Arrays.asList(args), env, cwd); String verboseMessage = @@ -69,7 +69,7 @@ public class CommandFailureUtilsTest { args[0] = "/bin/sh"; args[1] = "-c"; args[2] = "echo Some errors 1>&2; echo Some output; exit 42"; - Map<String, String> env = new HashMap<>(); + Map<String, String> env = new LinkedHashMap<>(); env.put("FOO", "foo"); env.put("PATH", "/usr/bin:/bin:/sbin"); String cwd = null; @@ -89,4 +89,37 @@ public class CommandFailureUtilsTest { + " PATH=/usr/bin:/bin:/sbin \\\n" + " /bin/sh -c 'echo Some errors 1>&2; echo Some output; exit 42')"); } + + @Test + public void describeCommandPrettyPrintArgs() throws Exception { + + String[] args = new String[6]; + args[0] = "some_command"; + for (int i = 1; i < args.length; i++) { + args[i] = "arg" + i; + } + args[3] = "with spaces"; // Test embedded spaces in argument. + args[4] = "*"; // Test shell meta characters. + + Map<String, String> env = new LinkedHashMap<>(); + env.put("FOO", "foo"); + env.put("PATH", "/usr/bin:/bin:/sbin"); + + String cwd = "/my/working/directory"; + String message = CommandFailureUtils.describeCommand( + CommandDescriptionForm.COMPLETE, true, Arrays.asList(args), env, cwd); + + assertThat(message) + .isEqualTo( + "(cd /my/working/directory && \\\n" + + " exec env - \\\n" + + " FOO=foo \\\n" + + " PATH=/usr/bin:/bin:/sbin \\\n" + + " some_command \\\n" + + " arg1 \\\n" + + " arg2 \\\n" + + " 'with spaces' \\\n" + + " '*' \\\n" + + " arg5)"); + } } |