2009-10-02 Eric Blake <ebb9@byu.net>
+ test-open: support mingw errno values
+ * tests/test-open.h (test_open): Relax test.
+ * tests/test-fopen.h (test_fopen): Likewise.
+ * tests/test-openat-safer.c (main): Likewise.
+
open: fix opening directory on mingw
* lib/open.c (open) [REPLACE_OPEN_DIRECTORY]: Correct typo.
/* Trailing slash is invalid on non-directory. */
errno = 0;
ASSERT (fopen (BASE "file/", "r") == NULL);
- ASSERT (errno == ENOTDIR || errno == EISDIR);
+ ASSERT (errno == ENOTDIR || errno == EISDIR || errno == EINVAL);
/* Cannot create a directory. */
errno = 0;
ASSERT (fopen ("nonexist.ent/", "w") == NULL);
- ASSERT (errno == ENOTDIR || errno == EISDIR || errno == ENOENT);
+ ASSERT (errno == ENOTDIR || errno == EISDIR || errno == ENOENT
+ || errno == EINVAL);
/* Directories cannot be opened for writing. */
errno = 0;
ASSERT (fopen (".", "w") == NULL);
- ASSERT (errno == EISDIR || errno == EINVAL);
+ ASSERT (errno == EISDIR || errno == EINVAL || errno == EACCES);
/* /dev/null must exist, and be writable. */
f = fopen ("/dev/null", "r");
/* Cannot create directory. */
errno = 0;
ASSERT (open ("nonexist.ent/", O_CREAT | O_RDONLY, 0600) == -1);
- ASSERT (errno == ENOTDIR || errno == EISDIR || errno == ENOENT);
+ ASSERT (errno == ENOTDIR || errno == EISDIR || errno == ENOENT
+ || errno == EINVAL);
/* Create a regular file. */
fd = open (BASE "file", O_CREAT | O_RDONLY, 0600);
/* Trailing slash handling. */
errno = 0;
ASSERT (open (BASE "file/", O_RDONLY) == -1);
- ASSERT (errno == ENOTDIR || errno == EISDIR);
+ ASSERT (errno == ENOTDIR || errno == EISDIR || errno == EINVAL);
/* Directories cannot be opened for writing. */
errno = 0;
ASSERT (open (".", O_WRONLY) == -1);
- ASSERT (errno == EISDIR);
+ ASSERT (errno == EISDIR || errno == EACCES);
/* /dev/null must exist, and be writable. */
fd = open ("/dev/null", O_RDONLY);
errno = 0;
ASSERT (openat (dfd, "nonexist.ent/", O_CREAT | O_RDONLY,
S_IRUSR | S_IWUSR) == -1);
- ASSERT (errno == ENOTDIR || errno == EISDIR || errno == ENOENT);
+ ASSERT (errno == ENOTDIR || errno == EISDIR || errno == ENOENT
+ || errno == EINVAL);
errno = 0;
ASSERT (openat (dfd, witness "/", O_RDONLY) == -1);
- ASSERT (errno == ENOTDIR || errno == EISDIR);
+ ASSERT (errno == ENOTDIR || errno == EISDIR || errno == EINVAL);
/* Using a bad directory is okay for absolute paths. */
fd = openat (-1, "/dev/null", O_WRONLY);
ASSERT (STDERR_FILENO < fd);