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
diff --git a/Android.bp b/Android.bp
index e97f71d..53b74dc 100644
--- a/Android.bp
+++ b/Android.bp
@@ -291,3 +291,11 @@
"recovery-refresh.rc",
],
}
+
+filegroup {
+ name: "res-testdata",
+
+ srcs: [
+ "res-*/images/*_text.png",
+ ],
+}
diff --git a/Android.mk b/Android.mk
index 7d13f4c..80d107d 100644
--- a/Android.mk
+++ b/Android.mk
@@ -80,5 +80,4 @@
include $(BUILD_PHONY_PACKAGE)
include \
- $(LOCAL_PATH)/tests/Android.mk \
$(LOCAL_PATH)/updater/Android.mk \
diff --git a/tests/Android.bp b/tests/Android.bp
new file mode 100644
index 0000000..d305e25
--- /dev/null
+++ b/tests/Android.bp
@@ -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/*"],
+}
diff --git a/tests/Android.mk b/tests/Android.mk
deleted file mode 100644
index b59da80..0000000
--- a/tests/Android.mk
+++ /dev/null
@@ -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)
diff --git a/tests/component/resources_test.cpp b/tests/component/resources_test.cpp
index b00c3d5..54329db 100644
--- a/tests/component/resources_test.cpp
+++ b/tests/component/resources_test.cpp
@@ -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) {
diff --git a/tests/res-testdata/res-hdpi b/tests/res-testdata/res-hdpi
deleted file mode 120000
index c339b1d..0000000
--- a/tests/res-testdata/res-hdpi
+++ /dev/null
@@ -1 +0,0 @@
-../../res-hdpi
\ No newline at end of file
diff --git a/tests/res-testdata/res-mdpi b/tests/res-testdata/res-mdpi
deleted file mode 120000
index 4be630d..0000000
--- a/tests/res-testdata/res-mdpi
+++ /dev/null
@@ -1 +0,0 @@
-../../res-mdpi
\ No newline at end of file
diff --git a/tests/res-testdata/res-xhdpi b/tests/res-testdata/res-xhdpi
deleted file mode 120000
index 429eead..0000000
--- a/tests/res-testdata/res-xhdpi
+++ /dev/null
@@ -1 +0,0 @@
-../../res-xhdpi
\ No newline at end of file
diff --git a/tests/res-testdata/res-xxhdpi b/tests/res-testdata/res-xxhdpi
deleted file mode 120000
index 304cc28..0000000
--- a/tests/res-testdata/res-xxhdpi
+++ /dev/null
@@ -1 +0,0 @@
-../../res-xxhdpi
\ No newline at end of file
diff --git a/tests/res-testdata/res-xxxhdpi b/tests/res-testdata/res-xxxhdpi
deleted file mode 120000
index 2236ad8..0000000
--- a/tests/res-testdata/res-xxxhdpi
+++ /dev/null
@@ -1 +0,0 @@
-../../res-xxxhdpi
\ No newline at end of file
diff --git a/updater/Android.bp b/updater/Android.bp
index 9a36ebb..c77bac8 100644
--- a/updater/Android.bp
+++ b/updater/Android.bp
@@ -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 @@
"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",
+ ],
+}