summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2022-02-18 02:41:37 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2022-02-18 02:41:37 +0000
commit013fa056bb8388ddb7e69d30cff3193086679dfe (patch)
treee5d24433e3a844c6423f3423e12557d76d3b8d7a
parent8da6741a9af4ceef07b6ae8aa189ae2ed1fad993 (diff)
parent4ab5d534b1573cb13205baba9d42caab6bcd907e (diff)
downloadnative-013fa056bb8388ddb7e69d30cff3193086679dfe.tar.gz
Merge "Revert Android.bp changes."
-rw-r--r--cmds/installd/Android.bp7
-rw-r--r--cmds/installd/tests/Android.bp81
-rw-r--r--cmds/installd/tests/installd_service_test.cpp2
-rw-r--r--cmds/installd/tests/installd_utils_test.cpp18
-rw-r--r--cmds/installd/utils.cpp8
-rw-r--r--cmds/installd/utils.h2
6 files changed, 90 insertions, 28 deletions
diff --git a/cmds/installd/Android.bp b/cmds/installd/Android.bp
index fd38ddfc57..c9f680b266 100644
--- a/cmds/installd/Android.bp
+++ b/cmds/installd/Android.bp
@@ -10,7 +10,6 @@ package {
cc_defaults {
name: "installd_defaults",
- cpp_std: "c++2a",
cflags: [
"-Wall",
"-Werror",
@@ -42,7 +41,6 @@ cc_defaults {
"libbinder",
"libcrypto",
"libcutils",
- "libext2_uuid",
"liblog",
"liblogwrap",
"libprocessgroup",
@@ -53,6 +51,7 @@ cc_defaults {
],
static_libs: [
"libasync_safe",
+ "libext2_uuid",
],
export_shared_lib_headers: [
"libbinder",
@@ -241,8 +240,6 @@ cc_library_static {
cc_binary {
name: "otapreopt",
-
- cpp_std: "c++2a",
cflags: [
"-Wall",
"-Werror",
@@ -266,13 +263,13 @@ cc_binary {
"libasync_safe",
"libdiskusage",
"libotapreoptparameters",
+ "libext2_uuid",
],
shared_libs: [
"libbase",
"libcrypto",
"libcutils",
- "libext2_uuid",
"liblog",
"liblogwrap",
"libprocessgroup",
diff --git a/cmds/installd/tests/Android.bp b/cmds/installd/tests/Android.bp
index a16587ec99..e390babb57 100644
--- a/cmds/installd/tests/Android.bp
+++ b/cmds/installd/tests/Android.bp
@@ -8,54 +8,56 @@ package {
default_applicable_licenses: ["frameworks_native_license"],
}
-cc_defaults {
- name: "installd_tests_defaults",
+cc_test {
+ name: "installd_utils_test",
test_suites: ["device-tests"],
clang: true,
- cpp_std: "c++2a",
+ srcs: ["installd_utils_test.cpp"],
cflags: [
"-Wall",
"-Werror",
],
shared_libs: [
"libbase",
- "libcutils",
- "libext2_uuid",
"libutils",
+ "libcutils",
],
static_libs: [
- "liblog",
- ],
-}
-
-cc_test {
- name: "installd_utils_test",
- defaults: ["installd_tests_defaults"],
- srcs: ["installd_utils_test.cpp"],
- static_libs: [
"libasync_safe",
"libdiskusage",
+ "libext2_uuid",
"libinstalld",
+ "liblog",
],
test_config: "installd_utils_test.xml",
}
cc_test {
name: "installd_cache_test",
- defaults: ["installd_tests_defaults"],
+ test_suites: ["device-tests"],
+ clang: true,
srcs: ["installd_cache_test.cpp"],
+ cflags: [
+ "-Wall",
+ "-Werror",
+ ],
shared_libs: [
+ "libbase",
"libbinder",
"libcrypto",
+ "libcutils",
"libprocessgroup",
"libselinux",
+ "libutils",
"server_configurable_flags",
],
static_libs: [
"libasync_safe",
"libdiskusage",
+ "libext2_uuid",
"libinstalld",
"libziparchive",
+ "liblog",
"liblogwrap",
],
test_config: "installd_cache_test.xml",
@@ -78,21 +80,31 @@ cc_test {
cc_test {
name: "installd_service_test",
- defaults: ["installd_tests_defaults"],
+ test_suites: ["device-tests"],
+ clang: true,
srcs: ["installd_service_test.cpp"],
+ cflags: [
+ "-Wall",
+ "-Werror",
+ ],
shared_libs: [
+ "libbase",
"libbinder",
"libcrypto",
+ "libcutils",
"libprocessgroup",
"libselinux",
+ "libutils",
"packagemanager_aidl-cpp",
"server_configurable_flags",
],
static_libs: [
"libasync_safe",
"libdiskusage",
+ "libext2_uuid",
"libinstalld",
"libziparchive",
+ "liblog",
"liblogwrap",
],
test_config: "installd_service_test.xml",
@@ -115,19 +127,29 @@ cc_test {
cc_test {
name: "installd_dexopt_test",
- defaults: ["installd_tests_defaults"],
+ test_suites: ["device-tests"],
+ clang: true,
srcs: ["installd_dexopt_test.cpp"],
+ cflags: [
+ "-Wall",
+ "-Werror",
+ ],
shared_libs: [
+ "libbase",
"libbinder",
"libcrypto",
+ "libcutils",
"libprocessgroup",
"libselinux",
+ "libutils",
"server_configurable_flags",
],
static_libs: [
"libasync_safe",
"libdiskusage",
+ "libext2_uuid",
"libinstalld",
+ "liblog",
"liblogwrap",
"libziparchive",
"libz",
@@ -152,21 +174,42 @@ cc_test {
cc_test {
name: "installd_otapreopt_test",
- defaults: ["installd_tests_defaults"],
+ test_suites: ["device-tests"],
+ clang: true,
srcs: ["installd_otapreopt_test.cpp"],
+ cflags: [
+ "-Wall",
+ "-Werror",
+ ],
shared_libs: [
+ "libbase",
+ "libcutils",
+ "libutils",
"server_configurable_flags",
],
static_libs: [
+ "liblog",
"libotapreoptparameters",
],
}
cc_test {
name: "installd_file_test",
- defaults: ["installd_tests_defaults"],
+ test_suites: ["device-tests"],
+ clang: true,
srcs: ["installd_file_test.cpp"],
+ cflags: [
+ "-Wall",
+ "-Werror",
+ ],
+ shared_libs: [
+ "libbase",
+ "libcutils",
+ "libutils",
+ ],
static_libs: [
+ "libext2_uuid",
"libinstalld",
+ "liblog",
],
}
diff --git a/cmds/installd/tests/installd_service_test.cpp b/cmds/installd/tests/installd_service_test.cpp
index 806797f230..dadc27b7ee 100644
--- a/cmds/installd/tests/installd_service_test.cpp
+++ b/cmds/installd/tests/installd_service_test.cpp
@@ -156,7 +156,7 @@ static bool find_file(const char* path, Pred&& pred) {
}
static bool exists_renamed_deleted_dir() {
- return find_file(kTestPath, [](std::string_view name, bool is_dir) {
+ return find_file(kTestPath, [](const std::string& name, bool is_dir) {
return is_dir && is_renamed_deleted_dir(name);
});
}
diff --git a/cmds/installd/tests/installd_utils_test.cpp b/cmds/installd/tests/installd_utils_test.cpp
index ed87b672ce..5e8c79e9fa 100644
--- a/cmds/installd/tests/installd_utils_test.cpp
+++ b/cmds/installd/tests/installd_utils_test.cpp
@@ -555,6 +555,24 @@ TEST_F(UtilsTest, MatchExtension_Invalid) {
EXPECT_EQ(0, MatchExtension("docx"));
}
+TEST_F(UtilsTest, TestIsRenamedDeletedDir) {
+ EXPECT_FALSE(is_renamed_deleted_dir(""));
+ EXPECT_FALSE(is_renamed_deleted_dir("1"));
+ EXPECT_FALSE(is_renamed_deleted_dir("="));
+ EXPECT_FALSE(is_renamed_deleted_dir("=="));
+ EXPECT_FALSE(is_renamed_deleted_dir("d=="));
+ EXPECT_FALSE(is_renamed_deleted_dir("ed=="));
+ EXPECT_FALSE(is_renamed_deleted_dir("ted=="));
+ EXPECT_FALSE(is_renamed_deleted_dir("eted=="));
+ EXPECT_FALSE(is_renamed_deleted_dir("leted=="));
+ EXPECT_FALSE(is_renamed_deleted_dir("eleted=="));
+ EXPECT_FALSE(is_renamed_deleted_dir("deleted=="));
+ EXPECT_FALSE(is_renamed_deleted_dir("=deleted=="));
+ EXPECT_TRUE(is_renamed_deleted_dir("==deleted=="));
+ EXPECT_TRUE(is_renamed_deleted_dir("123==deleted=="));
+ EXPECT_TRUE(is_renamed_deleted_dir("5b14b6458a44==deleted=="));
+}
+
TEST_F(UtilsTest, TestRollbackPaths) {
EXPECT_EQ("/data/misc_ce/0/rollback/239/com.foo",
create_data_misc_ce_rollback_package_path(nullptr, 0, 239, "com.foo"));
diff --git a/cmds/installd/utils.cpp b/cmds/installd/utils.cpp
index 8a00be9193..faccded34b 100644
--- a/cmds/installd/utils.cpp
+++ b/cmds/installd/utils.cpp
@@ -637,8 +637,12 @@ static int rename_delete_dir_contents(const std::string& pathname,
return delete_dir_contents(temp_dir_path.c_str(), 1, exclusion_predicate, ignore_if_missing);
}
-bool is_renamed_deleted_dir(std::string_view path) {
- return path.ends_with(deletedSuffix);
+bool is_renamed_deleted_dir(const std::string& path) {
+ if (path.size() < deletedSuffix.size()) {
+ return false;
+ }
+ std::string_view pathSuffix{path.c_str() + path.size() - deletedSuffix.size()};
+ return pathSuffix == deletedSuffix;
}
int rename_delete_dir_contents_and_dir(const std::string& pathname, bool ignore_if_missing) {
diff --git a/cmds/installd/utils.h b/cmds/installd/utils.h
index 04f3bc93a6..0b1c324b02 100644
--- a/cmds/installd/utils.h
+++ b/cmds/installd/utils.h
@@ -120,7 +120,7 @@ int create_dir_if_needed(const std::string& pathname, mode_t mode);
int delete_dir_contents(const std::string& pathname, bool ignore_if_missing = false);
int delete_dir_contents_and_dir(const std::string& pathname, bool ignore_if_missing = false);
-bool is_renamed_deleted_dir(std::string_view path);
+bool is_renamed_deleted_dir(const std::string& path);
int rename_delete_dir_contents_and_dir(const std::string& pathname, bool ignore_if_missing = true);
void cleanup_invalid_package_dirs_under_path(const std::string& pathname);