X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-symlink.c;h=23697737f5cb494fcd52549d82cad149d7eb965d;hb=94012b4fafb086f608e12e3f44ddf0202f418e6d;hp=9f9dda14c84a4dff7f08b38ca0974a75f5e3eeb4;hpb=d9d5054ceb34c7e5b1dc64e5477ac6f89969a423;p=gnulib.git diff --git a/tests/test-symlink.c b/tests/test-symlink.c index 9f9dda14c..23697737f 100644 --- a/tests/test-symlink.c +++ b/tests/test-symlink.c @@ -1,5 +1,5 @@ /* Tests of symlink. - Copyright (C) 2009 Free Software Foundation, Inc. + Copyright (C) 2009, 2010 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,78 +20,27 @@ #include +#include "signature.h" +SIGNATURE_CHECK (symlink, int, (char const *, char const *)); + #include #include +#include #include #include #include -#define ASSERT(expr) \ - do \ - { \ - if (!(expr)) \ - { \ - fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \ - fflush (stderr); \ - abort (); \ - } \ - } \ - while (0) +#include "macros.h" #define BASE "test-symlink.t" +#include "test-symlink.h" + int -main () +main (void) { /* Remove any leftovers from a previous partial run. */ - ASSERT (system ("rm -rf " BASE "*") == 0); - - if (symlink ("nowhere", BASE "link1")) - { - fputs ("skipping test: symlinks not supported on this filesystem\n", - stderr); - return 77; - } - - /* Some systems allow the creation of 0-length symlinks as a synonym - for "."; but most reject it. */ - errno = 0; - if (symlink ("", BASE "link2") == -1) - ASSERT (errno == ENOENT || errno == EINVAL); - else - ASSERT (unlink (BASE "link2") == 0); - - /* Sanity checks of failures. */ - errno = 0; - ASSERT (symlink ("nowhere", "") == -1); - ASSERT (errno == ENOENT); - errno = 0; - ASSERT (symlink ("nowhere", ".") == -1); - ASSERT (errno == EEXIST || errno == EINVAL); - errno = 0; - ASSERT (symlink ("somewhere", BASE "link1") == -1); - ASSERT (errno == EEXIST); - errno = 0; - ASSERT (symlink ("nowhere", BASE "link2/") == -1); - ASSERT (errno == ENOTDIR || errno == ENOENT); - ASSERT (mkdir (BASE "dir", 0700) == 0); - errno = 0; - ASSERT (symlink ("nowhere", BASE "dir") == -1); - ASSERT (errno == EEXIST); - errno = 0; - ASSERT (symlink ("nowhere", BASE "dir/") == -1); - ASSERT (errno == EEXIST); - ASSERT (close (creat (BASE "file", 0600)) == 0); - errno = 0; - ASSERT (symlink ("nowhere", BASE "file") == -1); - ASSERT (errno == EEXIST); - errno = 0; - ASSERT (symlink ("nowhere", BASE "file/") == -1); - ASSERT (errno == EEXIST || errno == ENOTDIR); - - ASSERT (rmdir (BASE "dir") == 0); - ASSERT (unlink (BASE "file") == 0); - ASSERT (unlink (BASE "link1") == 0); + system ("rm -rf " BASE "*"); - return 0; + return test_symlink (symlink, true); }