diff --git a/crates/test-programs/TEST_FAILURES b/crates/test-programs/TEST_FAILURES index 92210e99af..cc4d41927d 100644 --- a/crates/test-programs/TEST_FAILURES +++ b/crates/test-programs/TEST_FAILURES @@ -35,8 +35,5 @@ - same incorrect behavior as linux -* dangling_symlink -* path_rename_trailing_slashes * remove_directory_trailing_slashes * symlink_filestat -* symlink_loop diff --git a/crates/test-programs/wasi-tests/src/bin/symlink_loop.rs b/crates/test-programs/wasi-tests/src/bin/symlink_loop.rs index e6edae2392..e18fa28b28 100644 --- a/crates/test-programs/wasi-tests/src/bin/symlink_loop.rs +++ b/crates/test-programs/wasi-tests/src/bin/symlink_loop.rs @@ -1,20 +1,22 @@ use std::{env, process}; -use wasi_tests::{assert_errno, open_scratch_directory}; +use wasi_tests::{assert_errno, open_scratch_directory, TESTCONFIG}; unsafe fn test_symlink_loop(dir_fd: wasi::Fd) { - // Create a self-referencing symlink. - wasi::path_symlink("symlink", dir_fd, "symlink").expect("creating a symlink"); + if TESTCONFIG.support_dangling_symlinks() { + // Create a self-referencing symlink. + wasi::path_symlink("symlink", dir_fd, "symlink").expect("creating a symlink"); - // Try to open it. - assert_errno!( - wasi::path_open(dir_fd, 0, "symlink", 0, 0, 0, 0) - .expect_err("opening a self-referencing symlink") - .raw_error(), - wasi::ERRNO_LOOP - ); + // Try to open it. + assert_errno!( + wasi::path_open(dir_fd, 0, "symlink", 0, 0, 0, 0) + .expect_err("opening a self-referencing symlink") + .raw_error(), + wasi::ERRNO_LOOP + ); - // Clean up. - wasi::path_unlink_file(dir_fd, "symlink").expect("removing a file"); + // Clean up. + wasi::path_unlink_file(dir_fd, "symlink").expect("removing a file"); + } } fn main() {