nofollow test: permit ACCES as well as LOOP when opening with nofollow
This commit is contained in:
@@ -16,16 +16,18 @@ unsafe fn test_nofollow_errors(dir_fd: wasi::Fd) {
|
||||
.raw_error();
|
||||
assert!(
|
||||
dir_open_errno == wasi::ERRNO_LOOP || dir_open_errno == wasi::ERRNO_NOTDIR,
|
||||
"errno should be ERRNO_LOOP or ERRNO_NOTDIR",
|
||||
"errno should be ERRNO_LOOP or ERRNO_NOTDIR, got {}",
|
||||
dir_open_errno,
|
||||
);
|
||||
|
||||
// Try to open it with just O_NOFOLLOW.
|
||||
assert_eq!(
|
||||
wasi::path_open(dir_fd, 0, "symlink", 0, 0, 0, 0)
|
||||
.expect_err("opening a symlink with O_NOFOLLOW should fail")
|
||||
.raw_error(),
|
||||
wasi::ERRNO_LOOP,
|
||||
"errno should be ERRNO_LOOP",
|
||||
let file_open_errno = wasi::path_open(dir_fd, 0, "symlink", 0, 0, 0, 0)
|
||||
.expect_err("opening a symlink with O_NOFOLLOW should fail")
|
||||
.raw_error();
|
||||
assert!(
|
||||
file_open_errno == wasi::ERRNO_LOOP || file_open_errno == wasi::ERRNO_ACCES,
|
||||
"errno should be ERRNO_LOOP or ERRNO_ACCES, got {}",
|
||||
file_open_errno,
|
||||
);
|
||||
|
||||
// Try to open it as a directory without O_NOFOLLOW.
|
||||
|
||||
@@ -61,7 +61,9 @@ unsafe fn create_symlink_to_directory(dir_fd: wasi::Fd) {
|
||||
wasi::fd_close(target_dir_via_symlink).expect("closing a file");
|
||||
|
||||
// Replace the target directory with a file.
|
||||
wasi::path_unlink_file(dir_fd, "symlink").expect("removing a file");
|
||||
wasi::path_unlink_file(dir_fd, "symlink").expect("remove symlink to directory");
|
||||
// FIXME: use the line below instead of the line above, and this test passes on windows!
|
||||
//wasi::path_remove_directory(dir_fd, "symlink").expect("remove symlink to directory");
|
||||
wasi::path_remove_directory(dir_fd, "target")
|
||||
.expect("remove_directory on a directory should succeed");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user