applypatch: Add testcases for applypatch executable.
Refactor applypatch/main.cpp into libapplypatch_modes so that we can add
testcases.
Some changes to applypatch/main.cpp:
- Replace char** argv with const char**;
- Use android::base::Split() to split ":";
- Use android::base::ParseUInt().
Bug: 32383590
Test: Unit tests pass, install-recovery.sh works.
Change-Id: I44e7bfa5ab717d439ea1d0ee9ddb7b2c40bb95a4
diff --git a/applypatch/Android.mk b/applypatch/Android.mk
index 9bbac44..fa0fe8a 100644
--- a/applypatch/Android.mk
+++ b/applypatch/Android.mk
@@ -68,21 +68,41 @@
LOCAL_CFLAGS := -Werror
include $(BUILD_HOST_STATIC_LIBRARY)
-# applypatch (executable)
+# libapplypatch_modes (static library)
# ===============================
include $(CLEAR_VARS)
LOCAL_CLANG := true
-LOCAL_SRC_FILES := main.cpp
+LOCAL_SRC_FILES := \
+ applypatch_modes.cpp
+LOCAL_MODULE := libapplypatch_modes
+LOCAL_C_INCLUDES := bootable/recovery
+LOCAL_STATIC_LIBRARIES := \
+ libapplypatch \
+ libbase \
+ libedify \
+ libcrypto
+LOCAL_CFLAGS := -Werror
+include $(BUILD_STATIC_LIBRARY)
+
+# applypatch (target executable)
+# ===============================
+include $(CLEAR_VARS)
+LOCAL_CLANG := true
+LOCAL_SRC_FILES := applypatch_main.cpp
LOCAL_MODULE := applypatch
-LOCAL_C_INCLUDES += bootable/recovery
-LOCAL_STATIC_LIBRARIES += \
+LOCAL_C_INCLUDES := bootable/recovery
+LOCAL_STATIC_LIBRARIES := \
+ libapplypatch_modes \
libapplypatch \
libbase \
libedify \
libotafault \
libcrypto \
libbz
-LOCAL_SHARED_LIBRARIES += libbase libz libcutils libc
+LOCAL_SHARED_LIBRARIES := \
+ libbase \
+ libz \
+ libcutils
LOCAL_CFLAGS := -Werror
include $(BUILD_EXECUTABLE)