tests: Move to Android.bp.

Also separate libupdater_defaults out to be shareable.

It turns out the `data` property in `cc_test` doesn't follow symlinks as
LOCAL_TEST_DATA does in Android.mk. This CL creates a filegroup in
top-level Android.bp in order to pick up the testdata for ResourcesTest.

Test: `mmma -j bootable/recovery` with aosp_marlin-userdebug
Test: Run recovery_{unit,component,manual}_test on marlin.
Test: Run recovery_host_test.
Change-Id: I4532ab25aeb83c0b0baa8051d5fe34ba7b910a35
This commit is contained in:
Tao Bao 2018-07-24 15:34:39 -07:00
parent 97de9c3d3e
commit ef5e38fef0
11 changed files with 253 additions and 252 deletions

View file

@ -291,3 +291,11 @@ cc_binary {
"recovery-refresh.rc",
],
}
filegroup {
name: "res-testdata",
srcs: [
"res-*/images/*_text.png",
],
}

View file

@ -80,5 +80,4 @@ endif
include $(BUILD_PHONY_PACKAGE)
include \
$(LOCAL_PATH)/tests/Android.mk \
$(LOCAL_PATH)/updater/Android.mk \

218
tests/Android.bp Normal file
View file

@ -0,0 +1,218 @@
// 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.
cc_defaults {
name: "recovery_test_defaults",
defaults: [
"recovery_defaults",
],
include_dirs: [
"bootable/recovery",
],
shared_libs: [
"libbase",
"libcrypto",
"libcutils",
"liblog",
"libpng",
"libselinux",
"libz",
"libziparchive",
],
target: {
android: {
shared_libs: [
"libutils",
],
},
host: {
static_libs: [
"libutils",
],
}
},
}
// libapplypatch, libapplypatch_modes, libimgdiff, libimgpatch
libapplypatch_static_libs = [
"libapplypatch_modes",
"libapplypatch",
"libedify",
"libimgdiff",
"libimgpatch",
"libotafault",
"libotautil",
"libbsdiff",
"libbspatch",
"libdivsufsort",
"libdivsufsort64",
"libutils",
"libbase",
"libbrotli",
"libbz",
"libcrypto",
"libz",
"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",
"libminui",
"libverifier",
"libotautil",
"libhealthhalutils",
"libvintf_recovery",
"libvintf",
"android.hardware.health@2.0",
"android.hardware.health@1.0",
"libbootloader_message",
"libext4_utils",
"libfs_mgr",
"libfusesideload",
"libhidl-gen-utils",
"libhidlbase",
"libhidltransport",
"libhwbinder",
"libvndksupport",
"libtinyxml2",
]
cc_test {
name: "recovery_unit_test",
defaults: [
"recovery_test_defaults",
],
test_suites: ["device-tests"],
srcs: [
"unit/asn1_decoder_test.cpp",
"unit/applypatch_test.cpp",
"unit/commands_test.cpp",
"unit/dirutil_test.cpp",
"unit/locale_test.cpp",
"unit/rangeset_test.cpp",
"unit/screen_ui_test.cpp",
"unit/sysutil_test.cpp",
"unit/zip_test.cpp",
],
static_libs: libapplypatch_static_libs + [
"librecovery_ui",
"libminui",
"libverifier",
"libotautil",
"libupdater",
"libgtest_prod",
"libBionicGtestMain",
],
data: ["testdata/*"],
}
cc_test {
name: "recovery_manual_test",
defaults: [
"recovery_test_defaults",
],
test_suites: ["device-tests"],
srcs: [
"manual/recovery_test.cpp",
],
static_libs: [
"libBionicGtestMain",
],
}
cc_test {
name: "recovery_component_test",
defaults: [
"recovery_test_defaults",
"libupdater_defaults",
],
test_suites: ["device-tests"],
srcs: [
"component/bootloader_message_test.cpp",
"component/edify_test.cpp",
"component/imgdiff_test.cpp",
"component/install_test.cpp",
"component/resources_test.cpp",
"component/sideload_test.cpp",
"component/uncrypt_test.cpp",
"component/updater_test.cpp",
"component/update_verifier_test.cpp",
"component/verifier_test.cpp",
],
static_libs: libapplypatch_static_libs + librecovery_static_libs + [
"libupdater",
"libupdate_verifier",
"libprotobuf-cpp-lite",
"libBionicGtestMain",
],
data: [
"testdata/*",
":res-testdata",
],
}
cc_test_host {
name: "recovery_host_test",
defaults: [
"recovery_test_defaults",
],
srcs: [
"component/imgdiff_test.cpp",
],
static_libs: [
"libimgdiff",
"libimgpatch",
"libotautil",
"libbsdiff",
"libbspatch",
"libziparchive",
"libutils",
"libcrypto",
"libbrotli",
"libbz",
"libdivsufsort64",
"libdivsufsort",
"libz",
"libBionicGtestMain",
],
data: ["testdata/*"],
}

