diff options
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( |