aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2017-12-01 17:26:49 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-12-01 17:35:35 -0800
commitb3da717469e23f5293297175a80709956416fd2c (patch)
tree862ede4d6c8c8c1251456fa89cff57236b764c66 /src/main
parent72f3a10e258764f0e6ed1fa645bf3c72bb6986e3 (diff)
Forward test relevant flags to mobile-install launcher.
Add new flag to specify the adb device serial number (--device). Change ..._mi/launcher.sh to ..._mi/launcher (see unknown commit). RELNOTES: None PiperOrigin-RevId: 177662635
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/WriteAdbArgsAction.java16
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/mobileinstall/MobileInstallCommand.java43
2 files changed, 44 insertions, 15 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/WriteAdbArgsAction.java b/src/main/java/com/google/devtools/build/lib/rules/android/WriteAdbArgsAction.java
index 7d1f07aef9..ea9f554c28 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/WriteAdbArgsAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/WriteAdbArgsAction.java
@@ -68,6 +68,15 @@ public final class WriteAdbArgsAction extends AbstractFileWriteAction {
)
public List<String> adbArgs;
+ @Option(
+ name = "device",
+ category = "mobile-install",
+ defaultValue = "",
+ documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES},
+ help = "The adb device serial number. If not specified, the first device will be used."
+ )
+ public String device;
@Option(
name = "incremental_install_verbosity",
@@ -125,6 +134,7 @@ public final class WriteAdbArgsAction extends AbstractFileWriteAction {
Options options = ctx.getOptions().getOptions(Options.class);
final List<String> args = options.adbArgs;
final String adb = options.adb;
+ final String device = options.device;
final String incrementalInstallVerbosity = options.incrementalInstallVerbosity;
final StartType start = options.start;
final String userHomeDirectory =
@@ -139,6 +149,11 @@ public final class WriteAdbArgsAction extends AbstractFileWriteAction {
ps.printf("--adb=%s\n", adb);
}
+ if (!device.isEmpty()){
+ args.add("-s");
+ args.add(device);
+ }
+
for (String arg : args) {
ps.printf("--extra_adb_arg=%s\n", arg);
}
@@ -149,7 +164,6 @@ public final class WriteAdbArgsAction extends AbstractFileWriteAction {
ps.printf("--start=%s\n", start.name().toLowerCase());
-
if (userHomeDirectory != null) {
ps.printf("--user_home_dir=%s\n", userHomeDirectory);
}
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/mobileinstall/MobileInstallCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/mobileinstall/MobileInstallCommand.java
index 5047d37837..518465e634 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/mobileinstall/MobileInstallCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/mobileinstall/MobileInstallCommand.java
@@ -19,6 +19,7 @@ import static com.google.devtools.build.lib.analysis.OutputGroupProvider.INTERNA
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
+import com.google.devtools.build.lib.analysis.test.TestConfiguration.TestOptions;
import com.google.devtools.build.lib.buildtool.BuildRequest;
import com.google.devtools.build.lib.buildtool.BuildResult;
import com.google.devtools.build.lib.buildtool.BuildTool;
@@ -234,27 +235,41 @@ public class MobileInstallCommand implements BlazeCommand {
targetToRun.getConfiguration().getBinFragment().getPathString()
+ "/"
+ targetToRun.getLabel().toPathFragment().getPathString()
- + "_mi/launcher.sh");
+ + "_mi/launcher");
cmdLine.addAll(runTargetArgs);
- // Make mobile-install v2 understand relevant v1 flags for ASwB compatibility.
+ cmdLine.add("--build_id=" + env.getCommandId());
+
+ // Collect relevant common command options
CommonCommandOptions commonCommandOptions = options.getOptions(CommonCommandOptions.class);
- if (commonCommandOptions != null && !"".equals(commonCommandOptions.toolTag)) {
- cmdLine.add("--tool_tag");
- cmdLine.add(commonCommandOptions.toolTag);
+ if (!commonCommandOptions.toolTag.isEmpty()) {
+ cmdLine.add("--tool_tag=" + commonCommandOptions.toolTag);
}
- cmdLine.add("--start_type");
- cmdLine.add(adbOptions.start.toString());
- if (!"".equals(adbOptions.adb)) {
- cmdLine.add("--adb_path");
- cmdLine.add(adbOptions.adb);
+
+ // Collect relevant adb options
+ cmdLine.add("--start_type=" + adbOptions.start);
+ if (!adbOptions.adb.isEmpty()) {
+ cmdLine.add("--adb=" + adbOptions.adb);
}
for (String adbArg : adbOptions.adbArgs) {
- cmdLine.add("--adb_arg");
- cmdLine.add(adbArg);
+ if (!adbArg.isEmpty()) {
+ cmdLine.add("--adb_arg=" + adbArg);
+ }
+ }
+ if (!adbOptions.device.isEmpty()) {
+ cmdLine.add("--device=" + adbOptions.device);
+ }
+
+ // Collect relevant test options
+ TestOptions testOptions = options.getOptions(TestOptions.class);
+ if (!testOptions.testFilter.isEmpty()){
+ cmdLine.add("--test_filter=" + testOptions.testFilter);
+ }
+ for (String arg : testOptions.testArguments) {
+ if (!arg.isEmpty()) {
+ cmdLine.add("--test_arg=" + arg);
+ }
}
- cmdLine.add("--build_id");
- cmdLine.add(env.getCommandId().toString());
Path workingDir = env.getBlazeWorkspace().getOutputPath().getParentDirectory();
com.google.devtools.build.lib.shell.Command command =