From 2a06ae82997f8125d9f262a1ec6cf0a3e22ef307 Mon Sep 17 00:00:00 2001 From: Yifan Hong Date: Wed, 5 Aug 2020 17:38:46 -0700 Subject: [PATCH 1/3] Fix AnimationParser remove_prefix test The test fails because TEST_STRING, a char[], is silently converted to a std::string, passed to remove_prefix, then the string is destroyed, but a pointer to the string is returned. Fix it by changing the signature of remove_prefix to use std::string_view to be more robust in handling raw char*. Test: run it Change-Id: I553c066907f09cf330c8b7a4659db5a1fee82cac --- healthd/AnimationParser.cpp | 4 ++-- healthd/AnimationParser.h | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/healthd/AnimationParser.cpp b/healthd/AnimationParser.cpp index fde3b95e0..6b08570d9 100644 --- a/healthd/AnimationParser.cpp +++ b/healthd/AnimationParser.cpp @@ -37,8 +37,8 @@ bool can_ignore_line(const char* str) { return true; } -bool remove_prefix(const std::string& line, const char* prefix, const char** rest) { - const char* str = line.c_str(); +bool remove_prefix(std::string_view line, const char* prefix, const char** rest) { + const char* str = line.data(); int start; char c; diff --git a/healthd/AnimationParser.h b/healthd/AnimationParser.h index bc0084518..f55b5635e 100644 --- a/healthd/AnimationParser.h +++ b/healthd/AnimationParser.h @@ -17,6 +17,8 @@ #ifndef HEALTHD_ANIMATION_PARSER_H #define HEALTHD_ANIMATION_PARSER_H +#include + #include "animation.h" namespace android { @@ -24,7 +26,7 @@ namespace android { bool parse_animation_desc(const std::string& content, animation* anim); bool can_ignore_line(const char* str); -bool remove_prefix(const std::string& str, const char* prefix, const char** rest); +bool remove_prefix(std::string_view str, const char* prefix, const char** rest); bool parse_text_field(const char* in, animation::text_field* field); } // namespace android From 12d15750feaa841f3d80599074c1b68a430da0d2 Mon Sep 17 00:00:00 2001 From: Yifan Hong Date: Wed, 5 Aug 2020 16:25:33 -0700 Subject: [PATCH 2/3] Convert healthd_test to Soong This makefile is not included before, so it was never built. Also do the following changes to make sure it works: - Remove non-existing libhealthd_internal dep - Add necessary libhealthd_charger dep because it tests AnimationParser - Since it tests AnimationParser, change its name to libhealthd_charger_test Test: run it Change-Id: If7f91de4b910024f27d09a25ca801e67b98221db --- healthd/Android.bp | 13 ++++++++++++ healthd/{tests => }/AnimationParser_test.cpp | 0 healthd/tests/Android.mk | 21 -------------------- 3 files changed, 13 insertions(+), 21 deletions(-) rename healthd/{tests => }/AnimationParser_test.cpp (100%) delete mode 100644 healthd/tests/Android.mk diff --git a/healthd/Android.bp b/healthd/Android.bp index 14d46b3d3..3a7ab75d2 100644 --- a/healthd/Android.bp +++ b/healthd/Android.bp @@ -240,3 +240,16 @@ cc_test { defaults: ["charger_defaults"], srcs: ["charger_test.cpp"], } + +cc_test { + name: "libhealthd_charger_test", + srcs: ["AnimationParser_test.cpp"], + shared_libs: [ + "liblog", + "libbase", + "libcutils", + ], + static_libs: [ + "libhealthd_charger", + ], +} diff --git a/healthd/tests/AnimationParser_test.cpp b/healthd/AnimationParser_test.cpp similarity index 100% rename from healthd/tests/AnimationParser_test.cpp rename to healthd/AnimationParser_test.cpp diff --git a/healthd/tests/Android.mk b/healthd/tests/Android.mk deleted file mode 100644 index 87e8862d0..000000000 --- a/healthd/tests/Android.mk +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 2016 The Android Open Source Project - -LOCAL_PATH:= $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_SRC_FILES := \ - AnimationParser_test.cpp \ - -LOCAL_MODULE := healthd_test -LOCAL_MODULE_TAGS := tests - -LOCAL_STATIC_LIBRARIES := \ - libhealthd_internal \ - -LOCAL_SHARED_LIBRARIES := \ - liblog \ - libbase \ - libcutils \ - -include $(BUILD_NATIVE_TEST) From 186b4d9ddde5c937f31428028eb8acc67b0d6898 Mon Sep 17 00:00:00 2001 From: Yifan Hong Date: Wed, 5 Aug 2020 16:30:43 -0700 Subject: [PATCH 3/3] Add libhealthd_charger_test to presubmit. Test: atest --test_mapping Change-Id: Idae68e575f66b53c8b587405856b4a1c532ecadc --- healthd/Android.bp | 4 ++++ healthd/TEST_MAPPING | 7 +++++++ 2 files changed, 11 insertions(+) create mode 100644 healthd/TEST_MAPPING diff --git a/healthd/Android.bp b/healthd/Android.bp index 3a7ab75d2..65eaedd90 100644 --- a/healthd/Android.bp +++ b/healthd/Android.bp @@ -252,4 +252,8 @@ cc_test { static_libs: [ "libhealthd_charger", ], + test_suites: [ + "general-tests", + "device-tests", + ], } diff --git a/healthd/TEST_MAPPING b/healthd/TEST_MAPPING new file mode 100644 index 000000000..5893d10c7 --- /dev/null +++ b/healthd/TEST_MAPPING @@ -0,0 +1,7 @@ +{ + "presubmit": [ + { + "name": "libhealthd_charger_test" + } + ] +}