X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-passfd.c;h=315e6c21baa530fb297df5283a2a2fe6ee26b943;hb=09001dfb3ec39d237f8e248ff347cf1be3e6f0c1;hp=20489348b14d96291f5442264a7c8cac65e53554;hpb=00b9c8e79b4904139d7bb721b5ba175e591dfb34;p=gnulib.git diff --git a/tests/test-passfd.c b/tests/test-passfd.c index 20489348b..315e6c21b 100644 --- a/tests/test-passfd.c +++ b/tests/test-passfd.c @@ -18,7 +18,9 @@ #include "passfd.h" +#include #include +#include #include #include #include @@ -32,6 +34,7 @@ int main () { +#if HAVE_SOCKETPAIR int pair[2]; int ret; pid_t pid; @@ -40,6 +43,12 @@ main () int fd; struct stat st; +# if HAVE_DECL_ALARM + /* Avoid hanging on failure. */ + signal (SIGALRM, SIG_DFL); + alarm (5); +# endif + fdnull = open ("/dev/null", O_RDWR); if (fdnull < 0) { @@ -108,4 +117,17 @@ main () } return 0; } +#else + errno = 0; + ASSERT(sendfd (0, 0) == -1); + ASSERT(errno == ENOSYS); + + errno = 0; + ASSERT(recvfd (0, 0) == -1); + ASSERT(errno == ENOSYS); + + fputs ("skipping test: socketpair not supported on this system\n", + stderr); + return 77; +#endif }