View file

@ -1,227 +0,0 @@
#
# Copyright (C) 2014 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.
#
LOCAL_PATH := $(call my-dir)
# libapplypatch, libapplypatch_modes, libimgdiff, libimgpatch.
libapplypatch_static_libraries := \
libapplypatch_modes \
libapplypatch \
libedify \
libimgdiff \
libimgpatch \
libotafault \
libotautil \
libbsdiff \
libbspatch \
libdivsufsort \
libdivsufsort64 \
libutils \
libbase \
libbrotli \
libbz \
libcrypto \
libz \
libziparchive \
# Unit tests
include $(CLEAR_VARS)
LOCAL_CFLAGS := -Wall -Werror
LOCAL_MODULE := recovery_unit_test
LOCAL_COMPATIBILITY_SUITE := device-tests
LOCAL_STATIC_LIBRARIES := \
$(libapplypatch_static_libraries) \
libverifier \
librecovery_ui \
libminui \
libotautil \
libupdater \
libgtest_prod \
libpng \
libziparchive \
libutils \
libz \
libselinux \
libbase \
libBionicGtestMain
LOCAL_SRC_FILES := \
unit/applypatch_test.cpp \
unit/asn1_decoder_test.cpp \
unit/commands_test.cpp \
unit/dirutil_test.cpp \
unit/locale_test.cpp \
unit/rangeset_test.cpp \
unit/screen_ui_test.cpp \
unit/sysutil_test.cpp \
unit/zip_test.cpp
LOCAL_C_INCLUDES := bootable/recovery
LOCAL_SHARED_LIBRARIES := liblog
LOCAL_TEST_DATA := \
$(call find-test-data-in-subdirs, $(LOCAL_PATH), "*", testdata)
include $(BUILD_NATIVE_TEST)
# Manual tests
include $(CLEAR_VARS)
LOCAL_CFLAGS := -Wall -Werror
LOCAL_MODULE := recovery_manual_test
LOCAL_STATIC_LIBRARIES := \
libbase \
libBionicGtestMain
LOCAL_SRC_FILES := manual/recovery_test.cpp
LOCAL_SHARED_LIBRARIES := \
liblog
include $(BUILD_NATIVE_TEST)
# Component tests
include $(CLEAR_VARS)
LOCAL_CFLAGS := \
-Wall \
-Werror \
-D_FILE_OFFSET_BITS=64
LOCAL_MODULE := recovery_component_test
LOCAL_COMPATIBILITY_SUITE := device-tests
LOCAL_C_INCLUDES := bootable/recovery
LOCAL_SRC_FILES := \
component/applypatch_modes_test.cpp \
component/bootloader_message_test.cpp \
component/edify_test.cpp \
component/imgdiff_test.cpp \
component/install_test.cpp \
component/resources_test.cpp \
component/sideload_test.cpp \
component/uncrypt_test.cpp \
component/updater_test.cpp \
component/update_verifier_test.cpp \
component/verifier_test.cpp
LOCAL_SHARED_LIBRARIES := \
libhidlbase \
libprotobuf-cpp-lite
tune2fs_static_libraries := \
libext2_com_err \
libext2_blkid \
libext2_quota \
libext2_uuid \
libext2_e2p \
libext2fs
libupdater_static_libraries := \
libupdater \
libapplypatch \
libbootloader_message \
libbspatch \
libedify \
libotafault \
libotautil \
libext4_utils \
libfec \
libfec_rs \
libverity_tree \
libfs_mgr \
libgtest_prod \
liblog \
libselinux \
libsparse \
libsquashfs_utils \
libbrotli \
libbz \
libziparchive \
libz \
libbase \
libcrypto \
libcrypto_utils \
libcutils \
libutils \
libtune2fs \
$(tune2fs_static_libraries)
librecovery_static_libraries := \
librecovery \
libbootloader_message \
libfusesideload \
librecovery_ui_default \
librecovery_ui \
libminui \
libverifier \
libotautil \
libcrypto_utils \
libcrypto \
libext4_utils \
libfs_mgr \
libpng \
libsparse \
libvintf_recovery \
libvintf \
libhidl-gen-utils \
libtinyxml2 \
libziparchive \
libbase \
libutils \
libcutils \
liblog \
libselinux \
libz \
libupdate_verifier_static_libraries := \
libupdate_verifier \
LOCAL_STATIC_LIBRARIES := \
$(libapplypatch_static_libraries) \
$(librecovery_static_libraries) \
$(libupdate_verifier_static_libraries) \
$(libupdater_static_libraries) \
libBionicGtestMain
LOCAL_TEST_DATA := \
$(call find-test-data-in-subdirs, $(LOCAL_PATH), "*", testdata) \
$(call find-test-data-in-subdirs, $(LOCAL_PATH), "*_text.png", res-testdata)
include $(BUILD_NATIVE_TEST)
# Host tests
include $(CLEAR_VARS)
LOCAL_CFLAGS := -Wall -Werror
LOCAL_MODULE := recovery_host_test
LOCAL_MODULE_HOST_OS := linux
LOCAL_C_INCLUDES := bootable/recovery
LOCAL_SRC_FILES := \
component/imgdiff_test.cpp
LOCAL_STATIC_LIBRARIES := \
libimgdiff \
libimgpatch \
libotautil \
libbsdiff \
libbspatch \
libziparchive \
libutils \
libbase \
libcrypto \
libbrotli \
libbz \
libdivsufsort64 \
libdivsufsort \
libz \
libBionicGtestMain
LOCAL_SHARED_LIBRARIES := \
liblog
LOCAL_TEST_DATA := \
$(call find-test-data-in-subdirs, $(LOCAL_PATH), "*", testdata)
include $(BUILD_HOST_NATIVE_TEST)

