Build bionic unit tests for musl
Modify bionic unit tests that are built for glibc so that they also
build against musl. They don't all pass though:
With glibc:
2 SLOW TESTS
4 TIMEOUT TESTS
313 FAILED TESTS
YOU HAVE 2 DISABLED TESTS
With musl:
11 SLOW TESTS
11 TIMEOUT TESTS
363 FAILED TESTS
YOU HAVE 2 DISABLED TESTS
Bug: 190084016
Test: m bionic-unit-tests-glibc with musl
Test: atest bionic-unit-tests-static
Test: atest --host bionic-unit-tests-glibc with glibc
Change-Id: I79b6eab04fed3cc4392450df5eef2579412edfe1
diff --git a/tests/dirent_test.cpp b/tests/dirent_test.cpp
index 56929d1..1155a4e 100644
--- a/tests/dirent_test.cpp
+++ b/tests/dirent_test.cpp
@@ -82,6 +82,7 @@
}
TEST(dirent, scandirat_scandirat64) {
+#if !defined(MUSL)
// Get everything from /proc/self...
dirent** entries;
int entry_count = scandir("/proc/self", &entries, nullptr, alphasort);
@@ -111,6 +112,9 @@
ASSERT_EQ(name_set, name_set_at64);
ASSERT_EQ(unsorted_name_list, unsorted_name_list_at);
ASSERT_EQ(unsorted_name_list, unsorted_name_list_at64);
+#else
+ GTEST_SKIP() << "musl doesn't have scandirat or scandirat64";
+#endif
}
static int is_version_filter(const dirent* de) {
@@ -140,6 +144,7 @@
}
TEST(dirent, scandirat_ENOENT) {
+#if !defined(MUSL)
int root_fd = open("/", O_DIRECTORY | O_RDONLY);
ASSERT_NE(-1, root_fd);
dirent** entries;
@@ -147,9 +152,13 @@
ASSERT_EQ(-1, scandirat(root_fd, "does-not-exist", &entries, nullptr, nullptr));
ASSERT_EQ(ENOENT, errno);
close(root_fd);
+#else
+ GTEST_SKIP() << "musl doesn't have scandirat or scandirat64";
+#endif
}
TEST(dirent, scandirat64_ENOENT) {
+#if !defined(MUSL)
int root_fd = open("/", O_DIRECTORY | O_RDONLY);
ASSERT_NE(-1, root_fd);
dirent64** entries;
@@ -157,6 +166,9 @@
ASSERT_EQ(-1, scandirat64(root_fd, "does-not-exist", &entries, nullptr, nullptr));
ASSERT_EQ(ENOENT, errno);
close(root_fd);
+#else
+ GTEST_SKIP() << "musl doesn't have scandirat or scandirat64";
+#endif
}
TEST(dirent, fdopendir_invalid) {
@@ -228,7 +240,7 @@
CheckProcSelf(name_set);
}
-TEST(dirent, readdir64) {
+TEST(dirent, readdir64_smoke) {
DIR* d = opendir("/proc/self");
ASSERT_TRUE(d != nullptr);
std::set<std::string> name_set;
@@ -263,7 +275,7 @@
CheckProcSelf(name_set);
}
-TEST(dirent, readdir64_r) {
+TEST(dirent, readdir64_r_smoke) {
DIR* d = opendir("/proc/self");
ASSERT_TRUE(d != nullptr);
std::set<std::string> name_set;