diff options
Diffstat (limited to 'tests/libgen_basename_test.cpp')
-rw-r--r-- | tests/libgen_basename_test.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/tests/libgen_basename_test.cpp b/tests/libgen_basename_test.cpp index 91ae960fe3..1202af6e2b 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) { |