TODOs: * File::reopen_with_fdflags is unimplemented, File::get_fdflags is lying - these are fcntl on unix, reopenfile / require reopening on windows. # Linux * path_link - need DirExt::hard_link that follows symlinks. * path_rename_trailing_slashes - trailing slash behavior of files is wrong: trailing slashes are ignored, should cause an error. * remove_directory_trailing_slashes - cap-std Dir::remove_dir gives EINVAL when trying to remove dir with trailing slash. otherwise, everything passes. * fd_flags_set - set_fdflags is not implemented. test wanted to clear O_APPEND mode * path_filestat - fdstat.fs_flags is not populated correctly - APPEND | SYNC aren't present because File::get_fdflags isnt implemented correctly # Windows * fd_readdir - DirEntry metadata ino panics on windows: https://github.com/bytecodealliance/cap-std/issues/142 * file_allocate - call to fd_allocate(10,10) reduces size from 100 to 20 * interesting_paths - on windows, opening `dir/nested/file/` (line 53) with a trailing slash gets you a NOENT instead of a NOTDIR errno. * nofollow_errors - panic in my io::Error translation code: Unhandled kind: Other, caused by "symlink encountered" * path_rename - permission denied on windows to rename a dir to an existing empty dir * path_link - fails on the first dangling symlink, which is before the hard_link following symlinks issue linux hits. ## "Trailing slashes are a bonified boondoggle" - Dan * path_rename_trailing_slashes * path_symlink_trailing_slashes * remove_directory_trailing_slashes * unlink_file_trailing_slashes ## Same missing functionality as over in Linux: * fd_flags_set * path_filestat