/* Tests of readlink.
- Copyright (C) 2009 Free Software Foundation, Inc.
+ Copyright (C) 2009-2013 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
ASSERT (errno == ENOENT);
errno = 0;
ASSERT (func ("", buf, sizeof buf) == -1);
- ASSERT (errno == ENOENT);
+ ASSERT (errno == ENOENT || errno == EINVAL);
errno = 0;
ASSERT (func (".", buf, sizeof buf) == -1);
ASSERT (errno == EINVAL);
ASSERT (errno == EINVAL);
errno = 0;
ASSERT (func (BASE "file/", buf, sizeof buf) == -1);
- ASSERT (errno == ENOTDIR);
- ASSERT (unlink (BASE "file") == 0);
+ ASSERT (errno == ENOTDIR || errno == EINVAL); /* AIX yields EINVAL */
/* 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);
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 || errno == EINVAL); /* AIX yields EINVAL */
+ ASSERT (unlink (BASE "file") == 0);
+ ASSERT (unlink (BASE "link2") == 0);
{
/* Up till now, no readlink has been successful, so buf should be
unchanged. */
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);