aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2018-03-23 03:44:08 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-03-23 03:45:28 -0700
commitbbb5a5017cdc0f8e06864800a626714e2fa975df (patch)
treed64da4b5a24cae1f1d38469d270521ba2a793a44 /src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java
parent3ef288c0cf49783399c60ed9a33dcd98f3ae1210 (diff)
Add test that blaze feature_flags are passed correctly when the alias is invoked
PiperOrigin-RevId: 190200144
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java')
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java
index d25b28db01..3a4015fb20 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java
@@ -3071,6 +3071,43 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
}
@Test
+ public void testFeatureFlagsAttributeSetsSelectInBinaryAlias() throws Exception {
+ useConfiguration("--experimental_dynamic_configs=notrim");
+ scratch.file(
+ "java/com/foo/BUILD",
+ "config_feature_flag(",
+ " name = 'flag1',",
+ " allowed_values = ['on', 'off'],",
+ " default_value = 'off',",
+ ")",
+ "config_setting(",
+ " name = 'flag1@on',",
+ " flag_values = {':flag1': 'on'},",
+ ")",
+ "android_binary(",
+ " name = 'foo',",
+ " manifest = 'AndroidManifest.xml',",
+ " srcs = select({",
+ " ':flag1@on': ['Flag1On.java'],",
+ " '//conditions:default': ['Flag1Off.java'],",
+ " }),",
+ " feature_flags = {",
+ " 'flag1': 'on',",
+ " }",
+ ")",
+ "alias(",
+ " name = 'alias',",
+ " actual = ':foo',",
+ ")");
+ ConfiguredTarget binary = getConfiguredTarget("//java/com/foo:alias");
+ List<String> inputs =
+ prettyArtifactNames(actionsTestUtil().artifactClosureOf(getFinalUnsignedApk(binary)));
+
+ assertThat(inputs).contains("java/com/foo/Flag1On.java");
+ assertThat(inputs).doesNotContain("java/com/foo/Flag1Off.java");
+ }
+
+ @Test
public void testFeatureFlagsAttributeFailsAnalysisIfFlagValueIsInvalid() throws Exception {
reporter.removeHandler(failFastHandler);
useConfiguration("--experimental_dynamic_configs=on");