Skip to content

Commit 3a2702e

Browse files
committed
Add dir_fd support for rmdir, remove/unlink, scandir
- rmdir: use unlinkat(fd, path, AT_REMOVEDIR) when dir_fd given - remove/unlink: use unlinkat(fd, path, 0) when dir_fd given - scandir: accept fd via fdopendir, add ScandirIteratorFd - listdir: rewrite fd path to use raw readdir instead of nix::dir::Dir - DirEntry: add d_type and dir_fd fields for fd-based scandir - Update supports_fd/supports_dir_fd entries accordingly
1 parent 15bbe37 commit 3a2702e

File tree

4 files changed

+366
-53
lines changed

4 files changed

+366
-53
lines changed

Lib/test/test_os.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5312,7 +5312,6 @@ def test_bytes_like(self):
53125312
with self.assertRaises(TypeError):
53135313
os.scandir(path_bytes)
53145314

5315-
@unittest.expectedFailure # TODO: RUSTPYTHON; AssertionError: <builtin_function_or_method object at 0xba3106920> not found in {<builtin_function_or_method object at 0xba31078e0>, <builtin_function_or_method object at 0xba31079c0>, <builtin_function_or_method object at 0xba3107b10>, <builtin_function_or_method object at 0xba3159500>, <builtin_function_or_method object at 0xba3159570>, <builtin_function_or_method object at 0xba3107800>, <builtin_function_or_method object at 0xba3106760>, <builtin_function_or_method object at 0xba3106a00>, <builtin_function_or_method object at 0xba3106990>, <builtin_function_or_method object at 0xba3107330>, <builtin_function_or_method object at 0xba31072c0>, <builtin_function_or_method object at 0xba31064c0>}
53165315
@unittest.skipUnless(os.listdir in os.supports_fd,
53175316
'fd support for listdir required for this test.')
53185317
def test_fd(self):

crates/common/src/os.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ pub mod ffi {
118118

119119
fn from_bytes(slice: &[u8]) -> &OsStr {
120120
// WASI strings are guaranteed to be UTF-8
121-
OsStr::new(std::str::from_utf8(slice).expect("wasip2 strings are UTF-8"))
121+
OsStr::new(core::str::from_utf8(slice).expect("wasip2 strings are UTF-8"))
122122
}
123123
}
124124

0 commit comments

Comments
 (0)