diff options
author | 2018-02-07 15:48:56 -0800 | |
---|---|---|
committer | 2018-02-07 15:50:49 -0800 | |
commit | e066095f837d482c31beb5520bc018a6dd744db2 (patch) | |
tree | 8fb377e32dd6be7f8b33cc29940198787423001a /src/test/java/com/google | |
parent | beb66e0fb63ce5cff2da8faa58ff9a55887affb3 (diff) |
Hooks to support core library desugaring in Android builds
RELNOTES: None.
PiperOrigin-RevId: 184909685
Diffstat (limited to 'src/test/java/com/google')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java | 3 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java | 53 |
2 files changed, 56 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java index a7913e7acc..eacc3f609e 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java @@ -221,6 +221,9 @@ public final class BazelAnalysisMock extends AnalysisMock { .add("sh_binary(name = 'aar_generator', srcs = ['empty.sh'])") .add("sh_binary(name = 'desugar_java8', srcs = ['empty.sh'])") .add("filegroup(name = 'desugar_java8_extra_bootclasspath', srcs = ['fake.jar'])") + .add("filegroup(name = 'java8_legacy_dex', srcs = ['java8_legacy.dex.zip'])") + .add("sh_binary(name = 'build_java8_legacy_dex', srcs = ['empty.sh'])") + .add("filegroup(name = 'desugared_java8_legacy_apis', srcs = ['fake.jar'])") .add("sh_binary(name = 'aar_native_libs_zip_creator', srcs = ['empty.sh'])") .add("sh_binary(name = 'resource_extractor', srcs = ['empty.sh'])") .add("sh_binary(name = 'dexbuilder', srcs = ['empty.sh'])") 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 26d908c0a7..2037468252 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 @@ -2871,6 +2871,59 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase { } @Test + public void testDesugarJava8Libs_noProguard() throws Exception { + useConfiguration("--experimental_desugar_java8_libs"); + scratch.file( + "java/com/google/android/BUILD", + "android_binary(", + " name = 'foo',", + " srcs = ['foo.java'],", + " manifest = 'AndroidManifest.xml',", + " multidex = 'native',", + ")"); + + ConfiguredTarget top = getConfiguredTarget("//java/com/google/android:foo"); + Artifact artifact = getBinArtifact("_dx/foo/_final_classes.dex.zip", top); + assertThat(artifact).named("_final_classes.dex.zip").isNotNull(); + Action generatingAction = getGeneratingAction(artifact); + assertThat(ActionsTestUtil.baseArtifactNames(generatingAction.getInputs())) + .containsAllOf("classes.dex.zip", /*canned*/ "java8_legacy.dex.zip"); + } + + @Test + public void testDesugarJava8Libs_withProguard() throws Exception { + useConfiguration("--experimental_desugar_java8_libs"); + scratch.file( + "java/com/google/android/BUILD", + "android_binary(", + " name = 'foo',", + " srcs = ['foo.java'],", + " manifest = 'AndroidManifest.xml',", + " multidex = 'native',", + " proguard_specs = ['foo.cfg'],", + ")"); + + ConfiguredTarget top = getConfiguredTarget("//java/com/google/android:foo"); + Artifact artifact = getBinArtifact("_dx/foo/_final_classes.dex.zip", top); + assertThat(artifact).named("_final_classes.dex.zip").isNotNull(); + Action generatingAction = getGeneratingAction(artifact); + assertThat(ActionsTestUtil.baseArtifactNames(generatingAction.getInputs())) + .containsAllOf("classes.dex.zip", /*built*/ "_java8_legacy.dex.zip"); + } + + @Test + public void testDesugarJava8Libs_noMultidexError() throws Exception { + useConfiguration("--experimental_desugar_java8_libs"); + checkError(/*packageName=*/ "java/com/google/android", /*ruleName=*/ "foo", + /*expectedErrorMessage=*/ "multidex", + "android_binary(", + " name = 'foo',", + " srcs = ['foo.java'],", + " manifest = 'AndroidManifest.xml',", + ")"); + } + + @Test public void testApplyProguardMapping() throws Exception { scratch.file( "java/com/google/android/BUILD", |