1*795d594fSAndroid Build Coastguard Worker// 2*795d594fSAndroid Build Coastguard Worker// Copyright (C) 2017 The Android Open Source Project 3*795d594fSAndroid Build Coastguard Worker// 4*795d594fSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 5*795d594fSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 6*795d594fSAndroid Build Coastguard Worker// You may obtain a copy of the License at 7*795d594fSAndroid Build Coastguard Worker// 8*795d594fSAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 9*795d594fSAndroid Build Coastguard Worker// 10*795d594fSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 11*795d594fSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 12*795d594fSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*795d594fSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 14*795d594fSAndroid Build Coastguard Worker// limitations under the License. 15*795d594fSAndroid Build Coastguard Worker// 16*795d594fSAndroid Build Coastguard Worker 17*795d594fSAndroid Build Coastguard Workerpackage { 18*795d594fSAndroid Build Coastguard Worker // See: http://go/android-license-faq 19*795d594fSAndroid Build Coastguard Worker // A large-scale-change added 'default_applicable_licenses' to import 20*795d594fSAndroid Build Coastguard Worker // all of the 'license_kinds' from "art_license" 21*795d594fSAndroid Build Coastguard Worker // to get the below license kinds: 22*795d594fSAndroid Build Coastguard Worker // SPDX-license-identifier-Apache-2.0 23*795d594fSAndroid Build Coastguard Worker default_applicable_licenses: ["art_license"], 24*795d594fSAndroid Build Coastguard Worker} 25*795d594fSAndroid Build Coastguard Worker 26*795d594fSAndroid Build Coastguard Worker// A native library that goes into /system or /system_ext and that depends on 27*795d594fSAndroid Build Coastguard Worker// a non-public library that is linked from the system namespace. 28*795d594fSAndroid Build Coastguard Workercc_library { 29*795d594fSAndroid Build Coastguard Worker name: "libsystem_testlib", 30*795d594fSAndroid Build Coastguard Worker min_sdk_version: "31", 31*795d594fSAndroid Build Coastguard Worker stl: "libc++_static", 32*795d594fSAndroid Build Coastguard Worker shared_libs: ["liblog"], 33*795d594fSAndroid Build Coastguard Worker // It's difficult to add a shared_lib dependency on a non-public library 34*795d594fSAndroid Build Coastguard Worker // here, so it dlopens one instead. 35*795d594fSAndroid Build Coastguard Worker srcs: ["libsystem_testlib.cc"], 36*795d594fSAndroid Build Coastguard Worker} 37*795d594fSAndroid Build Coastguard Worker 38*795d594fSAndroid Build Coastguard Worker// A native library that goes into /product. 39*795d594fSAndroid Build Coastguard Workercc_library { 40*795d594fSAndroid Build Coastguard Worker name: "libproduct_testlib", 41*795d594fSAndroid Build Coastguard Worker min_sdk_version: "31", 42*795d594fSAndroid Build Coastguard Worker stl: "none", 43*795d594fSAndroid Build Coastguard Worker srcs: [], 44*795d594fSAndroid Build Coastguard Worker} 45*795d594fSAndroid Build Coastguard Worker 46*795d594fSAndroid Build Coastguard Worker// A native library that goes into /vendor. 47*795d594fSAndroid Build Coastguard Workercc_library { 48*795d594fSAndroid Build Coastguard Worker name: "libvendor_testlib", 49*795d594fSAndroid Build Coastguard Worker min_sdk_version: "31", 50*795d594fSAndroid Build Coastguard Worker stl: "none", 51*795d594fSAndroid Build Coastguard Worker srcs: [], 52*795d594fSAndroid Build Coastguard Worker} 53*795d594fSAndroid Build Coastguard Worker 54*795d594fSAndroid Build Coastguard Worker// This app is just an intermediate container to be able to include the .so 55*795d594fSAndroid Build Coastguard Worker// library in the host test. It's not actually installed or started. 56*795d594fSAndroid Build Coastguard Workerandroid_test_helper_app { 57*795d594fSAndroid Build Coastguard Worker name: "library_container_app", 58*795d594fSAndroid Build Coastguard Worker min_sdk_version: "31", 59*795d594fSAndroid Build Coastguard Worker manifest: "library_container_app_manifest.xml", 60*795d594fSAndroid Build Coastguard Worker compile_multilib: "both", 61*795d594fSAndroid Build Coastguard Worker jni_libs: [ 62*795d594fSAndroid Build Coastguard Worker "libsystem_testlib", 63*795d594fSAndroid Build Coastguard Worker "libproduct_testlib", 64*795d594fSAndroid Build Coastguard Worker "libvendor_testlib", 65*795d594fSAndroid Build Coastguard Worker ], 66*795d594fSAndroid Build Coastguard Worker} 67*795d594fSAndroid Build Coastguard Worker 68*795d594fSAndroid Build Coastguard Worker// Test fixture that represents a shared library in /system/framework. 69*795d594fSAndroid Build Coastguard Workerjava_library { 70*795d594fSAndroid Build Coastguard Worker name: "libnativeloader_system_shared_lib", 71*795d594fSAndroid Build Coastguard Worker sdk_version: "31", 72*795d594fSAndroid Build Coastguard Worker installable: true, 73*795d594fSAndroid Build Coastguard Worker srcs: ["src/android/test/systemsharedlib/SystemSharedLib.java"], 74*795d594fSAndroid Build Coastguard Worker} 75*795d594fSAndroid Build Coastguard Worker 76*795d594fSAndroid Build Coastguard Worker// Test fixture that represents a shared library in /system_ext/framework. 77*795d594fSAndroid Build Coastguard Workerjava_library { 78*795d594fSAndroid Build Coastguard Worker name: "libnativeloader_system_ext_shared_lib", 79*795d594fSAndroid Build Coastguard Worker sdk_version: "31", 80*795d594fSAndroid Build Coastguard Worker installable: true, 81*795d594fSAndroid Build Coastguard Worker srcs: ["src/android/test/systemextsharedlib/SystemExtSharedLib.java"], 82*795d594fSAndroid Build Coastguard Worker} 83*795d594fSAndroid Build Coastguard Worker 84*795d594fSAndroid Build Coastguard Worker// Test fixture that represents a shared library in /product/framework. 85*795d594fSAndroid Build Coastguard Workerjava_library { 86*795d594fSAndroid Build Coastguard Worker name: "libnativeloader_product_shared_lib", 87*795d594fSAndroid Build Coastguard Worker product_specific: true, 88*795d594fSAndroid Build Coastguard Worker sdk_version: "31", 89*795d594fSAndroid Build Coastguard Worker installable: true, 90*795d594fSAndroid Build Coastguard Worker srcs: ["src/android/test/productsharedlib/ProductSharedLib.java"], 91*795d594fSAndroid Build Coastguard Worker} 92*795d594fSAndroid Build Coastguard Worker 93*795d594fSAndroid Build Coastguard Worker// Test fixture that represents a shared library in /vendor/framework. 94*795d594fSAndroid Build Coastguard Workerjava_library { 95*795d594fSAndroid Build Coastguard Worker name: "libnativeloader_vendor_shared_lib", 96*795d594fSAndroid Build Coastguard Worker vendor: true, 97*795d594fSAndroid Build Coastguard Worker sdk_version: "31", 98*795d594fSAndroid Build Coastguard Worker installable: true, 99*795d594fSAndroid Build Coastguard Worker srcs: ["src/android/test/vendorsharedlib/VendorSharedLib.java"], 100*795d594fSAndroid Build Coastguard Worker} 101*795d594fSAndroid Build Coastguard Worker 102*795d594fSAndroid Build Coastguard Workerjava_library { 103*795d594fSAndroid Build Coastguard Worker name: "loadlibrarytest_testlib", 104*795d594fSAndroid Build Coastguard Worker sdk_version: "system_31", 105*795d594fSAndroid Build Coastguard Worker static_libs: [ 106*795d594fSAndroid Build Coastguard Worker "androidx.test.ext.junit", 107*795d594fSAndroid Build Coastguard Worker "androidx.test.ext.truth", 108*795d594fSAndroid Build Coastguard Worker "androidx.test.rules", 109*795d594fSAndroid Build Coastguard Worker "modules-utils-build_system", 110*795d594fSAndroid Build Coastguard Worker ], 111*795d594fSAndroid Build Coastguard Worker libs: [ 112*795d594fSAndroid Build Coastguard Worker "libnativeloader_system_shared_lib", 113*795d594fSAndroid Build Coastguard Worker "libnativeloader_system_ext_shared_lib", 114*795d594fSAndroid Build Coastguard Worker "libnativeloader_product_shared_lib", 115*795d594fSAndroid Build Coastguard Worker "libnativeloader_vendor_shared_lib", 116*795d594fSAndroid Build Coastguard Worker ], 117*795d594fSAndroid Build Coastguard Worker srcs: ["src/android/test/lib/*.java"], 118*795d594fSAndroid Build Coastguard Worker} 119*795d594fSAndroid Build Coastguard Worker 120*795d594fSAndroid Build Coastguard Workerjava_defaults { 121*795d594fSAndroid Build Coastguard Worker name: "loadlibrarytest_app_defaults", 122*795d594fSAndroid Build Coastguard Worker min_sdk_version: "31", 123*795d594fSAndroid Build Coastguard Worker // Don't let targetSdkVersion become the latest codename, because 124*795d594fSAndroid Build Coastguard Worker // PackageManager refuses to install the app on released platform images 125*795d594fSAndroid Build Coastguard Worker // then, which makes it fail in MTS runs. Otoh, we don't want app compat 126*795d594fSAndroid Build Coastguard Worker // measures getting enabled in these tests, so set some high number. 127*795d594fSAndroid Build Coastguard Worker target_sdk_version: "9999", 128*795d594fSAndroid Build Coastguard Worker static_libs: [ 129*795d594fSAndroid Build Coastguard Worker "loadlibrarytest_testlib", 130*795d594fSAndroid Build Coastguard Worker ], 131*795d594fSAndroid Build Coastguard Worker libs: [ 132*795d594fSAndroid Build Coastguard Worker "libnativeloader_system_shared_lib", 133*795d594fSAndroid Build Coastguard Worker "libnativeloader_system_ext_shared_lib", 134*795d594fSAndroid Build Coastguard Worker "libnativeloader_product_shared_lib", 135*795d594fSAndroid Build Coastguard Worker "libnativeloader_vendor_shared_lib", 136*795d594fSAndroid Build Coastguard Worker ], 137*795d594fSAndroid Build Coastguard Worker} 138*795d594fSAndroid Build Coastguard Worker 139*795d594fSAndroid Build Coastguard Workerandroid_test_helper_app { 140*795d594fSAndroid Build Coastguard Worker name: "loadlibrarytest_system_priv_app", 141*795d594fSAndroid Build Coastguard Worker defaults: ["loadlibrarytest_app_defaults"], 142*795d594fSAndroid Build Coastguard Worker manifest: "loadlibrarytest_system_priv_app_manifest.xml", 143*795d594fSAndroid Build Coastguard Worker // /system/priv-app currently reuses the same test as /system/app. 144*795d594fSAndroid Build Coastguard Worker srcs: ["src/android/test/app/SystemAppTest.java"], 145*795d594fSAndroid Build Coastguard Worker} 146*795d594fSAndroid Build Coastguard Worker 147*795d594fSAndroid Build Coastguard Workerandroid_test_helper_app { 148*795d594fSAndroid Build Coastguard Worker name: "loadlibrarytest_system_app", 149*795d594fSAndroid Build Coastguard Worker defaults: ["loadlibrarytest_app_defaults"], 150*795d594fSAndroid Build Coastguard Worker manifest: "loadlibrarytest_system_app_manifest.xml", 151*795d594fSAndroid Build Coastguard Worker srcs: ["src/android/test/app/SystemAppTest.java"], 152*795d594fSAndroid Build Coastguard Worker} 153*795d594fSAndroid Build Coastguard Worker 154*795d594fSAndroid Build Coastguard Workerandroid_test_helper_app { 155*795d594fSAndroid Build Coastguard Worker name: "loadlibrarytest_system_ext_app", 156*795d594fSAndroid Build Coastguard Worker defaults: ["loadlibrarytest_app_defaults"], 157*795d594fSAndroid Build Coastguard Worker system_ext_specific: true, 158*795d594fSAndroid Build Coastguard Worker manifest: "loadlibrarytest_system_ext_app_manifest.xml", 159*795d594fSAndroid Build Coastguard Worker // /system_ext should behave the same as /system, so use the same test class there. 160*795d594fSAndroid Build Coastguard Worker srcs: ["src/android/test/app/SystemAppTest.java"], 161*795d594fSAndroid Build Coastguard Worker} 162*795d594fSAndroid Build Coastguard Worker 163*795d594fSAndroid Build Coastguard Workerandroid_test_helper_app { 164*795d594fSAndroid Build Coastguard Worker name: "loadlibrarytest_product_app", 165*795d594fSAndroid Build Coastguard Worker defaults: ["loadlibrarytest_app_defaults"], 166*795d594fSAndroid Build Coastguard Worker product_specific: true, 167*795d594fSAndroid Build Coastguard Worker manifest: "loadlibrarytest_product_app_manifest.xml", 168*795d594fSAndroid Build Coastguard Worker srcs: ["src/android/test/app/ProductAppTest.java"], 169*795d594fSAndroid Build Coastguard Worker} 170*795d594fSAndroid Build Coastguard Worker 171*795d594fSAndroid Build Coastguard Workerandroid_test_helper_app { 172*795d594fSAndroid Build Coastguard Worker name: "loadlibrarytest_vendor_app", 173*795d594fSAndroid Build Coastguard Worker defaults: ["loadlibrarytest_app_defaults"], 174*795d594fSAndroid Build Coastguard Worker vendor: true, 175*795d594fSAndroid Build Coastguard Worker manifest: "loadlibrarytest_vendor_app_manifest.xml", 176*795d594fSAndroid Build Coastguard Worker srcs: ["src/android/test/app/VendorAppTest.java"], 177*795d594fSAndroid Build Coastguard Worker} 178*795d594fSAndroid Build Coastguard Worker 179*795d594fSAndroid Build Coastguard Worker// A normal app installed in /data. 180*795d594fSAndroid Build Coastguard Workerandroid_test_helper_app { 181*795d594fSAndroid Build Coastguard Worker name: "loadlibrarytest_data_app", 182*795d594fSAndroid Build Coastguard Worker defaults: ["loadlibrarytest_app_defaults"], 183*795d594fSAndroid Build Coastguard Worker manifest: "loadlibrarytest_data_app_manifest.xml", 184*795d594fSAndroid Build Coastguard Worker srcs: ["src/android/test/app/DataAppTest.java"], 185*795d594fSAndroid Build Coastguard Worker} 186*795d594fSAndroid Build Coastguard Worker 187*795d594fSAndroid Build Coastguard Workerjava_test_host { 188*795d594fSAndroid Build Coastguard Worker name: "libnativeloader_e2e_tests", 189*795d594fSAndroid Build Coastguard Worker srcs: ["src/android/test/hostside/*.java"], 190*795d594fSAndroid Build Coastguard Worker libs: [ 191*795d594fSAndroid Build Coastguard Worker "compatibility-tradefed", 192*795d594fSAndroid Build Coastguard Worker "tradefed", 193*795d594fSAndroid Build Coastguard Worker ], 194*795d594fSAndroid Build Coastguard Worker device_common_data: [ 195*795d594fSAndroid Build Coastguard Worker ":library_container_app", 196*795d594fSAndroid Build Coastguard Worker ":libnativeloader_system_shared_lib", 197*795d594fSAndroid Build Coastguard Worker ":libnativeloader_system_ext_shared_lib", 198*795d594fSAndroid Build Coastguard Worker ":libnativeloader_product_shared_lib", 199*795d594fSAndroid Build Coastguard Worker ":libnativeloader_vendor_shared_lib", 200*795d594fSAndroid Build Coastguard Worker ":loadlibrarytest_system_priv_app", 201*795d594fSAndroid Build Coastguard Worker ":loadlibrarytest_system_app", 202*795d594fSAndroid Build Coastguard Worker ":loadlibrarytest_system_ext_app", 203*795d594fSAndroid Build Coastguard Worker ":loadlibrarytest_product_app", 204*795d594fSAndroid Build Coastguard Worker ":loadlibrarytest_vendor_app", 205*795d594fSAndroid Build Coastguard Worker ":loadlibrarytest_data_app", 206*795d594fSAndroid Build Coastguard Worker ], 207*795d594fSAndroid Build Coastguard Worker test_config: "libnativeloader_e2e_tests.xml", 208*795d594fSAndroid Build Coastguard Worker test_suites: [ 209*795d594fSAndroid Build Coastguard Worker "general-tests", 210*795d594fSAndroid Build Coastguard Worker "mts-art", 211*795d594fSAndroid Build Coastguard Worker ], 212*795d594fSAndroid Build Coastguard Worker} 213