aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java
diff options
context:
space:
mode:
authorGravatar ahumesky <ahumesky@google.com>2018-07-26 13:37:45 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-26 13:39:20 -0700
commitbe31bb8527a93659fb7540d8f4fc087e3b60411c (patch)
treecaba5cc9f1977677260e383fa813fcfd052dda51 /src/test/java
parentcd91d1c3b031d18daf63f8cc05c5155c654b1759 (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.java3
-rw-r--r--src/test/java/com/google/devtools/build/lib/util/CommandFailureUtilsTest.java41
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)");
+ }
}