X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-link.c;h=250a821181f7499b04e8e686225e17296def6d43;hb=2b08e890726e2c572d2ba64f19bece957d1bfd98;hp=255a939e6d1f4294008e5cc3a827ad86916e81d2;hpb=8e0d8019628758a7cf002f9b295a652f4bee261a;p=gnulib.git diff --git a/tests/test-link.c b/tests/test-link.c index 255a939e6..250a82118 100644 --- a/tests/test-link.c +++ b/tests/test-link.c @@ -18,6 +18,7 @@ #include +#include #include #include @@ -36,8 +37,27 @@ int main (int argc, char **argv) { + int ret; + ASSERT (argc == 3); - ASSERT (link (argv[1], argv[2]) == 0); + + ret = link (argv[1], argv[2]); + if (ret < 0) + { + /* If the device does not support hard links, errno is + EPERM on Linux, EOPNOTSUPP on FreeBSD. */ + switch (errno) + { + case EPERM: +#ifdef EOPNOTSUPP + case EOPNOTSUPP: +#endif + return 77; + default: + perror ("link"); + return 1; + } + } return 0; }