aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2017-08-30 18:01:20 +0200
committerGravatar Vladimir Moskva <vladmos@google.com>2017-08-30 18:26:15 +0200
commit00877ba348e005bc03cb2a682fe8f415184d3102 (patch)
tree7e8eb1ff0dd7a3fe74457107d8b9aaf9d7d9fbdd /src/test/java/com/google/devtools
parent0051894d62db7d7d9d7aebeb0e202342514148af (diff)
Add support for Proguard's -obfuscationdictionary command line parameter with the new android_binary parameter "proguard_apply_dictionary".
RELNOTES[NEW]: android_binary now supports proguard_apply_dictionary to specify a custom dictionary to use for choosing names to obfuscate classes and members to. PiperOrigin-RevId: 167000875
Diffstat (limited to 'src/test/java/com/google/devtools')
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java53
1 files changed, 49 insertions, 4 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 b42be3be4d..457b916555 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
@@ -2672,10 +2672,15 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
")");
ConfiguredTarget ct = getConfiguredTarget("//java/com/google/android:foo");
- MoreAsserts.assertContainsSublist(
- getGeneratingSpawnActionArgs(artifactByPath(getFilesToBuild(ct), "_proguard.jar")),
- "-applymapping",
- "java/com/google/android/proguard.map");
+
+ Artifact artifact = artifactByPath(getFilesToBuild(ct), "_proguard.jar");
+ Action generatingAction = getGeneratingAction(artifact);
+ assertThat(Artifact.toExecPaths(generatingAction.getInputs()))
+ .contains("java/com/google/android/proguard.map");
+ // Cannot use assertThat().containsAllOf().inOrder() as that does not assert that the elements
+ // are consecutive.
+ MoreAsserts.assertContainsSublist(getGeneratingSpawnActionArgs(artifact),
+ "-applymapping", "java/com/google/android/proguard.map");
}
@Test
@@ -2694,6 +2699,46 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
}
@Test
+ public void testApplyProguardDictionary() throws Exception {
+ scratch.file(
+ "java/com/google/android/BUILD",
+ "android_binary(",
+ " name = 'foo',",
+ " srcs = ['foo.java'],",
+ " proguard_apply_dictionary = 'dictionary.txt',",
+ " proguard_specs = ['foo.pro'],",
+ " manifest = 'AndroidManifest.xml',",
+ ")");
+
+ ConfiguredTarget ct = getConfiguredTarget("//java/com/google/android:foo");
+
+ Artifact artifact = artifactByPath(getFilesToBuild(ct), "_proguard.jar");
+ Action generatingAction = getGeneratingAction(artifact);
+ assertThat(Artifact.toExecPaths(generatingAction.getInputs()))
+ .contains("java/com/google/android/dictionary.txt");
+ // Cannot use assertThat().containsAllOf().inOrder() as that does not assert that the elements
+ // are consecutive.
+ MoreAsserts.assertContainsSublist(getGeneratingSpawnActionArgs(artifact),
+ "-obfuscationdictionary", "java/com/google/android/dictionary.txt");
+ }
+
+ @Test
+ public void testApplyProguardDictionaryWithNoSpec() throws Exception {
+ checkError(
+ "java/com/google/android",
+ "foo",
+ // messages:
+ "'proguard_apply_dictionary' can only be used when 'proguard_specs' is also set",
+ // build file:
+ "android_binary(",
+ " name = 'foo',",
+ " srcs = ['foo.java'],",
+ " proguard_apply_dictionary = 'dictionary.txt',",
+ " manifest = 'AndroidManifest.xml',",
+ ")");
+ }
+
+ @Test
public void testFeatureFlagsAttributeSetsSelectInDependency() throws Exception {
useConfiguration("--experimental_dynamic_configs=notrim");
scratch.file(