aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google
diff options
context:
space:
mode:
authorGravatar kmb <kmb@google.com>2018-02-07 15:48:56 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-07 15:50:49 -0800
commite066095f837d482c31beb5520bc018a6dd744db2 (patch)
tree8fb377e32dd6be7f8b33cc29940198787423001a /src/test/java/com/google
parentbeb66e0fb63ce5cff2da8faa58ff9a55887affb3 (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.java3
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java53
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",