OSDN Git Service

Trim whitespace while loading library list file
authorKiyoung Kim <kiyoungkim@google.com>
Fri, 27 Sep 2019 08:45:10 +0000 (17:45 +0900)
committerKiyoung Kim <kiyoungkim@google.com>
Tue, 1 Oct 2019 05:24:35 +0000 (14:24 +0900)
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

generator/librarylistloader.cc
generator/tests/data/library_list_c.txt [new file with mode: 0644]
generator/tests/librarylistloader_test.cc
modules/tests/variables_test.cc

index a8487e1..33f552e 100644 (file)
@@ -49,6 +49,7 @@ Result<LibraryList> 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 (file)
index 0000000..ad80c5a
--- /dev/null
@@ -0,0 +1 @@
+                          
\ No newline at end of file
index e45d77a..00c3c77 100644 (file)
@@ -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);
index e4ada44..3b58ec2 100644 (file)
@@ -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