X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-getaddrinfo.c;h=eeea3f7c432b8d7d8d6540323432b933ddf359c3;hb=41fc74b9ab67321453d103d056a6e8eb8897042a;hp=a8b2fd5d4615cb2166061b05fe3a4e0f46d64df9;hpb=283dd26efdfbeeff672cbcb0e6811f54e032364f;p=gnulib.git diff --git a/tests/test-getaddrinfo.c b/tests/test-getaddrinfo.c index a8b2fd5d4..eeea3f7c4 100644 --- a/tests/test-getaddrinfo.c +++ b/tests/test-getaddrinfo.c @@ -19,7 +19,9 @@ #include #include + #include +#include #include #include #include @@ -45,9 +47,15 @@ int simple (char *host, char *service) { char buf[BUFSIZ]; + static int skip = 0; struct addrinfo hints; struct addrinfo *ai0, *ai; int res; + int err; + + /* Once we skipped the test, do not try anything else */ + if (skip) + return 0; dbgprintf ("Finding %s service %s...\n", host, service); @@ -59,6 +67,7 @@ int simple (char *host, char *service) hints.ai_socktype = SOCK_STREAM; res = getaddrinfo (host, service, 0, &ai0); + err = errno; dbgprintf ("res %d: %s\n", res, gai_strerror (res)); @@ -69,6 +78,7 @@ int simple (char *host, char *service) in-law's farm. */ if (res == EAI_AGAIN) { + skip++; fprintf (stderr, "skipping getaddrinfo test: no network?\n"); return 77; } @@ -77,13 +87,16 @@ int simple (char *host, char *service) if (res == EAI_NONAME) return 0; /* Solaris reports EAI_SERVICE for "http" and "https". Don't - fail the test merely because of this. */ + fail the test merely because of this. */ if (res == EAI_SERVICE) return 0; /* AIX reports EAI_NODATA for "https". Don't fail the test merely because of this. */ if (res == EAI_NODATA) return 0; + /* Provide details if errno was set. */ + if (res == EAI_SYSTEM) + dbgprintf ("system error: %s\n", strerror (err)); return 1; }