Trim whitespace while loading library list file
am: f74c2b7afb
Change-Id: I82c94fc5a3899dfaae2b1d8800863742d46ba337
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 @@
}
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 @@
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 @@
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 @@
"/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 @@
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 @@
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 @@
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