summaryrefslogtreecommitdiff
path: root/tests/test-link.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-link.h')
-rw-r--r--tests/test-link.h22
1 files changed, 14 insertions, 8 deletions
diff --git a/tests/test-link.h b/tests/test-link.h
index 5898285..d546d56 100644
--- a/tests/test-link.h
+++ b/tests/test-link.h
@@ -1,5 +1,5 @@
/* Test of link() function.
- Copyright (C) 2009-2011 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
@@ -115,10 +115,10 @@ test_link (int (*func) (char const *, char const *), bool print)
ASSERT (errno == ENOENT);
errno = 0;
ASSERT (func (BASE "a/", BASE "c") == -1);
- ASSERT (errno == ENOTDIR);
+ ASSERT (errno == ENOTDIR || errno == EINVAL);
errno = 0;
ASSERT (func (BASE "a", BASE "c/") == -1);
- ASSERT (errno == ENOTDIR || errno == ENOENT);
+ ASSERT (errno == ENOTDIR || errno == ENOENT || errno == EINVAL);
/* Most platforms reject hard links to directories, and even on
those that do permit it, most users can't create them. We assume
@@ -136,13 +136,15 @@ test_link (int (*func) (char const *, char const *), bool print)
else
{
/* Most everyone else. */
- ASSERT (errno == EPERM || errno == EACCES);
+ ASSERT (errno == EPERM || errno == EACCES || errno == EISDIR);
errno = 0;
ASSERT (func (BASE "d/.", BASE "c") == -1);
- ASSERT (errno == EPERM || errno == EACCES || errno == EINVAL);
+ ASSERT (errno == EPERM || errno == EACCES || errno == EISDIR
+ || errno == EINVAL);
errno = 0;
ASSERT (func (BASE "d/.//", BASE "c") == -1);
- ASSERT (errno == EPERM || errno == EACCES || errno == EINVAL);
+ ASSERT (errno == EPERM || errno == EACCES || errno == EISDIR
+ || errno == EINVAL);
}
}
ASSERT (unlink (BASE "a") == 0);
@@ -162,11 +164,15 @@ test_link (int (*func) (char const *, char const *), bool print)
}
errno = 0;
ASSERT (func (BASE "b", BASE "link/") == -1);
- ASSERT (errno == ENOTDIR || errno == ENOENT || errno == EEXIST);
+ ASSERT (errno == ENOTDIR || errno == ENOENT || errno == EEXIST
+ || errno == EINVAL);
+ errno = 0;
+ ASSERT (func (BASE "b", BASE "link") == -1);
+ ASSERT (errno == EEXIST);
ASSERT (rename (BASE "b", BASE "a") == 0);
errno = 0;
ASSERT (func (BASE "link/", BASE "b") == -1);
- ASSERT (errno == ENOTDIR || errno == EEXIST);
+ ASSERT (errno == ENOTDIR || errno == EEXIST || errno == EINVAL);
/* Clean up. */
ASSERT (unlink (BASE "a") == 0);