aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/shell/bazel/android/android_integration_test.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/shell/bazel/android/android_integration_test.sh')
-rwxr-xr-xsrc/test/shell/bazel/android/android_integration_test.sh227
1 files changed, 5 insertions, 222 deletions
diff --git a/src/test/shell/bazel/android/android_integration_test.sh b/src/test/shell/bazel/android/android_integration_test.sh
index 23ea519af0..557816083b 100755
--- a/src/test/shell/bazel/android/android_integration_test.sh
+++ b/src/test/shell/bazel/android/android_integration_test.sh
@@ -25,60 +25,13 @@
# Load the test setup defined in the parent directory
CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
-source "${CURRENT_DIR}/../../integration_test_setup.sh" \
- || { echo "integration_test_setup.sh not found!" >&2; exit 1; }
-
-
-function create_android_binary() {
- mkdir -p java/bazel
- cat > java/bazel/BUILD <<EOF
-aar_import(
- name = "aar",
- aar = "sample.aar",
-)
-android_library(
- name = "lib",
- srcs = ["Lib.java"],
- deps = [":aar"],
-)
-android_binary(
- name = "bin",
- srcs = ["MainActivity.java"],
- manifest = "AndroidManifest.xml",
- deps = [":lib"],
-)
-EOF
-
- cp "${TEST_SRCDIR}/io_bazel/src/test/shell/bazel/android/sample.aar" \
- java/bazel/sample.aar
- cat > java/bazel/AndroidManifest.xml <<EOF
- <manifest package="bazel.android" />
-EOF
-
- cat > java/bazel/Lib.java <<EOF
-package bazel;
-import com.sample.aar.Sample;
-public class Lib {
- public static String message() {
- return "Hello Lib" + Sample.getZero();
- }
-}
-EOF
-
- cat > java/bazel/MainActivity.java <<EOF
-package bazel;
-import android.app.Activity;
-import android.os.Bundle;
+source "${CURRENT_DIR}/android_helper.sh" \
+ || { echo "android_helper.sh not found!" >&2; exit 1; }
+fail_if_no_android_sdk
-public class MainActivity extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- }
-}
-EOF
-}
+source "${CURRENT_DIR}/../../integration_test_setup.sh" \
+ || { echo "integration_test_setup.sh not found!" >&2; exit 1; }
function test_sdk_library_deps() {
create_new_workspace
@@ -95,119 +48,6 @@ EOF
bazel build --nobuild //java/a:a || fail "build failed"
}
-# Regression test for https://github.com/bazelbuild/bazel/issues/1928.
-function test_empty_tree_artifact_action_inputs_mount_empty_directories() {
- create_new_workspace
- setup_android_sdk_support
- cat > AndroidManifest.xml <<EOF
-<manifest package="com.test"/>
-EOF
- mkdir res
- zip test.aar AndroidManifest.xml res/
- cat > BUILD <<EOF
-aar_import(
- name = "test",
- aar = "test.aar",
-)
-EOF
- # Building aar_import invokes the AndroidResourceProcessingAction with a
- # TreeArtifact of the AAR resources as the input. Since there are no
- # resources, the Bazel sandbox should create an empty directory. If the
- # directory is not created, the action thinks that its inputs do not exist and
- # crashes.
- bazel build :test
-}
-
-function test_nonempty_aar_resources_tree_artifact() {
- create_new_workspace
- setup_android_sdk_support
- cat > AndroidManifest.xml <<EOF
-<manifest package="com.test"/>
-EOF
- mkdir -p res/values
- cat > res/values/values.xml <<EOF
-<?xml version="1.0" encoding="utf-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android">
-</resources>
-EOF
- zip test.aar AndroidManifest.xml res/values/values.xml
- cat > BUILD <<EOF
-aar_import(
- name = "test",
- aar = "test.aar",
-)
-EOF
- bazel build :test
-}
-
-function test_android_sdk_repository_path_from_environment() {
- create_new_workspace
- setup_android_sdk_support
- # Overwrite WORKSPACE that was created by setup_android_sdk_support with one
- # that does not set the path attribute of android_sdk_repository.
- cat > WORKSPACE <<EOF
-android_sdk_repository(
- name = "androidsdk",
-)
-EOF
- ANDROID_HOME=$ANDROID_SDK bazel build @androidsdk//:files || fail \
- "android_sdk_repository failed to build with \$ANDROID_HOME instead of " \
- "path"
-}
-
-function test_android_sdk_repository_no_path_or_android_home() {
- create_new_workspace
- cat > WORKSPACE <<EOF
-android_sdk_repository(
- name = "androidsdk",
- api_level = 25,
-)
-EOF
- bazel build @androidsdk//:files >& $TEST_log && fail "Should have failed"
- expect_log "Either the path attribute of android_sdk_repository"
-}
-
-function test_android_sdk_repository_wrong_path() {
- create_new_workspace
- mkdir "$TEST_SRCDIR/some_dir"
- cat > WORKSPACE <<EOF
-android_sdk_repository(
- name = "androidsdk",
- api_level = 25,
- path = "$TEST_SRCDIR/some_dir",
-)
-EOF
- bazel build @androidsdk//:files >& $TEST_log && fail "Should have failed"
- expect_log "Unable to read the Android SDK at $TEST_SRCDIR/some_dir, the path may be invalid." \
- " Is the path in android_sdk_repository() or \$ANDROID_SDK_HOME set correctly?"
-}
-
-# Check that the build succeeds if an android_sdk is specified with --android_sdk
-function test_specifying_android_sdk_flag() {
- create_new_workspace
- setup_android_sdk_support
- create_android_binary
- cat > WORKSPACE <<EOF
-android_sdk_repository(
- name = "a",
-)
-EOF
- ANDROID_HOME=$ANDROID_SDK bazel build --android_sdk=@a//:sdk-24 \
- //java/bazel:bin || fail "build with --android_sdk failed"
-}
-
-# Regression test for https://github.com/bazelbuild/bazel/issues/2621.
-function test_android_sdk_repository_returns_null_if_env_vars_missing() {
- create_new_workspace
- setup_android_sdk_support
- ANDROID_HOME=/does_not_exist_1 bazel build @androidsdk//:files || \
- fail "Build failed"
- sed -i -e 's/path =/#path =/g' WORKSPACE
- ANDROID_HOME=/does_not_exist_2 bazel build @androidsdk//:files && \
- fail "Build should have failed"
- ANDROID_HOME=$ANDROID_SDK bazel build @androidsdk//:files || "Build failed"
-}
-
function test_allow_custom_manifest_name() {
create_new_workspace
setup_android_sdk_support
@@ -221,61 +61,4 @@ function test_allow_custom_manifest_name() {
"Failed to build android_binary with custom Android manifest file name"
}
-function test_proguard() {
- create_new_workspace
- setup_android_sdk_support
- mkdir -p java/com/bin
- cat > java/com/bin/BUILD <<EOF
-android_binary(
- name = 'bin',
- srcs = ['Bin.java', 'NotUsed.java'],
- manifest = 'AndroidManifest.xml',
- proguard_specs = ['proguard.config'],
- deps = [':lib'],
-)
-android_library(
- name = 'lib',
- srcs = ['Lib.java'],
-)
-EOF
- cat > java/com/bin/AndroidManifest.xml <<EOF
-<manifest package='com.bin' />
-EOF
- cat > java/com/bin/Bin.java <<EOF
-package com.bin;
-public class Bin {
- public Lib getLib() {
- return new Lib();
- }
-}
-EOF
- cat > java/com/bin/NotUsed.java <<EOF
-package com.bin;
-public class NotUsed {}
-EOF
- cat > java/com/bin/Lib.java <<EOF
-package com.bin;
-public class Lib {}
-EOF
- cat > java/com/bin/proguard.config <<EOF
--keep public class com.bin.Bin {
- public *;
-}
-EOF
- assert_build //java/com/bin
- output_classes=$(zipinfo -1 bazel-bin/java/com/bin/bin_proguard.jar)
- assert_equals 3 $(wc -w <<< $output_classes)
- assert_one_of $output_classes "META-INF/MANIFEST.MF"
- assert_one_of $output_classes "com/bin/Bin.class"
- # Not kept by proguard
- assert_not_one_of $output_classes "com/bin/Unused.class"
- # This is renamed by proguard to something else
- assert_not_one_of $output_classes "com/bin/Lib.class"
-}
-
-if [[ ! -d "${TEST_SRCDIR}/androidsdk" ]]; then
- echo "Not running Android tests due to lack of an Android SDK."
- exit 0
-fi
-
run_suite "Android integration tests"