diff options
author | 2017-05-05 04:19:34 +0200 | |
---|---|---|
committer | 2017-05-05 15:27:23 +0200 | |
commit | 14747a8bf2d35846d75ac9058e1b514a89f68f07 (patch) | |
tree | 51693a3aaf6ec6421bc0226355dc0c66a306fce3 /src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceScriptFixtureInfoProvider.java | |
parent | f2528c1b96751692aae233aa839f86d0f887b75f (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.java | 65 |
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; + } +} |