X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-symlinkat.c;h=1795c0e17fa2b24b44564e35dc93cfc290d652c4;hb=56fcb71cb3d5219bcb17eeb77b6ea9b624e52508;hp=7ac3f58262f864d224737217f762d06e55220270;hpb=8d8eda4eab3d2801251daf4eb31756c3595e2fc6;p=gnulib.git diff --git a/tests/test-symlinkat.c b/tests/test-symlinkat.c index 7ac3f5826..1795c0e17 100644 --- a/tests/test-symlinkat.c +++ b/tests/test-symlinkat.c @@ -1,5 +1,5 @@ -/* Tests of symlinkat and readlinkat. - Copyright (C) 2009, 2010 Free Software Foundation, Inc. +/* Tests of symlinkat. + Copyright (C) 2009-2011 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 @@ -22,7 +22,6 @@ #include "signature.h" SIGNATURE_CHECK (symlinkat, int, (char const *, int, char const *)); -SIGNATURE_CHECK (readlinkat, ssize_t, (int, char const *, char *, size_t)); #include #include @@ -32,6 +31,7 @@ SIGNATURE_CHECK (readlinkat, ssize_t, (int, char const *, char *, size_t)); #include #include +#include "ignore-value.h" #include "macros.h" #ifndef HAVE_SYMLINK @@ -40,7 +40,6 @@ SIGNATURE_CHECK (readlinkat, ssize_t, (int, char const *, char *, size_t)); #define BASE "test-symlinkat.t" -#include "test-readlink.h" #include "test-symlink.h" static int dfd = AT_FDCWD; @@ -51,64 +50,20 @@ do_symlink (char const *contents, char const *name) return symlinkat (contents, dfd, name); } -static ssize_t -do_readlink (char const *name, char *buf, size_t len) -{ - return readlinkat (dfd, name, buf, len); -} - int main (void) { - char buf[80]; int result; /* Remove any leftovers from a previous partial run. */ - system ("rm -rf " BASE "*"); + ignore_value (system ("rm -rf " BASE "*")); /* Perform same checks as counterpart functions. */ - result = test_readlink (do_readlink, false); - ASSERT (test_symlink (do_symlink, false) == result); + result = test_symlink (do_symlink, false); dfd = openat (AT_FDCWD, ".", O_RDONLY); ASSERT (0 <= dfd); - ASSERT (test_readlink (do_readlink, false) == result); ASSERT (test_symlink (do_symlink, false) == result); - /* Now perform some cross-directory checks. Skip everything else on - mingw. */ - if (HAVE_SYMLINK) - { - const char *contents = "don't matter!"; - ssize_t exp = strlen (contents); - - /* Create link while cwd is '.', then read it in '..'. */ - ASSERT (symlinkat (contents, AT_FDCWD, BASE "link") == 0); - errno = 0; - ASSERT (symlinkat (contents, dfd, BASE "link") == -1); - ASSERT (errno == EEXIST); - ASSERT (chdir ("..") == 0); - errno = 0; - ASSERT (readlinkat (AT_FDCWD, BASE "link", buf, sizeof buf) == -1); - ASSERT (errno == ENOENT); - ASSERT (readlinkat (dfd, BASE "link", buf, sizeof buf) == exp); - ASSERT (strncmp (contents, buf, exp) == 0); - ASSERT (unlinkat (dfd, BASE "link", 0) == 0); - - /* Create link while cwd is '..', then read it in '.'. */ - ASSERT (symlinkat (contents, dfd, BASE "link") == 0); - ASSERT (fchdir (dfd) == 0); - errno = 0; - ASSERT (symlinkat (contents, AT_FDCWD, BASE "link") == -1); - ASSERT (errno == EEXIST); - buf[0] = '\0'; - ASSERT (readlinkat (AT_FDCWD, BASE "link", buf, sizeof buf) == exp); - ASSERT (strncmp (contents, buf, exp) == 0); - buf[0] = '\0'; - ASSERT (readlinkat (dfd, BASE "link", buf, sizeof buf) == exp); - ASSERT (strncmp (contents, buf, exp) == 0); - ASSERT (unlink (BASE "link") == 0); - } - ASSERT (close (dfd) == 0); if (result == 77) fputs ("skipping test: symlinks not supported on this file system\n",