// // Copyright (C) 2017 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 { // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "art_license" // to get the below license kinds: // SPDX-license-identifier-Apache-2.0 default_applicable_licenses: ["art_license"], } // A native library that goes into /system or /system_ext and that depends on // a non-public library that is linked from the system namespace. cc_library { name: "libsystem_testlib", min_sdk_version: "31", stl: "libc++_static", shared_libs: ["liblog"], // It's difficult to add a shared_lib dependency on a non-public library // here, so it dlopens one instead. srcs: ["libsystem_testlib.cc"], } // A native library that goes into /product. cc_library { name: "libproduct_testlib", min_sdk_version: "31", stl: "none", srcs: [], } // A native library that goes into /vendor. cc_library { name: "libvendor_testlib", min_sdk_version: "31", stl: "none", srcs: [], } // This app is just an intermediate container to be able to include the .so // library in the host test. It's not actually installed or started. android_test_helper_app { name: "library_container_app", defaults: ["art_module_source_build_java_defaults"], min_sdk_version: "31", manifest: "library_container_app_manifest.xml", compile_multilib: "both", jni_libs: [ "libsystem_testlib", "libproduct_testlib", "libvendor_testlib", ], } java_library { name: "loadlibrarytest_test_utils", sdk_version: "31", static_libs: [ "androidx.test.ext.junit", "androidx.test.ext.truth", ], srcs: ["src/android/test/lib/TestUtils.java"], } // Test fixture that represents a shared library in /system/framework. java_library { name: "libnativeloader_system_shared_lib", sdk_version: "31", installable: true, srcs: ["src/android/test/systemsharedlib/SystemSharedLib.java"], } // Test fixture that represents a shared library in /system_ext/framework. java_library { name: "libnativeloader_system_ext_shared_lib", sdk_version: "31", installable: true, srcs: ["src/android/test/systemextsharedlib/SystemExtSharedLib.java"], } // Test fixture that represents a shared library in /product/framework. java_library { name: "libnativeloader_product_shared_lib", product_specific: true, sdk_version: "31", installable: true, srcs: ["src/android/test/productsharedlib/ProductSharedLib.java"], } // Test fixture that represents a shared library in /vendor/framework. java_library { name: "libnativeloader_vendor_shared_lib", vendor: true, sdk_version: "31", installable: true, srcs: ["src/android/test/vendorsharedlib/VendorSharedLib.java"], } java_defaults { name: "loadlibrarytest_app_defaults", defaults: ["art_module_source_build_java_defaults"], sdk_version: "31", static_libs: [ "androidx.test.ext.junit", "androidx.test.rules", "loadlibrarytest_test_utils", ], libs: [ "libnativeloader_system_shared_lib", "libnativeloader_system_ext_shared_lib", "libnativeloader_product_shared_lib", "libnativeloader_vendor_shared_lib", ], } android_test_helper_app { name: "loadlibrarytest_system_priv_app", defaults: ["loadlibrarytest_app_defaults"], manifest: "loadlibrarytest_system_priv_app_manifest.xml", // /system/priv-app currently reuses the same test as /system/app. srcs: ["src/android/test/app/SystemAppTest.java"], } android_test_helper_app { name: "loadlibrarytest_system_app", defaults: ["loadlibrarytest_app_defaults"], manifest: "loadlibrarytest_system_app_manifest.xml", srcs: ["src/android/test/app/SystemAppTest.java"], } android_test_helper_app { name: "loadlibrarytest_system_ext_app", defaults: ["loadlibrarytest_app_defaults"], system_ext_specific: true, manifest: "loadlibrarytest_system_ext_app_manifest.xml", // /system_ext should behave the same as /system, so use the same test class there. srcs: ["src/android/test/app/SystemAppTest.java"], } android_test_helper_app { name: "loadlibrarytest_product_app", defaults: ["loadlibrarytest_app_defaults"], product_specific: true, manifest: "loadlibrarytest_product_app_manifest.xml", srcs: ["src/android/test/app/ProductAppTest.java"], } android_test_helper_app { name: "loadlibrarytest_vendor_app", defaults: ["loadlibrarytest_app_defaults"], vendor: true, manifest: "loadlibrarytest_vendor_app_manifest.xml", srcs: ["src/android/test/app/VendorAppTest.java"], } // A normal app installed in /data. android_test_helper_app { name: "loadlibrarytest_data_app", defaults: ["loadlibrarytest_app_defaults"], manifest: "loadlibrarytest_data_app_manifest.xml", srcs: ["src/android/test/app/DataAppTest.java"], } java_test_host { name: "libnativeloader_e2e_tests", defaults: ["art_module_source_build_java_defaults"], srcs: ["src/android/test/hostside/*.java"], libs: [ "compatibility-tradefed", "tradefed", ], data: [ ":library_container_app", ":libnativeloader_system_shared_lib", ":libnativeloader_system_ext_shared_lib", ":libnativeloader_product_shared_lib", ":libnativeloader_vendor_shared_lib", ":loadlibrarytest_system_priv_app", ":loadlibrarytest_system_app", ":loadlibrarytest_system_ext_app", ":loadlibrarytest_product_app", ":loadlibrarytest_vendor_app", ":loadlibrarytest_data_app", ], test_config: "libnativeloader_e2e_tests.xml", test_suites: ["general-tests"], }