// Copyright (C) 2018 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 "bootable_recovery_license" // to get the below license kinds: // SPDX-license-identifier-Apache-2.0 default_applicable_licenses: ["bootable_recovery_license"], } cc_defaults { name: "recovery_test_defaults", defaults: [ "recovery_defaults", ], include_dirs: [ "bootable/recovery", ], shared_libs: [ "libbase", "libcrypto", "libcutils", "liblog", "libpng", "libprocessgroup", "libselinux", "libziparchive", ], target: { android: { shared_libs: [ "libutils", "libvndksupport", ], }, host: { static_libs: [ "libutils", ], }, }, } // libapplypatch, libapplypatch_modes libapplypatch_static_libs = [ "libapplypatch_modes", "libapplypatch", "libedify", "libotautil", "libbsdiff", "libbspatch", "libdivsufsort", "libdivsufsort64", "libutils", "libbase", "libbrotli", "libbz", "libz_stable", "libziparchive", ] // librecovery_defaults uses many shared libs that we want to avoid using in tests (e.g. we don't // have 32-bit android.hardware.health@2.0.so or libbootloader_message.so on marlin). librecovery_static_libs = [ "librecovery", "librecovery_fastboot", "libinstall", "librecovery_ui", "libminui", "libfusesideload", "libbootloader_message", "libotautil", "libhealthhalutils", "libvintf", "android.hardware.health@2.0", "android.hardware.health@1.0", "libext4_utils", "libfs_mgr", "libhidl-gen-utils", "libhidlbase", "liblp", "libtinyxml2", "libc++fs", ] // recovery image for unittests. // ======================================================== genrule { name: "recovery_image", cmd: "cat $(location testdata/recovery_head) <(cat $(location testdata/recovery_body) | gzip) $(location testdata/recovery_tail) > $(out)", srcs: [ "testdata/recovery_head", "testdata/recovery_body", "testdata/recovery_tail", ], out: [ "testdata/recovery.img", ], } cc_test { name: "recovery_unit_test", isolated: true, require_root: true, defaults: [ "recovery_test_defaults", "libupdater_defaults", "libupdater_device_defaults", ], test_suites: ["device-tests"], tidy_timeout_srcs: [ "unit/commands_test.cpp", ], srcs: [ "unit/*.cpp", ], shared_libs: [ "libbinder_ndk", ], static_libs: libapplypatch_static_libs + librecovery_static_libs + [ "android.hardware.health-translate-ndk", "android.hardware.health-V3-ndk", "libhealthshim", "librecovery_ui", "libfusesideload", "libminui", "librecovery_utils", "libotautil", "libupdater_device", "libupdater_core", "libupdate_verifier", "libprotobuf-cpp-lite", ], header_libs: [ "libgtest_prod_headers", ], data: [ "testdata/*", ":recovery_image", ":res-testdata", ], } cc_test { name: "recovery_manual_test", isolated: true, defaults: [ "recovery_test_defaults", ], test_suites: ["device-tests"], srcs: [ "manual/recovery_test.cpp", ], } cc_test_host { name: "recovery_host_test", isolated: true, defaults: [ "recovery_test_defaults", "libupdater_defaults", ], tidy_timeout_srcs: [ "unit/host/imgdiff_test.cpp", ], srcs: [ "unit/host/*", ], static_libs: [ "libupdater_host", "libupdater_core", "libimgdiff", "libbsdiff", "libdivsufsort64", "libdivsufsort", "libfstab", "libc++fs", ], test_suites: ["general-tests"], test_config: "RecoveryHostTest.xml", data: ["testdata/*"], target: { darwin: { // libapplypatch in "libupdater_defaults" is not available on the Mac. enabled: false, }, }, } cc_fuzz { name: "libinstall_verify_package_fuzzer", defaults: [ "recovery_test_defaults", ], srcs: ["fuzz/verify_package_fuzzer.cpp"], corpus: [ "testdata/otasigned*.zip", ], static_libs: [ "libotautil", "libinstall", "librecovery_ui", "libminui", ], }