diff options
author | 2018-01-31 12:03:13 -0800 | |
---|---|---|
committer | 2018-01-31 12:05:14 -0800 | |
commit | dffc24bdbc3deb8f7ffb017d5ad477d1408b91db (patch) | |
tree | ce2f4a91099fb736813f9cafdfdf2ccb3c1a4cc1 | |
parent | bf0937c67e9f56e525ea0655da38888a7ef3aaeb (diff) |
Add DeviceBrokerInfo to Skylark top level.
This allows writing Android testing rules that consume DeviceBrokerInfo.
RELNOTES: None
PiperOrigin-RevId: 184026202
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java | 3 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/android/AndroidDeviceTest.java | 30 |
2 files changed, 33 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java index a433568445..884dd6c5ba 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java @@ -91,6 +91,7 @@ import com.google.devtools.build.lib.rules.android.AndroidRuleClasses; import com.google.devtools.build.lib.rules.android.AndroidRuleClasses.AndroidToolsDefaultsJarRule; import com.google.devtools.build.lib.rules.android.AndroidSkylarkCommon; import com.google.devtools.build.lib.rules.android.ApkInfo; +import com.google.devtools.build.lib.rules.android.DeviceBrokerInfo; import com.google.devtools.build.lib.rules.android.DexArchiveAspect; import com.google.devtools.build.lib.rules.apple.AppleCommandLineOptions; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; @@ -481,6 +482,8 @@ public class BazelRuleClassProvider { builder.addSkylarkAccessibleTopLevels(ApkInfo.PROVIDER.getName(), ApkInfo.PROVIDER); builder.addSkylarkAccessibleTopLevels( AndroidInstrumentationInfo.PROVIDER.getName(), AndroidInstrumentationInfo.PROVIDER); + builder.addSkylarkAccessibleTopLevels( + DeviceBrokerInfo.PROVIDER.getName(), DeviceBrokerInfo.PROVIDER); try { builder.addWorkspaceFilePrefix( diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidDeviceTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidDeviceTest.java index 7f9afc6254..9d989209e3 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidDeviceTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidDeviceTest.java @@ -573,4 +573,34 @@ public class AndroidDeviceTest extends BuildViewTestCase { " vm_heap = 256", ")"); } + + @Test + public void testDeviceBrokerInfoExposedToSkylark() + throws Exception { + scratch.file( + "tools/android/emulated_device/BUILD", + "android_device(", + " name = 'nexus_6', ", + " ram = 2048, ", + " horizontal_resolution = 720, ", + " vertical_resolution = 1280, ", + " cache = 32, ", + " system_image = '" + SYSTEM_IMAGE_LABEL + "',", + " screen_density = 280, ", + " vm_heap = 256,", + " tags = ['requires-kvm']", + ")"); + scratch.file( + "javatests/com/app/skylarktest/skylarktest.bzl", + "mystring = provider(fields = ['content'])", + "def _impl(ctx):", + " return [mystring(content = ctx.attr.dep[DeviceBrokerInfo])]", + "skylarktest = rule(implementation=_impl, attrs = {'dep': attr.label()})"); + scratch.file( + "javatests/com/app/skylarktest/BUILD", + "load(':skylarktest.bzl', 'skylarktest')", + "skylarktest(name = 'mytest', dep = '//tools/android/emulated_device:nexus_6')"); + ConfiguredTarget ct = getConfiguredTarget("//javatests/com/app/skylarktest:mytest"); + assertThat(ct).isNotNull(); + } } |