diff options
author | 2017-10-05 23:06:41 +0200 | |
---|---|---|
committer | 2017-10-06 19:48:18 +0200 | |
commit | 7569bd0cab3a7eec863f48caee69d47f6260211a (patch) | |
tree | bd9d8a6a802e05e7be84f6fd23154f30822f1fde /src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java | |
parent | 104eb04bc709859a31079e77b397d3efa786968f (diff) |
Open-source unit tests for proguard actions.
RELNOTES: None
PiperOrigin-RevId: 171205009
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java index 7c7d821479..0f76cd20d1 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java @@ -15,6 +15,7 @@ package com.google.devtools.build.lib.rules.android; import static com.google.common.collect.Iterables.getOnlyElement; import static com.google.common.truth.Truth.assertThat; +import static com.google.common.truth.Truth.assertWithMessage; import com.google.common.base.Function; import com.google.common.base.Joiner; @@ -26,6 +27,7 @@ import com.google.devtools.build.lib.actions.Action; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.util.ActionsTestUtil; import com.google.devtools.build.lib.analysis.ConfiguredTarget; +import com.google.devtools.build.lib.analysis.OutputGroupProvider; import com.google.devtools.build.lib.analysis.actions.FileWriteAction; import com.google.devtools.build.lib.analysis.actions.SpawnAction; import com.google.devtools.build.lib.analysis.config.BuildConfiguration; @@ -1588,4 +1590,67 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase { .allowSrcsLessAndroidLibraryDeps()) .isTrue(); } + + @Test + public void testAndroidLibraryValidatesProguardSpec() throws Exception { + scratch.file("java/com/google/android/hello/BUILD", + "android_library(name = 'l2',", + " srcs = ['MoreMaps.java'],", + " proguard_specs = ['library_spec.cfg'])", + "android_binary(name = 'b',", + " srcs = ['HelloApp.java'],", + " manifest = 'AndroidManifest.xml',", + " deps = [':l2'],", + " proguard_specs = ['proguard-spec.pro'])"); + Set<Artifact> transitiveArtifacts = + actionsTestUtil() + .artifactClosureOf( + getFilesToBuild(getConfiguredTarget("//java/com/google/android/hello:b"))); + Action action = + actionsTestUtil() + .getActionForArtifactEndingWith(transitiveArtifacts, "library_spec.cfg_valid"); + assertWithMessage("proguard validate action was spawned for binary target.") + .that( + actionsTestUtil() + .getActionForArtifactEndingWith(transitiveArtifacts, "proguard-spec.pro_valid")) + .isNull(); + assertWithMessage("Proguard validate action was not spawned.") + .that(ActionsTestUtil.prettyArtifactNames(action.getInputs())) + .contains("java/com/google/android/hello/library_spec.cfg"); + } + + @Test + public void testAndroidLibraryValidatesProguardSpecWithoutBinary() throws Exception { + scratch.file("java/com/google/android/hello/BUILD", + "android_library(name = 'l2',", + " srcs = ['MoreMaps.java'],", + " proguard_specs = ['library_spec.cfg'])", + "android_library(name = 'l3',", + " srcs = ['MoreMaps.java'],", + " deps = [':l2'])"); + Action action = + actionsTestUtil() + .getActionForArtifactEndingWith( + getOutputGroup( + getConfiguredTarget("//java/com/google/android/hello:l2"), + OutputGroupProvider.HIDDEN_TOP_LEVEL), + "library_spec.cfg_valid"); + assertWithMessage("Proguard validate action was not spawned.").that(action).isNotNull(); + assertWithMessage("Proguard validate action was spawned without correct input.") + .that(ActionsTestUtil.prettyArtifactNames(action.getInputs())) + .contains("java/com/google/android/hello/library_spec.cfg"); + Action transitiveAction = + actionsTestUtil() + .getActionForArtifactEndingWith( + getOutputGroup( + getConfiguredTarget("//java/com/google/android/hello:l3"), + OutputGroupProvider.HIDDEN_TOP_LEVEL), + "library_spec.cfg_valid"); + assertWithMessage("Proguard validate action was not spawned.") + .that(transitiveAction) + .isNotNull(); + assertWithMessage("Proguard validate action was spawned without correct input.") + .that(ActionsTestUtil.prettyArtifactNames(transitiveAction.getInputs())) + .contains("java/com/google/android/hello/library_spec.cfg"); + } } |