X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-link.h;h=5c50da0a9d221e437c8495f9a4ad016c9ef4d939;hb=8750d25d450a75684c2f29e2eea2467cea18f076;hp=58982854b73fe915cca141b2ff49857985eb8b35;hpb=d60f3b0c6b0f93a601acd1cfd3923f94ca05abb0;p=gnulib.git diff --git a/tests/test-link.h b/tests/test-link.h index 58982854b..5c50da0a9 100644 --- a/tests/test-link.h +++ b/tests/test-link.h @@ -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);