diff options
author | Adam Michael <ajmichael@google.com> | 2016-10-25 19:37:41 +0000 |
---|---|---|
committer | John Cater <jcater@google.com> | 2016-10-25 20:21:03 +0000 |
commit | 6a87bd420fafc6b1209596ca81b31ce7a222f4aa (patch) | |
tree | 142c7ea5db7e4da5fa8f62a36d10eaa7f8e602e6 /src/test/java/com/google/devtools | |
parent | 87342673b739b019b8e8b64137b97dfebf777f86 (diff) |
Adds support to aar_import for native libs in /jni.
The libs that are extracted are dependent on the CPU from the Android split transition. This is set either from --fat_apk_cpu or --android_cpu if fat_apk_cpu is empty.
--
MOS_MIGRATED_REVID=137188695
Diffstat (limited to 'src/test/java/com/google/devtools')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java | 1 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/bazel/rules/android/AarImportTest.java | 42 |
2 files changed, 43 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 ff4b3cd0a7..d89d4c8caf 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 @@ -158,6 +158,7 @@ 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("sh_binary(name = 'aar_native_libs_zip_creator', srcs = ['empty.sh'])") .add("sh_binary(name = 'dexbuilder', srcs = ['empty.sh'])") .add("sh_binary(name = 'dexmerger', srcs = ['empty.sh'])") .add("sh_binary(name = 'manifest_merger', srcs = ['empty.sh'])") diff --git a/src/test/java/com/google/devtools/build/lib/bazel/rules/android/AarImportTest.java b/src/test/java/com/google/devtools/build/lib/bazel/rules/android/AarImportTest.java index 983a4179cf..f87fbe325e 100644 --- a/src/test/java/com/google/devtools/build/lib/bazel/rules/android/AarImportTest.java +++ b/src/test/java/com/google/devtools/build/lib/bazel/rules/android/AarImportTest.java @@ -15,6 +15,8 @@ package com.google.devtools.build.lib.bazel.rules.android; import static com.google.common.truth.Truth.assertThat; +import com.google.common.base.Predicates; +import com.google.common.collect.Iterables; 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; @@ -24,6 +26,7 @@ import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.rules.android.AndroidResourcesProvider; import com.google.devtools.build.lib.rules.android.AndroidResourcesProvider.ResourceContainer; +import com.google.devtools.build.lib.rules.android.NativeLibsZipsProvider; import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider; import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider.OutputJar; import java.util.Set; @@ -53,6 +56,10 @@ public class AarImportTest extends BuildViewTestCase { " manifest = 'AndroidManifest.xml',", " deps = ['//a:bar'],", ")", + "android_library(", + " name = 'lib',", + " deps = ['//a:bar'],", + ")", "java_import(", " name = 'baz',", " jars = ['baz.jar'],", @@ -81,6 +88,41 @@ public class AarImportTest extends BuildViewTestCase { } @Test + public void testNativeLibsProvided() throws Exception { + ConfiguredTarget androidLibraryTarget = getConfiguredTarget("//java:lib"); + + NestedSet<Artifact> nativeLibs = + androidLibraryTarget.getProvider(NativeLibsZipsProvider.class).getAarNativeLibs(); + assertThat(nativeLibs).containsExactly( + actionsTestUtil().getFirstArtifactEndingWith(nativeLibs, "foo/native_libs.zip"), + actionsTestUtil().getFirstArtifactEndingWith(nativeLibs, "bar/native_libs.zip")); + } + + @Test + public void testNativeLibsZipMakesItIntoApk() throws Exception { + scratch.file("java/com/google/android/hello/BUILD", + "aar_import(", + " name = 'my_aar',", + " aar = 'my_aar.aar',", + ")", + "android_binary(", + " name = 'my_app',", + " srcs = ['HelloApp.java'],", + " deps = [':my_aar'],", + " manifest = 'AndroidManifest.xml',", + ")"); + ConfiguredTarget binary = getConfiguredTarget("//java/com/google/android/hello:my_app"); + SpawnAction apkBuilderAction = (SpawnAction) actionsTestUtil() + .getActionForArtifactEndingWith(getFilesToBuild(binary), "my_app_unsigned.apk"); + assertThat( + Iterables.find( + apkBuilderAction.getArguments(), + Predicates.containsPattern("_aar/my_aar/native_libs.zip$"))) + .isNotEmpty(); + } + + + @Test public void testClassesJarProvided() throws Exception { ConfiguredTarget aarImportTarget = getConfiguredTarget("//a:foo"); |