summaryrefslogtreecommitdiff
path: root/tests/netdb_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/netdb_test.cpp')
-rw-r--r--tests/netdb_test.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/tests/netdb_test.cpp b/tests/netdb_test.cpp
index a8056935b..020570762 100644
--- a/tests/netdb_test.cpp
+++ b/tests/netdb_test.cpp
@@ -265,11 +265,18 @@ TEST(netdb, gethostbyaddr_r) {
ASSERT_EQ(0, hp->h_addr[0]);
}
+#if defined(MUSL)
+// musl doesn't define NETDB_INTERNAL. It also never sets *err to -1, but
+// since gethostbyname_r is a glibc extension, the difference in behavior
+// between musl and glibc should probably be considered a bug in musl.
+#define NETDB_INTERNAL -1
+#endif
+
TEST(netdb, gethostbyname_r_ERANGE) {
hostent hent;
hostent *hp;
char buf[4]; // Use too small buffer.
- int err;
+ int err = 0;
int result = gethostbyname_r("localhost", &hent, buf, sizeof(buf), &hp, &err);
EXPECT_EQ(NETDB_INTERNAL, err);
EXPECT_EQ(ERANGE, result);
@@ -280,7 +287,7 @@ TEST(netdb, gethostbyname2_r_ERANGE) {
hostent hent;
hostent *hp;
char buf[4]; // Use too small buffer.
- int err;
+ int err = 0;
int result = gethostbyname2_r("localhost", AF_INET, &hent, buf, sizeof(buf), &hp, &err);
EXPECT_EQ(NETDB_INTERNAL, err);
EXPECT_EQ(ERANGE, result);
@@ -292,7 +299,7 @@ TEST(netdb, gethostbyaddr_r_ERANGE) {
hostent hent;
hostent *hp;
char buf[4]; // Use too small buffer.
- int err;
+ int err = 0;
int result = gethostbyaddr_r(&addr, sizeof(addr), AF_INET, &hent, buf, sizeof(buf), &hp, &err);
EXPECT_EQ(NETDB_INTERNAL, err);
EXPECT_EQ(ERANGE, result);