aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Adam Michael <ajmichael@google.com>2017-10-07 01:03:20 +0200
committerGravatar Klaus Aehlig <aehlig@google.com>2017-10-07 11:07:40 +0200
commit2d8c832998b8a103ff49ee196004ce2be3c17b12 (patch)
tree2257416c89d7e3aa0879bb525ba03af6803d74c5
parent4050a89a1e3fb6a9a9c6bd080cf4e3081a9f2012 (diff)
Add an integration test for android_library IDL support.
This should catch breakages due to changes in the AIDL tools bundled in the SDK. Change-Id: Iaff6ce058112a57b2b8da3e00a1172ee49cfdd85 PiperOrigin-RevId: 171357883
-rw-r--r--src/test/shell/bazel/android/BUILD10
-rw-r--r--src/test/shell/bazel/android/aidl_integration_test.sh72
2 files changed, 82 insertions, 0 deletions
diff --git a/src/test/shell/bazel/android/BUILD b/src/test/shell/bazel/android/BUILD
index fd02d82165..960bb5312e 100644
--- a/src/test/shell/bazel/android/BUILD
+++ b/src/test/shell/bazel/android/BUILD
@@ -39,6 +39,16 @@ sh_test(
)
sh_test(
+ name = "aidl_integration_test",
+ size = "large",
+ srcs = ["aidl_integration_test.sh"],
+ data = [
+ "//external:android_sdk_for_testing",
+ "//src/test/shell/bazel:test-deps",
+ ],
+)
+
+sh_test(
name = "desugarer_integration_test",
size = "large",
srcs = ["desugarer_integration_test.sh"],
diff --git a/src/test/shell/bazel/android/aidl_integration_test.sh b/src/test/shell/bazel/android/aidl_integration_test.sh
new file mode 100644
index 0000000000..a74b6a20b3
--- /dev/null
+++ b/src/test/shell/bazel/android/aidl_integration_test.sh
@@ -0,0 +1,72 @@
+#!/bin/bash
+#
+# Copyright 2017 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+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 test_simple_idl_srcs() {
+ create_new_workspace
+ setup_android_sdk_support
+
+ mkdir -p java/com/example
+ cat > java/com/example/BUILD <<EOF
+android_library(
+ name = "lib",
+ srcs = ["Lib.java"],
+ idl_srcs = ["ILib.aidl"],
+)
+android_binary(
+ name = "bin",
+ manifest = "AndroidManifest.xml",
+ srcs = ["Bin.java"],
+ deps = [":lib"],
+)
+EOF
+ cat > java/com/example/AndroidManifest.xml <<EOF
+<manifest package="com.example"/>
+EOF
+ cat > java/com/example/ILib.aidl <<EOF
+package com.example;
+interface ILib {}
+EOF
+ cat > java/com/example/Lib.java <<EOF
+package com.example;
+import android.os.IBinder;
+class Lib implements ILib {
+ @Override
+ public IBinder asBinder() {
+ return null;
+ }
+}
+EOF
+ cat > java/com/example/Bin.java <<EOF
+package com.example;
+public class Bin {
+ ILib lib = new Lib();
+}
+EOF
+
+ bazel build -s --verbose_failures //java/com/example:bin \
+ || fail "build failed"
+}
+
+if [[ ! -r "${TEST_SRCDIR}/androidsdk" ]]; then
+ echo "Not running Android tests due to lack of an Android SDK."
+ exit 0
+fi
+
+run_suite "Android IDL tests"