From: Kiyoung Kim Date: Fri, 27 Sep 2019 08:45:10 +0000 (+0900) Subject: Trim whitespace while loading library list file X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=f74c2b7afbe2a581a0dc8bcce0d2553cfe78cf97;p=android-x86%2Fsystem-linkerconfig.git Trim whitespace while loading library list file Trim leading and trailing whitespaces from library list file to get exact library file name Bug: 141695559 Test: m -j && atest passed Change-Id: I26078597323229f01e3d88f05188a7a717f3cf2c --- diff --git a/generator/librarylistloader.cc b/generator/librarylistloader.cc index a8487e1..33f552e 100644 --- a/generator/librarylistloader.cc +++ b/generator/librarylistloader.cc @@ -49,6 +49,7 @@ Result GetLibrariesFromFile(std::string file_path) { } while (std::getline(library_file, library_name)) { + library_name = android::base::Trim(library_name); if (!library_name.empty()) { library_list.insert(library_name); } @@ -94,7 +95,9 @@ std::string GetPublicLibrariesString(std::string library_file_path, LibraryList public_library_list; std::set_difference( - library_list->begin(), library_list->end(), private_library_list->begin(), + library_list->begin(), + library_list->end(), + private_library_list->begin(), private_library_list->end(), std::inserter(public_library_list, public_library_list.begin())); @@ -120,7 +123,8 @@ std::string GetPrivateLibrariesString(std::string library_file_path, LibraryList private_only_library_list; - std::set_intersection(library_list->begin(), library_list->end(), + std::set_intersection(library_list->begin(), + library_list->end(), private_library_list->begin(), private_library_list->end(), std::inserter(private_only_library_list, diff --git a/generator/tests/data/library_list_c.txt b/generator/tests/data/library_list_c.txt new file mode 100644 index 0000000..ad80c5a --- /dev/null +++ b/generator/tests/data/library_list_c.txt @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/generator/tests/librarylistloader_test.cc b/generator/tests/librarylistloader_test.cc index e45d77a..00c3c77 100644 --- a/generator/tests/librarylistloader_test.cc +++ b/generator/tests/librarylistloader_test.cc @@ -24,22 +24,27 @@ const std::string kLibraryListA = android::base::GetExecutableDirectory() + "/generator/tests/data/library_list_a.txt"; const std::string kLibraryListB = android::base::GetExecutableDirectory() + "/generator/tests/data/library_list_b.txt"; +const std::string kLibraryListC = android::base::GetExecutableDirectory() + + "/generator/tests/data/library_list_c.txt"; const std::string kLibraryListInvalid = android::base::GetExecutableDirectory() + "/generator/tests/data/library_list_invalid.txt"; TEST(linkerconfig_librarylistloader, get_libraries) { const auto& library_list = GetLibrariesString(kLibraryListA); - ASSERT_EQ(library_list, "a.so:b.so:c.so:d.so:e.so:f.so"); + ASSERT_EQ("a.so:b.so:c.so:d.so:e.so:f.so", library_list); const auto& library_list_invalid = GetLibrariesString(kLibraryListInvalid); ASSERT_TRUE(library_list_invalid.empty()); + + const auto& library_list_empty = GetLibrariesString(kLibraryListC); + ASSERT_EQ("", library_list_empty); } TEST(linkerconfig_librarylistloader, get_public_libraries) { const auto& public_library_list = GetPublicLibrariesString(kLibraryListA, kLibraryListB); - ASSERT_EQ(public_library_list, "a.so:b.so:c.so:d.so"); + ASSERT_EQ("a.so:b.so:c.so:d.so", public_library_list); const auto& all_private_library_list = GetPublicLibrariesString(kLibraryListA, kLibraryListA); @@ -51,17 +56,21 @@ TEST(linkerconfig_librarylistloader, get_public_libraries) { const auto& private_library_invalid_list = GetPublicLibrariesString(kLibraryListA, kLibraryListInvalid); - ASSERT_EQ(private_library_invalid_list, "a.so:b.so:c.so:d.so:e.so:f.so"); + ASSERT_EQ("a.so:b.so:c.so:d.so:e.so:f.so", private_library_invalid_list); + + const auto& empty_library_list = + GetPublicLibrariesString(kLibraryListC, kLibraryListA); + ASSERT_EQ("", empty_library_list); } TEST(linkerconfig_librarylistloader, get_private_libraries) { const auto& private_library_list = GetPrivateLibrariesString(kLibraryListA, kLibraryListB); - ASSERT_EQ(private_library_list, "e.so:f.so"); + ASSERT_EQ("e.so:f.so", private_library_list); const auto& all_private_library_list = GetPrivateLibrariesString(kLibraryListA, kLibraryListA); - ASSERT_EQ(all_private_library_list, "a.so:b.so:c.so:d.so:e.so:f.so"); + ASSERT_EQ("a.so:b.so:c.so:d.so:e.so:f.so", all_private_library_list); const auto& invalid_library_list = GetPrivateLibrariesString(kLibraryListInvalid, kLibraryListB); diff --git a/modules/tests/variables_test.cc b/modules/tests/variables_test.cc index e4ada44..3b58ec2 100644 --- a/modules/tests/variables_test.cc +++ b/modules/tests/variables_test.cc @@ -26,7 +26,7 @@ TEST(linkerconfig_variables, load_from_map) { Variables::AddValue("TEST_KEY", "TEST_VALUE"); auto value = Variables::GetValue("TEST_KEY"); ASSERT_TRUE(value.has_value()); - ASSERT_EQ(value.value(), "TEST_VALUE"); + ASSERT_EQ("TEST_VALUE", value.value()); } TEST(linkerconfig_variables, load_from_property) { @@ -38,11 +38,16 @@ TEST(linkerconfig_variables, load_from_property) { std::chrono::seconds(1))); auto value = Variables::GetValue("debug.linkerconfig.test_prop_key"); ASSERT_TRUE(value.has_value()); - ASSERT_EQ(value.value(), "TEST_PROP_VALUE"); + ASSERT_EQ("TEST_PROP_VALUE", value.value()); #endif } TEST(linkerconfig_variables, fallback_value) { auto value = Variables::GetValue("INVALID_KEY"); ASSERT_FALSE(value.has_value()); +} + +TEST(linkerconfig_variables, empty_value) { + Variables::AddValue("TEST_KEY", ""); + ASSERT_FALSE(Variables::GetValue("TEST_KEY").has_value()); } \ No newline at end of file