1// Copyright (C) 2018 The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15package { 16 // See: http://go/android-license-faq 17 // A large-scale-change added 'default_applicable_licenses' to import 18 // all of the 'license_kinds' from "bootable_recovery_license" 19 // to get the below license kinds: 20 // SPDX-license-identifier-Apache-2.0 21 default_applicable_licenses: ["bootable_recovery_license"], 22} 23 24cc_defaults { 25 name: "recovery_test_defaults", 26 27 defaults: [ 28 "recovery_defaults", 29 ], 30 31 include_dirs: [ 32 "bootable/recovery", 33 ], 34 35 shared_libs: [ 36 "libbase", 37 "libcrypto", 38 "libcutils", 39 "liblog", 40 "libpng", 41 "libprocessgroup", 42 "libselinux", 43 "libziparchive", 44 ], 45 46 target: { 47 android: { 48 shared_libs: [ 49 "libutils", 50 "libvndksupport", 51 ], 52 }, 53 54 host: { 55 static_libs: [ 56 "libutils", 57 ], 58 }, 59 }, 60} 61 62// libapplypatch, libapplypatch_modes 63libapplypatch_static_libs = [ 64 "libapplypatch_modes", 65 "libapplypatch", 66 "libedify", 67 "libotautil", 68 "libbsdiff", 69 "libbspatch", 70 "libdivsufsort", 71 "libdivsufsort64", 72 "libutils", 73 "libbase", 74 "libbrotli", 75 "libbz", 76 "libz_stable", 77 "libziparchive", 78] 79 80// librecovery_defaults uses many shared libs that we want to avoid using in tests (e.g. we don't 81// have 32-bit android.hardware.health@2.0.so or libbootloader_message.so on marlin). 82librecovery_static_libs = [ 83 "librecovery", 84 "librecovery_fastboot", 85 "libinstall", 86 "librecovery_ui", 87 "libminui", 88 "libfusesideload", 89 "libbootloader_message", 90 "libotautil", 91 92 "libhealthhalutils", 93 "libvintf", 94 95 "android.hardware.health@2.0", 96 "android.hardware.health@1.0", 97 "libext4_utils", 98 "libfs_mgr", 99 "libhidl-gen-utils", 100 "libhidlbase", 101 "liblp", 102 "libtinyxml2", 103 "libc++fs", 104] 105 106// recovery image for unittests. 107// ======================================================== 108genrule { 109 name: "recovery_image", 110 cmd: "cat $(location testdata/recovery_head) <(cat $(location testdata/recovery_body) | $(location minigzip)) $(location testdata/recovery_tail) > $(out)", 111 srcs: [ 112 "testdata/recovery_head", 113 "testdata/recovery_body", 114 "testdata/recovery_tail", 115 ], 116 tools: [ 117 "minigzip", 118 ], 119 out: [ 120 "testdata/recovery.img", 121 ], 122} 123 124cc_test { 125 name: "recovery_unit_test", 126 isolated: true, 127 require_root: true, 128 129 defaults: [ 130 "recovery_test_defaults", 131 "libupdater_defaults", 132 "libupdater_device_defaults", 133 ], 134 135 test_suites: ["device-tests"], 136 137 srcs: [ 138 "unit/*.cpp", 139 ], 140 141 static_libs: libapplypatch_static_libs + librecovery_static_libs + [ 142 "librecovery_ui", 143 "libfusesideload", 144 "libminui", 145 "librecovery_utils", 146 "libotautil", 147 "libupdater_device", 148 "libupdater_core", 149 "libupdate_verifier", 150 151 "libprotobuf-cpp-lite", 152 ], 153 header_libs: [ 154 "libgtest_prod_headers", 155 ], 156 157 data: [ 158 "testdata/*", 159 ":recovery_image", 160 ":res-testdata", 161 ], 162} 163 164cc_test { 165 name: "recovery_manual_test", 166 isolated: true, 167 168 defaults: [ 169 "recovery_test_defaults", 170 ], 171 172 test_suites: ["device-tests"], 173 174 srcs: [ 175 "manual/recovery_test.cpp", 176 ], 177} 178 179cc_test_host { 180 name: "recovery_host_test", 181 isolated: true, 182 183 defaults: [ 184 "recovery_test_defaults", 185 "libupdater_defaults", 186 ], 187 188 srcs: [ 189 "unit/host/*", 190 ], 191 192 static_libs: [ 193 "libupdater_host", 194 "libupdater_core", 195 "libimgdiff", 196 "libbsdiff", 197 "libdivsufsort64", 198 "libdivsufsort", 199 "libfstab", 200 "libc++fs", 201 ], 202 203 test_suites: ["general-tests"], 204 205 data: ["testdata/*"], 206 207 target: { 208 darwin: { 209 // libapplypatch in "libupdater_defaults" is not available on the Mac. 210 enabled: false, 211 }, 212 }, 213} 214 215cc_fuzz { 216 name: "libinstall_verify_package_fuzzer", 217 defaults: [ 218 "recovery_test_defaults", 219 ], 220 221 srcs: ["fuzz/verify_package_fuzzer.cpp"], 222 223 corpus: [ 224 "testdata/otasigned*.zip", 225 ], 226 227 static_libs: [ 228 "libotautil", 229 "libinstall", 230 "librecovery_ui", 231 "libminui", 232 ], 233} 234