aboutsummaryrefslogtreecommitdiff
path: root/tests/string_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/string_test.cpp')
-rw-r--r--tests/string_test.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/string_test.cpp b/tests/string_test.cpp
index 22be85241..8d3fb687a 100644
--- a/tests/string_test.cpp
+++ b/tests/string_test.cpp
@@ -23,6 +23,7 @@
#include <malloc.h>
#include <math.h>
#include <stdint.h>
+#include <sys/cdefs.h>
#include <algorithm>
#include <vector>
@@ -95,6 +96,7 @@ TEST(STRING_TEST, strerror_concurrent) {
}
TEST(STRING_TEST, gnu_strerror_r) {
+#if !defined(ANDROID_HOST_MUSL)
char buf[256];
// Note that glibc doesn't necessarily write into the buffer.
@@ -122,6 +124,9 @@ TEST(STRING_TEST, gnu_strerror_r) {
ASSERT_STREQ("U", buf);
// The GNU strerror_r doesn't set errno (the POSIX one sets it to ERANGE).
ASSERT_EQ(0, errno);
+#else
+ GTEST_SKIP() << "musl doesn't have GNU strerror_r";
+#endif
}
TEST(STRING_TEST, strsignal) {
@@ -1473,14 +1478,17 @@ TEST(STRING_TEST, strrchr_overread) {
RunSingleBufferOverreadTest(DoStrrchrTest);
}
+#if !defined(ANDROID_HOST_MUSL)
static void TestBasename(const char* in, const char* expected_out) {
errno = 0;
const char* out = basename(in);
ASSERT_STREQ(expected_out, out) << in;
ASSERT_EQ(0, errno) << in;
}
+#endif
TEST(STRING_TEST, __gnu_basename) {
+#if !defined(ANDROID_HOST_MUSL)
TestBasename("", "");
TestBasename("/usr/lib", "lib");
TestBasename("/usr/", "");
@@ -1490,6 +1498,9 @@ TEST(STRING_TEST, __gnu_basename) {
TestBasename("..", "..");
TestBasename("///", "");
TestBasename("//usr//lib//", "");
+#else
+ GTEST_SKIP() << "musl doesn't have GNU basename";
+#endif
}
TEST(STRING_TEST, strnlen_147048) {