diff options
author | 2017-08-30 18:01:20 +0200 | |
---|---|---|
committer | 2017-08-30 18:26:15 +0200 | |
commit | 00877ba348e005bc03cb2a682fe8f415184d3102 (patch) | |
tree | 7e8eb1ff0dd7a3fe74457107d8b9aaf9d7d9fbdd /src/test/java/com/google/devtools | |
parent | 0051894d62db7d7d9d7aebeb0e202342514148af (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.java | 53 |
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( |