summaryrefslogtreecommitdiff
path: root/tests/libgen_basename_test.cpp
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2021-07-28 11:18:11 -0700
committerColin Cross <ccross@android.com>2021-08-12 11:13:11 -0700
commit7da20341e91a4ece30f628fb91fbc6056c9c8a7c (patch)
tree51db1cace0a75ac9e33aef1efb36e3f1d6832c67 /tests/libgen_basename_test.cpp
parent4c92da431155174c6bfef91c227fe34becb340c0 (diff)
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
Diffstat (limited to 'tests/libgen_basename_test.cpp')
-rw-r--r--tests/libgen_basename_test.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/tests/libgen_basename_test.cpp b/tests/libgen_basename_test.cpp
index 91ae960fe..1202af6e2 100644
--- a/tests/libgen_basename_test.cpp
+++ b/tests/libgen_basename_test.cpp
@@ -18,6 +18,7 @@
#define _GNU_SOURCE 1
#endif
+#if !defined(MUSL)
#include <string.h>
#if defined(basename)
@@ -28,9 +29,11 @@ static const char* gnu_basename(const char* in) {
return basename(in);
}
+#endif
+
#include <libgen.h>
-#if !defined(basename)
+#if !defined(basename) && !defined(MUSL)
#error basename should be defined at this point
#endif
@@ -41,12 +44,14 @@ static char* posix_basename(char* in) {
#include <errno.h>
#include <gtest/gtest.h>
+#if !defined(MUSL)
static void __TestGnuBasename(const char* in, const char* expected_out, int line) {
errno = 0;
const char* out = gnu_basename(in);
ASSERT_STREQ(expected_out, out) << "(" << line << "): " << in << std::endl;
ASSERT_EQ(0, errno) << "(" << line << "): " << in << std::endl;
}
+#endif
static void __TestPosixBasename(const char* in, const char* expected_out, int line) {
char* writable_in = (in != nullptr) ? strdup(in) : nullptr;
@@ -61,6 +66,7 @@ static void __TestPosixBasename(const char* in, const char* expected_out, int li
#define TestPosixBasename(in, expected) __TestPosixBasename(in, expected, __LINE__)
TEST(libgen_basename, gnu_basename) {
+#if !defined(MUSL)
// GNU's basename doesn't accept NULL
// TestGnuBasename(NULL, ".");
TestGnuBasename("", "");
@@ -73,6 +79,9 @@ TEST(libgen_basename, gnu_basename) {
TestGnuBasename("..", "..");
TestGnuBasename("///", "");
TestGnuBasename("//usr//lib//", "");
+#else
+ GTEST_SKIP() << "musl doesn't have GNU basename";
+ #endif
}
TEST(libgen_basename, posix_basename) {