Add android build bp files
Enable new_robolectric
Test: mma in /external/robolectric
Bug: 244627502
Change-Id: I33c812fb76674cbd8da0cc7d2ec38596406b1a96
Merged-In: I33c812fb76674cbd8da0cc7d2ec38596406b1a96
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..84d7af2
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,224 @@
+// Copyright (C) 2019 The Android Open Source Project
+//
+// 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.
+
+package {
+ default_visibility: [":__subpackages__"],
+ default_applicable_licenses: ["external_robolectric_license"],
+}
+
+// Added automatically by a large-scale-change that took the approach of
+// 'apply every license found to every target'. While this makes sure we respect
+// every license restriction, it may not be entirely correct.
+//
+// e.g. GPL in an MIT project might only apply to the contrib/ directory.
+//
+// Please consider splitting the single license below into multiple licenses,
+// taking care not to lose any license_kind information, and overriding the
+// default license using the 'licenses: [...]' property on targets as needed.
+//
+// For unused files, consider creating a 'fileGroup' with "//visibility:private"
+// to attach the license to, and including a comment whether the files may be
+// used in the current project.
+// See: http://go/android-license-faq
+license {
+ name: "external_robolectric_license",
+ visibility: [":__subpackages__"],
+ license_kinds: [
+ "SPDX-license-identifier-Apache-2.0",
+ "SPDX-license-identifier-MIT",
+ ],
+ license_text: [
+ "LICENSE",
+ ],
+}
+
+// Empty library. Should be removed
+java_library {
+ name: "robolectric_android-all-stub_upstream",
+ visibility: ["//visibility:public"],
+}
+
+// build.prop file created by module type defined in soong/robolectric.go
+robolectric_build_props {
+ name: "robolectric_build_props_upstream",
+}
+
+java_genrule_host {
+ name: "robolectric_framework_res_upstream",
+ tools: ["zip2zip"],
+ srcs: [":framework-res"],
+ out: ["robolectric_framework_res_upstream.jar"],
+ cmd: "$(location zip2zip) " +
+ "-i $(location :framework-res) " +
+ "-o $(location robolectric_framework_res_upstream.jar) " +
+ "-x classes.dex " +
+ "-x META-INF/**/* " +
+ "-0 resources.arsc",
+}
+
+java_device_for_host {
+ name: "robolectric_android-all-device-deps_upstream",
+ libs: [
+ "conscrypt-for-host",
+ "core-icu4j-for-host",
+ "core-libart-for-host",
+ "ext",
+ "framework-all",
+ "icu4j-icudata-jarjar",
+ "icu4j-icutzdata-jarjar",
+ "ims-common",
+ "libphonenumber-platform",
+ "okhttp-for-host",
+ "services",
+ "services.accessibility",
+ "telephony-common",
+ "android.car",
+ "androidx.test.monitor",
+ "androidx.test.ext.truth", // -nodep?
+ ],
+}
+
+java_library_host {
+ name: "robolectric-host-android_all_upstream",
+ static_libs: [
+ "robolectric_android-all-device-deps_upstream",
+ "robolectric_tzdata",
+ "robolectric_framework_res_upstream",
+ ],
+ dist: {
+ targets: [
+ "sdk",
+ "win_sdk",
+ ],
+ dest: "android-all-robolectric_upstream.jar",
+ },
+
+ java_resources: [
+ // Copy the build.prop
+ ":robolectric_build_props_upstream",
+ ],
+ visibility: [
+ ":__subpackages__",
+ "//prebuilts/misc/common/robolectric",
+ ],
+}
+
+//#############################################
+// Assemble Robolectric_all
+//#############################################
+
+// This is a hack and should be removed with proper resource merging a la maven-shaded-plugin
+java_genrule_host {
+ name: "robolectric_meta_service_file",
+ out: ["robolectric_meta_service_file.jar"],
+ tools: ["soong_zip"],
+ cmd: "mkdir -p $(genDir)/META-INF/services/ && " +
+ "echo -e 'org.robolectric.Shadows\norg.robolectric.shadows.httpclient.Shadows\norg.robolectric.shadows.multidex.Shadows' > " +
+ "$(genDir)/META-INF/services/org.robolectric.internal.ShadowProvider &&" +
+ "$(location soong_zip) -o $(out) -C $(genDir) -D $(genDir)/META-INF/services/",
+}
+
+java_library_host {
+ name: "Robolectric_all_upstream",
+
+ static_libs: [
+ "robolectric_meta_service_file",
+ "Robolectric_shadows_httpclient_upstream",
+ "Robolectric_shadows_framework_upstream",
+ "Robolectric_shadows_multidex_upstream",
+ "Robolectric_robolectric_upstream",
+ "Robolectric_annotations_upstream",
+ "Robolectric_resources_upstream",
+ "Robolectric_shadowapi_upstream",
+ "Robolectric_sandbox_upstream",
+ "Robolectric_junit_upstream",
+ "Robolectric_utils_upstream",
+ "Robolectric_utils_reflector_upstream",
+ "asm-9.2",
+ "junit",
+ "asm-tree-9.2",
+ "guava",
+ "asm-commons-9.2",
+ "bouncycastle-unbundled",
+ "conscrypt-unbundled",
+ "robolectric-sqlite4java-0.282",
+ "hamcrest",
+ "hamcrest-library",
+ "robolectric-host-androidx-test-runner_upstream",
+ "robolectric-host-org_apache_http_legacy_upstream", //TODO: remove
+ ],
+
+ java_resource_dirs: [
+ "shadows/framework/src/main/resources",
+ "src/main/resources",
+ ],
+}
+
+// Make Robolectric_all available as a target jar, but treated as an aar
+java_host_for_device {
+ name: "Robolectric_all-target_upstream",
+ libs: ["Robolectric_all_upstream"],
+ visibility: [
+ "//platform_testing/robolab/roboStandaloneProj/tests",
+ ],
+}
+
+// Make dependencies available as host jars
+java_device_for_host {
+ name: "robolectric-host-androidx-test-core_upstream",
+ libs: ["androidx.test.core"],
+}
+
+java_device_for_host {
+ name: "robolectric-host-androidx-test-ext-junit_upstream",
+ libs: ["androidx.test.ext.junit"],
+}
+
+java_device_for_host {
+ name: "robolectric-host-androidx-test-monitor_upstream",
+ libs: ["androidx.test.monitor"],
+}
+
+java_device_for_host {
+ name: "robolectric-host-androidx-test-runner_upstream",
+ libs: ["androidx.test.runner"],
+}
+
+java_device_for_host {
+ name: "robolectric-host-androidx_upstream",
+ libs: ["androidx.fragment_fragment"],
+}
+
+java_device_for_host {
+ name: "robolectric-host-androidx_test_espresso",
+ libs: ["androidx.test.espresso.idling-resource"],
+}
+
+//java_device_for_host {
+// name: "robolectric-host-android-support-v4_upstream",
+// libs: ["android-support-v4"],
+//}
+
+java_device_for_host {
+ name: "robolectric-host-android-support-multidex_upstream",
+ libs: [
+ "android-support-multidex",
+ "com.android.support.multidex_1.0.3",
+ ],
+}
+
+java_device_for_host {
+ name: "robolectric-host-org_apache_http_legacy_upstream",
+ libs: ["org.apache.http.legacy.stubs"],
+}
diff --git a/annotations/Android.bp b/annotations/Android.bp
new file mode 100644
index 0000000..b325236
--- /dev/null
+++ b/annotations/Android.bp
@@ -0,0 +1,22 @@
+//#############################################
+// Compile Robolectric annotations
+//#############################################
+
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "external_robolectric-shadows_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-MIT
+ default_applicable_licenses: ["external_robolectric_license"],
+}
+
+java_library_host {
+ name: "Robolectric_annotations_upstream",
+ static_libs: [
+ "jsr305",
+ ],
+ libs: ["robolectric-host-android_all_upstream"],
+ srcs: ["src/main/java/**/*.java"],
+ visibility: ["//visibility:public"],
+}
diff --git a/junit/Android.bp b/junit/Android.bp
new file mode 100644
index 0000000..3ada376
--- /dev/null
+++ b/junit/Android.bp
@@ -0,0 +1,30 @@
+//##########################################
+// Compile Robolectric junit
+//##########################################
+
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "external_robolectric-shadows_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-MIT
+ default_applicable_licenses: ["external_robolectric_license"],
+}
+
+java_library_host {
+ name: "Robolectric_junit_upstream",
+ libs: [
+ "Robolectric_annotations_upstream",
+ "Robolectric_shadowapi_upstream",
+ "Robolectric_sandbox_upstream",
+ "Robolectric_utils_upstream",
+ "asm-commons-9.2",
+ "guava",
+ "asm-tree-9.2",
+ "hamcrest",
+ "junit",
+ "asm-9.2",
+ "jsr305",
+ ],
+ srcs: ["src/main/java/**/*.java"],
+}
diff --git a/nativeruntime/Android.bp b/nativeruntime/Android.bp
new file mode 100644
index 0000000..0d54843
--- /dev/null
+++ b/nativeruntime/Android.bp
@@ -0,0 +1,46 @@
+//#############################################
+// Compile Robolectric shadows framework
+//#############################################
+
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "external_robolectric_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ default_applicable_licenses: ["external_robolectric_license"],
+}
+
+java_library_host {
+ name: "Robolectric_nativeruntime_upstream",
+ libs: [
+ "Robolectric_annotations_upstream",
+ "Robolectric_shadowapi_upstream",
+ "Robolectric_sandbox_upstream",
+ "Robolectric_resources_upstream",
+ "Robolectric_pluginapi_upstream",
+ "Robolectric_utils_upstream",
+ "Robolectric_utils_reflector_upstream",
+ "robolectric-accessibility-test-framework-2.1",
+ "robolectric-javax.annotation-api-1.2",
+ "hamcrest-library",
+ "hamcrest",
+ "robolectric-sqlite4java-0.282",
+ "guava",
+ //"icu4j",
+ "jsr305",
+ "error_prone_annotations",
+ "auto_service_annotations",
+ // "jsr330",
+ "robolectric-host-android_all_upstream",
+ ],
+ static_libs: [
+ "robolectric_nativeruntime_native_prebuilt",
+ ],
+ plugins: ["auto_service_plugin"],
+ srcs: [
+ "src/main/java/**/*.java",
+ "src/main/java/**/*.kt",
+ ],
+ java_resource_dirs: ["src/main/resources"],
+}
diff --git a/pluginapi/Android.bp b/pluginapi/Android.bp
new file mode 100644
index 0000000..085c62b
--- /dev/null
+++ b/pluginapi/Android.bp
@@ -0,0 +1,41 @@
+//#############################################
+// Compile Robolectric utils
+//#############################################
+
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "external_robolectric_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ default_applicable_licenses: ["external_robolectric_license"],
+}
+
+java_library_host {
+ name: "Robolectric_pluginapi_upstream",
+ srcs: ["src/main/java/**/*.java"],
+ static_libs: [
+ "robolectric-javax.annotation-api-1.2",
+ "Robolectric_annotations_upstream",
+ "guava",
+ "jsr330",
+ "jsr305",
+ ],
+}
+
+//#############################################
+// Compile Robolectric utils tests
+//#############################################
+
+java_test_host {
+ name: "Robolectric_pluginapi_tests_upstream",
+ srcs: ["src/test/java/**/*.java"],
+ static_libs: [
+ "Robolectric_pluginapi_upstream",
+ "hamcrest",
+ "guava",
+ "junit",
+ "truth-prebuilt",
+ ],
+ test_suites: ["general-tests"],
+}
diff --git a/processor/Android.bp b/processor/Android.bp
new file mode 100644
index 0000000..c889550
--- /dev/null
+++ b/processor/Android.bp
@@ -0,0 +1,93 @@
+//#############################################
+// Compile Robolectric processor
+//#############################################
+
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "external_robolectric_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ // SPDX-license-identifier-MIT
+ default_applicable_licenses: ["external_robolectric_license"],
+}
+
+java_library_host {
+ name: "libRobolectric_processor_upstream",
+ srcs: ["src/main/java/**/*.java"],
+ java_resource_dirs: ["src/main/resources"],
+ java_resources: ["sdks.txt"],
+ use_tools_jar: true,
+ plugins: [
+ "auto_service_plugin",
+ ],
+ static_libs: [
+ "Robolectric_annotations_upstream",
+ "Robolectric_shadowapi_upstream",
+ "auto_service_annotations",
+ "asm-commons-9.2",
+ "guava",
+ "asm-tree-9.2",
+ "gson",
+ "asm-9.2",
+ "jsr305",
+ "auto_common",
+ ],
+
+ openjdk9: {
+ javacflags: [
+ "--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED",
+ "--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED",
+ "--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED",
+ ],
+ },
+}
+
+java_plugin {
+ name: "Robolectric_processor_upstream",
+ processor_class: "org.robolectric.annotation.processing.RobolectricProcessor",
+ static_libs: ["libRobolectric_processor_upstream"],
+}
+
+//#############################################
+// Compile Robolectric processor tests
+//#############################################
+java_test_host {
+ name: "Robolectric_processor_tests_upstream",
+ srcs: ["src/test/java/**/*.java"],
+ java_resource_dirs: ["src/test/resources"],
+ java_resources: [":Robolectric_processor_tests_resources_upstream"],
+ static_libs: [
+ "Robolectric_annotations_upstream",
+ "libRobolectric_processor_upstream",
+ "Robolectric_shadowapi_upstream",
+ "robolectric-javax.annotation-api-1.2",
+ "robolectric-compile-testing-0.19",
+ "mockito",
+ "hamcrest",
+ "guava",
+ "objenesis",
+ "junit",
+ "truth-prebuilt",
+ "gson",
+ "jsr305",
+ ],
+
+ test_suites: ["general-tests"],
+
+ // Disable annotation processing while compiling tests to avoid executing RobolectricProcessor.
+ javacflags: ["-proc:none"],
+
+ // Disabling tests as they fail in the bramble build.
+ test_options: {
+ unit_test: false,
+ },
+
+}
+
+// Workaround: java_resource_dirs ignores *.java files
+filegroup {
+ name: "Robolectric_processor_tests_resources_upstream",
+ path: "src/test/resources",
+ srcs: ["src/test/resources/**/*.java"],
+}
diff --git a/processor/sdks.txt b/processor/sdks.txt
new file mode 100644
index 0000000..b9931ca
--- /dev/null
+++ b/processor/sdks.txt
@@ -0,0 +1,15 @@
+prebuilts/misc/common/robolectric/android-all/android-all-4.1.2_r1-robolectric-r1.jar
+prebuilts/misc/common/robolectric/android-all/android-all-4.2.2_r1.2-robolectric-r1.jar
+prebuilts/misc/common/robolectric/android-all/android-all-4.3_r2-robolectric-r1.jar
+prebuilts/misc/common/robolectric/android-all/android-all-4.4_r1-robolectric-r2.jar
+prebuilts/misc/common/robolectric/android-all/android-all-5.0.2_r3-robolectric-r0.jar
+prebuilts/misc/common/robolectric/android-all/android-all-5.1.1_r9-robolectric-r2.jar
+prebuilts/misc/common/robolectric/android-all/android-all-6.0.1_r3-robolectric-r1.jar
+prebuilts/misc/common/robolectric/android-all/android-all-7.0.0_r1-robolectric-r1.jar
+prebuilts/misc/common/robolectric/android-all/android-all-7.1.0_r7-robolectric-r1.jar
+prebuilts/misc/common/robolectric/android-all/android-all-8.0.0_r4-robolectric-r1.jar
+prebuilts/misc/common/robolectric/android-all/android-all-8.1.0-robolectric-4611349.jar
+prebuilts/misc/common/robolectric/android-all/android-all-9-robolectric-4913185-2.jar
+prebuilts/misc/common/robolectric/android-all/android-all-9plus-robolectric-5616371.jar
+prebuilts/misc/common/robolectric/android-all/android-all-10-robolectric-5803371.jar
+prebuilts/misc/common/robolectric/android-all/android-all-R-beta2-robolectric-6625208.jar
diff --git a/resources/Android.bp b/resources/Android.bp
new file mode 100644
index 0000000..cfdc377
--- /dev/null
+++ b/resources/Android.bp
@@ -0,0 +1,46 @@
+//#############################################
+// Compile Robolectric resources
+//#############################################
+
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "external_robolectric-shadows_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ default_applicable_licenses: ["external_robolectric_license"],
+}
+
+java_library_host {
+ name: "Robolectric_resources_upstream",
+ srcs: ["src/main/java/**/*.java"],
+ libs: [
+ "Robolectric_annotations_upstream",
+ "Robolectric_utils_upstream",
+ "guava",
+ "jsr305",
+ ],
+}
+
+//#############################################
+// Compile Robolectric resources tests
+//#############################################
+
+java_test_host {
+ name: "Robolectric_resources_tests_upstream",
+ srcs: ["src/test/java/**/*.java"],
+ static_libs: [
+ "Robolectric_resources_upstream",
+ "Robolectric_annotations_upstream",
+ "Robolectric_utils_upstream",
+ "mockito",
+ "hamcrest",
+ "guava",
+ "objenesis",
+ "junit",
+ "truth-prebuilt",
+ "jsr305",
+ ],
+ java_resource_dirs: ["src/test/resources"],
+ test_suites: ["general-tests"],
+}
diff --git a/robolectric/Android.bp b/robolectric/Android.bp
new file mode 100644
index 0000000..61359ab
--- /dev/null
+++ b/robolectric/Android.bp
@@ -0,0 +1,98 @@
+//#############################################
+// Compile Robolectric robolectric
+//#############################################
+
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "external_robolectric-shadows_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ default_applicable_licenses: ["external_robolectric_license"],
+}
+
+java_library_host {
+ name: "Robolectric_robolectric_upstream",
+ libs: [
+ "Robolectric_shadows_framework_upstream",
+ "Robolectric_annotations_upstream",
+ "Robolectric_shadowapi_upstream",
+ "Robolectric_resources_upstream",
+ "Robolectric_sandbox_upstream",
+ "Robolectric_junit_upstream",
+ "Robolectric_utils_upstream",
+ "Robolectric_utils_reflector_upstream",
+ "robolectric-host-androidx-test-ext-junit_upstream",
+ "robolectric-host-androidx-test-monitor_upstream",
+ "robolectric-maven-ant-tasks-2.1.3",
+ "bouncycastle-unbundled",
+ "asm-commons-9.2",
+ "guava",
+ "robolectric-xstream-1.4.8",
+ "asm-tree-9.2",
+ "junit",
+ "robolectric-ant-1.8.0",
+ "asm-9.2",
+ "jsr305",
+ "conscrypt-unbundled",
+ "robolectric-host-androidx_test_espresso",
+ "robolectric-host-android_all_upstream",
+ ],
+ srcs: ["src/main/java/**/*.java"],
+ plugins: ["auto_service_plugin"],
+ java_resources: [":robolectric-version-upstream.properties"],
+}
+
+genrule {
+ name: "robolectric-version-upstream.properties",
+ out: ["robolectric-version-upstream.properties"],
+ cmd: "echo -n 'robolectric.version=4.8.2-SNAPSHOT' > $(out)",
+}
+
+//#############################################
+// Compile Robolectric robolectric tests
+//#############################################
+java_test_host {
+ name: "Robolectric_robolectric_tests_upstream",
+ srcs: ["src/test/java/**/*.java"],
+ java_resource_dirs: ["src/test/resources"],
+ static_libs: [
+ "Robolectric_robolectric_upstream",
+ "Robolectric_shadows_framework_upstream",
+ "Robolectric_annotations_upstream",
+ "Robolectric_shadowapi_upstream",
+ "Robolectric_resources_upstream",
+ "Robolectric_sandbox_upstream",
+ "Robolectric_junit_upstream",
+ "Robolectric_utils_upstream",
+ "Robolectric_utils_reflector_upstream",
+ "robolectric-host-androidx-test-ext-junit_upstream",
+ "robolectric-host-androidx-test-monitor_upstream",
+ "robolectric-host-androidx-test-core_upstream",
+ "robolectric-maven-ant-tasks-2.1.3",
+ "mockito",
+ "bouncycastle-unbundled",
+ "hamcrest",
+ "hamcrest-library",
+ "robolectric-sqlite4java-0.282",
+ "asm-commons-9.2",
+ "robolectric-diffutils-1.3.0",
+ "guava",
+ "objenesis",
+ "robolectric-xstream-1.4.8",
+ "asm-tree-9.2",
+ "junit",
+ "icu4j",
+ "truth-prebuilt",
+ "truth-java8-extension-jar",
+ "robolectric-ant-1.8.0",
+ "asm-9.2",
+ "jsr305",
+ "robolectric-host-androidx_test_espresso",
+ ],
+ libs: ["robolectric-host-android_all_upstream"],
+ // Robolectric tests do not work well with unit tests setup yet
+ test_options: {
+ unit_test: false,
+ },
+}
diff --git a/sandbox/Android.bp b/sandbox/Android.bp
new file mode 100644
index 0000000..8244722
--- /dev/null
+++ b/sandbox/Android.bp
@@ -0,0 +1,69 @@
+//#############################################
+// Compile Robolectric sandbox
+//#############################################
+
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "external_robolectric_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ default_applicable_licenses: ["external_robolectric_license"],
+}
+
+java_library_host {
+ name: "Robolectric_sandbox_upstream",
+ srcs: ["src/main/java/**/*.java"],
+ libs: [
+ "Robolectric_annotations_upstream",
+ "Robolectric_shadowapi_upstream",
+ "Robolectric_utils_reflector_upstream",
+ "Robolectric_utils_upstream",
+ "asm-commons-9.2",
+ "guava",
+ "asm-tree-9.2",
+ "asm-9.2",
+ "jsr305",
+ ],
+ plugins: [
+ "auto_service_plugin",
+ "auto_value_plugin",
+ ],
+ openjdk9: {
+ javacflags: [
+ "--add-opens=java.base/java.lang=ALL-UNNAMED",
+ ],
+ },
+}
+
+//#############################################
+// Compile Robolectric sandbox tests
+//#############################################
+
+java_test_host {
+ name: "Robolectric_sandbox_tests_upstream",
+ srcs: ["src/test/java/**/*.java"],
+ static_libs: [
+ "Robolectric_annotations_upstream",
+ "Robolectric_shadowapi_upstream",
+ "Robolectric_sandbox_upstream",
+ "Robolectric_utils_reflector_upstream",
+ "Robolectric_utils_upstream",
+ "Robolectric_junit_upstream",
+ "mockito",
+ "hamcrest",
+ "asm-commons-9.2",
+ "guava",
+ "objenesis",
+ "asm-tree-9.2",
+ "junit",
+ "truth-prebuilt",
+ "asm-9.2",
+ "jsr305",
+ ],
+ plugins: [
+ "auto_service_plugin",
+ "auto_value_plugin",
+ ],
+ test_suites: ["general-tests"],
+}
diff --git a/shadowapi/Android.bp b/shadowapi/Android.bp
new file mode 100644
index 0000000..0ab69a2
--- /dev/null
+++ b/shadowapi/Android.bp
@@ -0,0 +1,45 @@
+//#############################################
+// Compile Robolectric shadowapi
+//#############################################
+
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "external_robolectric_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ default_applicable_licenses: ["external_robolectric_license"],
+}
+
+java_library_host {
+ name: "Robolectric_shadowapi_upstream",
+ libs: [
+ "jsr305",
+ ],
+ static_libs: [
+ "Robolectric_utils_upstream",
+ "Robolectric_annotations_upstream",
+ ],
+ srcs: ["src/main/java/**/*.java"],
+ openjdk9: {
+ javacflags: [
+ "--add-opens=java.base/java.lang=ALL-UNNAMED",
+ ],
+ },
+}
+
+//#############################################
+// Compile Robolectric shadowapi tests
+//#############################################
+java_test_host {
+ name: "Robolectric_shadowapi_tests_upstream",
+ srcs: ["src/test/java/**/*.java"],
+ static_libs: [
+ "Robolectric_shadowapi_upstream",
+ "hamcrest",
+ "guava",
+ "junit",
+ "truth-prebuilt",
+ ],
+ test_suites: ["general-tests"],
+}
diff --git a/shadows/framework/Android.bp b/shadows/framework/Android.bp
new file mode 100644
index 0000000..5b6c149
--- /dev/null
+++ b/shadows/framework/Android.bp
@@ -0,0 +1,68 @@
+//#############################################
+// Compile Robolectric shadows framework
+//#############################################
+
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "external_robolectric_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ default_applicable_licenses: ["external_robolectric_license"],
+}
+
+java_library_host {
+ name: "Robolectric_shadows_framework_upstream",
+ srcs: [
+ "src/main/java/**/*.java",
+ "src/main/java/**/*.kt",
+ ],
+ java_resource_dirs: ["src/main/resources"],
+ javacflags: [
+ "-Aorg.robolectric.annotation.processing.shadowPackage=org.robolectric",
+ "-Aorg.robolectric.annotation.processing.sdkCheckMode=ERROR",
+ // Uncomment the below to debug annotation processors not firing.
+ //"-verbose",
+ //"-XprintRounds",
+ //"-XprintProcessorInfo",
+ //"-Xlint",
+ //"-J-verbose",
+ ],
+ libs: [
+ "Robolectric_annotations_upstream",
+ "Robolectric_nativeruntime_upstream",
+ "Robolectric_resources_upstream",
+ "Robolectric_pluginapi_upstream",
+ "Robolectric_sandbox_upstream",
+ "Robolectric_shadowapi_upstream",
+ "Robolectric_utils_upstream",
+ "Robolectric_utils_reflector_upstream",
+ "auto_value_annotations",
+ //jetpack
+ //"androidx.annotation_annotation-nodeps",
+ "jsr305",
+ "icu4j",
+
+ "robolectric-accessibility-test-framework-2.1",
+ "robolectric-javax.annotation-api-1.2",
+ //"hamcrest-library",
+ //"hamcrest",
+ //"stub-annotations",
+ "robolectric-sqlite4java-0.282",
+ "asm-commons-9.2",
+ "guava",
+ "asm-tree-9.2",
+ "asm-9.2",
+ //standard tools
+ "error_prone_annotations",
+ //"grpc-java-netty-shaded",
+ // aar files that make up android and jetpack
+ "robolectric-host-android_all_upstream",
+ ],
+ plugins: [
+ "auto_value_plugin",
+ "auto_value_builder_plugin",
+ "Robolectric_processor_upstream",
+ ],
+
+}
diff --git a/shadows/httpclient/Android.bp b/shadows/httpclient/Android.bp
new file mode 100644
index 0000000..4132f92
--- /dev/null
+++ b/shadows/httpclient/Android.bp
@@ -0,0 +1,78 @@
+//#############################################
+// Compile Robolectric shadows httpclient
+//#############################################
+
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "external_robolectric_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ default_applicable_licenses: ["external_robolectric_license"],
+}
+
+java_library_host {
+ name: "Robolectric_shadows_httpclient_upstream",
+ libs: [
+ "Robolectric_shadows_framework_upstream",
+ "Robolectric_annotations_upstream",
+ "Robolectric_shadowapi_upstream",
+ "Robolectric_utils_upstream",
+ "robolectric-httpclient-4.0.3",
+ "robolectric-httpcore-4.0.1",
+ "robolectric-javax.annotation-api-1.2",
+ "robolectric-host-android_all_upstream",
+ "robolectric-host-org_apache_http_legacy_upstream",
+ ],
+ plugins: ["Robolectric_processor_upstream"],
+ javacflags: ["-Aorg.robolectric.annotation.processing.shadowPackage=org.robolectric.shadows.httpclient"],
+ srcs: ["src/main/java/**/*.java"],
+
+ errorprone: {
+ javacflags: ["-Xep:EqualsNull:WARN"],
+ },
+}
+
+//#############################################
+// Compile Robolectric shadows httpclient tests
+//#############################################
+
+java_test_host {
+ name: "Robolectric_shadows_httpclient_tests_upstream",
+ srcs: ["src/test/java/**/*.java"],
+ java_resource_dirs: ["src/test/resources"],
+ static_libs: [
+ "Robolectric_shadows_httpclient_upstream",
+ "Robolectric_shadows_framework_upstream",
+ "Robolectric_annotations_upstream",
+ "Robolectric_robolectric_upstream",
+ "Robolectric_resources_upstream",
+ "Robolectric_shadowapi_upstream",
+ "Robolectric_sandbox_upstream",
+ "Robolectric_junit_upstream",
+ "Robolectric_utils_upstream",
+ "robolectric-maven-ant-tasks-2.1.3",
+ "bouncycastle-unbundled",
+ "hamcrest",
+ "robolectric-httpclient-4.0.3",
+ "asm-commons-9.2",
+ "robolectric-httpcore-4.0.1",
+ "guava",
+ "asm-tree-9.2",
+ "junit",
+ "truth-prebuilt",
+ "robolectric-ant-1.8.0",
+ "asm-9.2",
+ "jsr305",
+ "grpc-java-netty-shaded",
+ //"grpc-netty-shaded-1.16.1-jar",
+ "robolectric-host-android_all_upstream",
+ "robolectric-host-org_apache_http_legacy_upstream",
+ "robolectric-host-androidx-test-ext-junit_upstream",
+ ],
+ test_suites: ["general-tests"],
+ //tradefed doesn't run these tests.
+ test_options: {
+ unit_test: false,
+ },
+}
diff --git a/shadows/multidex/Android.bp b/shadows/multidex/Android.bp
new file mode 100644
index 0000000..91d3379
--- /dev/null
+++ b/shadows/multidex/Android.bp
@@ -0,0 +1,26 @@
+//#############################################
+// Compile Robolectric shadows multidex
+//#############################################
+
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "external_robolectric-shadows_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-MIT
+ default_applicable_licenses: ["external_robolectric_license"],
+}
+
+java_library_host {
+ name: "Robolectric_shadows_multidex_upstream",
+ libs: [
+ "Robolectric_annotations_upstream",
+ "Robolectric_shadowapi_upstream",
+ "robolectric-host-android-support-multidex_upstream",
+ "robolectric-javax.annotation-api-1.2",
+ "robolectric-host-android_all_upstream",
+ ],
+ plugins: ["Robolectric_processor_upstream"],
+ javacflags: ["-Aorg.robolectric.annotation.processing.shadowPackage=org.robolectric.shadows.multidex"],
+ srcs: ["src/main/java/**/*.java"],
+}
diff --git a/shadows/playservices/Android.bp b/shadows/playservices/Android.bp
new file mode 100644
index 0000000..4b6635e
--- /dev/null
+++ b/shadows/playservices/Android.bp
@@ -0,0 +1,22 @@
+//#############################################
+// Compile Robolectric shadows playservices
+//#############################################
+
+//java_library_host {
+// name: "Robolectric_shadows_playservices_upstream",
+// libs: [
+// "Robolectric_shadows_framework_upstream",
+// "Robolectric_annotations_upstream",
+// "Robolectric_shadowapi_upstream",
+// "robolectric-javax.annotation-api-1.2",
+// "guava",
+// "robolectric-host-android_all_upstream",
+
+// compileOnly "com.android.support:support-fragment:28.0.0"
+// compileOnly "com.google.android.gms:play-services-base:8.4.0"
+// compileOnly "com.google.android.gms:play-services-basement:8.4.0"
+// ],
+// plugins: ["Robolectric_processor_upstream"],
+// javacflags: ["-Aorg.robolectric.annotation.processing.shadowPackage=org.robolectric.shadows.gms"],
+// srcs: ["src/main/java/**/*.java"],
+//}
diff --git a/utils/Android.bp b/utils/Android.bp
new file mode 100644
index 0000000..bf4009c
--- /dev/null
+++ b/utils/Android.bp
@@ -0,0 +1,56 @@
+//#############################################
+// Compile Robolectric utils
+//#############################################
+
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "external_robolectric_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ default_applicable_licenses: ["external_robolectric_license"],
+}
+
+java_library_host {
+ name: "Robolectric_utils_upstream",
+ srcs: ["src/main/java/**/*.java"],
+ common_srcs: ["src/main/java/**/*.kt"],
+ plugins: ["auto_service_plugin"],
+ static_libs: [
+ "robolectric-javax.annotation-api-1.2",
+ "Robolectric_annotations_upstream",
+ "Robolectric_pluginapi_upstream",
+ "error_prone_annotations",
+ "guava",
+ "jsr330",
+ "jsr305",
+ "asm-9.2",
+ "auto_service_annotations",
+ ],
+}
+
+//#############################################
+// Compile Robolectric utils tests
+//#############################################
+
+java_test_host {
+ name: "Robolectric_utils_tests_upstream",
+ srcs: [
+ "src/test/java/**/*.java",
+ "src/test/java/**/*.kt",
+ ],
+ plugins: [
+ "auto_service_plugin",
+ ],
+ static_libs: [
+ "Robolectric_utils_upstream",
+ "hamcrest",
+ "guava",
+ "junit",
+ "error_prone_core",
+ "truth-prebuilt",
+ "asm-9.2",
+ "mockito",
+ ],
+ test_suites: ["general-tests"],
+}
diff --git a/utils/reflector/Android.bp b/utils/reflector/Android.bp
new file mode 100644
index 0000000..800776d
--- /dev/null
+++ b/utils/reflector/Android.bp
@@ -0,0 +1,42 @@
+//#############################################
+// Compile Robolectric utils
+//#############################################
+
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "external_robolectric_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ default_applicable_licenses: ["external_robolectric_license"],
+}
+
+java_library_host {
+ name: "Robolectric_utils_reflector_upstream",
+ static_libs: [
+ "Robolectric_utils_upstream",
+ "asm-9.2",
+ "asm-commons-9.2",
+ "asm-tree-9.2",
+ "asm-util-9.2",
+ ],
+ srcs: ["src/main/java/**/*.java"],
+}
+
+//#############################################
+// Compile Robolectric utils tests
+//#############################################
+
+java_test_host {
+ name: "Robolectric_utils_reflector_tests_upstream",
+ srcs: ["src/test/java/**/*.java"],
+ static_libs: [
+ "Robolectric_utils_reflector_upstream",
+ "Robolectric_shadowapi_upstream",
+ "hamcrest",
+ "guava",
+ "junit",
+ "truth-prebuilt",
+ ],
+ test_suites: ["general-tests"],
+}