aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar Adam Michael <ajmichael@google.com>2016-10-25 19:37:41 +0000
committerGravatar John Cater <jcater@google.com>2016-10-25 20:21:03 +0000
commit6a87bd420fafc6b1209596ca81b31ce7a222f4aa (patch)
tree142c7ea5db7e4da5fa8f62a36d10eaa7f8e602e6 /src/test/java/com/google/devtools
parent87342673b739b019b8e8b64137b97dfebf777f86 (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.java1
-rw-r--r--src/test/java/com/google/devtools/build/lib/bazel/rules/android/AarImportTest.java42
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");