View file

@ -33,9 +33,8 @@
static const std::string kLocale = "zu";
static const std::vector<std::string> kResourceImagesDirs{
"res-testdata/res-mdpi/images/", "res-testdata/res-hdpi/images/",
"res-testdata/res-xhdpi/images/", "res-testdata/res-xxhdpi/images/",
"res-testdata/res-xxxhdpi/images/",
"res-mdpi/images/", "res-hdpi/images/", "res-xhdpi/images/",
"res-xxhdpi/images/", "res-xxxhdpi/images/",
};
static int png_filter(const dirent* de) {

View file

@ -1 +0,0 @@
../../res-hdpi

View file

@ -1 +0,0 @@
../../res-mdpi

View file

@ -1 +0,0 @@
../../res-xhdpi

View file

@ -1 +0,0 @@
../../res-xxhdpi

View file

@ -1 +0,0 @@
../../res-xxxhdpi

View file

@ -12,27 +12,13 @@
// See the License for the specific language governing permissions and
// limitations under the License.
cc_library_static {
name: "libupdater",
cc_defaults {
name: "libupdater_defaults",
defaults: [
"recovery_defaults",
],
srcs: [
"blockimg.cpp",
"commands.cpp",
"install.cpp",
],
include_dirs: [
"external/e2fsprogs/misc",
],
export_include_dirs: [
"include",
],
static_libs: [
"libapplypatch",
"libbootloader_message",
@ -69,3 +55,26 @@ cc_library_static {
"libext2fs",
],
}
cc_library_static {
name: "libupdater",
defaults: [
"recovery_defaults",
"libupdater_defaults",
],
srcs: [
"blockimg.cpp",
"commands.cpp",
"install.cpp",
],
include_dirs: [
"external/e2fsprogs/misc",
],
export_include_dirs: [
"include",
],
}