aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceScriptFixtureInfoProvider.java
diff options
context:
space:
mode:
authorGravatar ajmichael <ajmichael@google.com>2017-05-05 04:19:34 +0200
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2017-05-05 15:27:23 +0200
commit14747a8bf2d35846d75ac9058e1b514a89f68f07 (patch)
tree51693a3aaf6ec6421bc0226355dc0c66a306fce3 /src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceScriptFixtureInfoProvider.java
parentf2528c1b96751692aae233aa839f86d0f887b75f (diff)
Create new android_device_script_fixture rule.
This rule simply provides a shell script that is run on a device as part of a test which can come from an input file or as a string command. It also takes a list of APKs that need to be installed before the fixture can be run. Note that this CL does _not_ install the rule in the BazelRuleClassProvider, so this CL does not make it usable by anyone. Once the other android testing rules are ready, I will install them all. One small step towards https://github.com/bazelbuild/bazel/issues/903. RELNOTES: None PiperOrigin-RevId: 155155984
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceScriptFixtureInfoProvider.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceScriptFixtureInfoProvider.java65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceScriptFixtureInfoProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceScriptFixtureInfoProvider.java
new file mode 100644
index 0000000000..42b7b11a70
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceScriptFixtureInfoProvider.java
@@ -0,0 +1,65 @@
+// Copyright 2017 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package com.google.devtools.build.lib.rules.android;
+
+import com.google.common.collect.ImmutableMap;
+import com.google.devtools.build.lib.actions.Artifact;
+import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
+import com.google.devtools.build.lib.collect.nestedset.NestedSet;
+import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
+import com.google.devtools.build.lib.packages.NativeClassObjectConstructor;
+import com.google.devtools.build.lib.packages.SkylarkClassObject;
+
+/**
+ * Information about an {@code android_device_script_fixture} to run as part of an {@code
+ * android_instrumentation_test}.
+ */
+@Immutable
+public class AndroidDeviceScriptFixtureInfoProvider extends SkylarkClassObject
+ implements TransitiveInfoProvider {
+
+ private static final String SKYLARK_NAME = "DeviceScriptFixtureInfo";
+ public static final NativeClassObjectConstructor ANDROID_DEVICE_SCRIPT_FIXTURE_INFO =
+ new NativeClassObjectConstructor(SKYLARK_NAME) {};
+
+ private final Artifact fixtureScript;
+ private final NestedSet<Artifact> supportApks;
+ private final boolean daemon;
+ private final boolean strictExit;
+
+ public AndroidDeviceScriptFixtureInfoProvider(
+ Artifact fixtureScript, NestedSet<Artifact> supportApks, boolean daemon, boolean strictExit) {
+ super(ANDROID_DEVICE_SCRIPT_FIXTURE_INFO, ImmutableMap.<String, Object>of());
+ this.fixtureScript = fixtureScript;
+ this.supportApks = supportApks;
+ this.daemon = daemon;
+ this.strictExit = strictExit;
+ }
+
+ public Artifact getFixtureScript() {
+ return fixtureScript;
+ }
+
+ public NestedSet<Artifact> getSupportApks() {
+ return supportApks;
+ }
+
+ public boolean getDaemon() {
+ return daemon;
+ }
+
+ public boolean getStrictExit() {
+ return strictExit;
+ }
+}