X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-readlink.h;h=1e482dfe7feddca9fca31b1268ec88db4e75d04a;hb=58b5448dee62071b0d505f4e010652420e76d101;hp=4ce67f79d560446021bef2d735cbe83f9b631a4b;hpb=231bdaf6198a766ae5442fef6f4b8e661d523868;p=gnulib.git diff --git a/tests/test-readlink.h b/tests/test-readlink.h index 4ce67f79d..1e482dfe7 100644 --- a/tests/test-readlink.h +++ b/tests/test-readlink.h @@ -1,5 +1,5 @@ /* Tests of readlink. - 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 @@ -52,11 +52,11 @@ test_readlink (ssize_t (*func) (char const *, char *, size_t), bool print) errno = 0; ASSERT (func (BASE "file/", buf, sizeof buf) == -1); ASSERT (errno == ENOTDIR); - ASSERT (unlink (BASE "file") == 0); /* Now test actual symlinks. */ if (symlink (BASE "dir", BASE "link")) { + ASSERT (unlink (BASE "file") == 0); if (print) fputs ("skipping test: symlinks not supported on this file system\n", stderr); @@ -66,6 +66,17 @@ test_readlink (ssize_t (*func) (char const *, char *, size_t), bool print) errno = 0; ASSERT (func (BASE "link/", buf, sizeof buf) == -1); ASSERT (errno == EINVAL); + ASSERT (symlink (BASE "link", BASE "link2") == 0); + errno = 0; + ASSERT (func (BASE "link2/", buf, sizeof buf) == -1); + ASSERT (errno == EINVAL); + ASSERT (unlink (BASE "link2") == 0); + ASSERT (symlink (BASE "file", BASE "link2") == 0); + errno = 0; + ASSERT (func (BASE "link2/", buf, sizeof buf) == -1); + ASSERT (errno == ENOTDIR); + ASSERT (unlink (BASE "file") == 0); + ASSERT (unlink (BASE "link2") == 0); { /* Up till now, no readlink has been successful, so buf should be unchanged. */ @@ -83,13 +94,13 @@ test_readlink (ssize_t (*func) (char const *, char *, size_t), bool print) result = readlink (BASE "link", buf, 1); if (result == -1) { - ASSERT (errno == ERANGE); - ASSERT (buf[0] == (char) 0xff); + ASSERT (errno == ERANGE); + ASSERT (buf[0] == (char) 0xff); } else { - ASSERT (result == 1); - ASSERT (buf[0] == BASE[0]); + ASSERT (result == 1); + ASSERT (buf[0] == BASE[0]); } ASSERT (buf[1] == (char) 0xff); ASSERT (func (BASE "link", buf, len) == len);