]> git.proxmox.com Git - rustc.git/blob - vendor/rustix/tests/fs/mknodat.rs
New upstream version 1.64.0+dfsg1
[rustc.git] / vendor / rustix / tests / fs / mknodat.rs
1 #[cfg(not(any(
2 target_os = "ios",
3 target_os = "macos",
4 target_os = "redox",
5 target_os = "wasi",
6 )))]
7 #[test]
8 fn test_mknodat() {
9 use rustix::fs::{cwd, mknodat, openat, statat, unlinkat, AtFlags, FileType, Mode, OFlags};
10
11 let tmp = tempfile::tempdir().unwrap();
12 let dir = openat(cwd(), tmp.path(), OFlags::RDONLY, Mode::empty()).unwrap();
13
14 // Create a regular file. Not supported on FreeBSD or OpenBSD.
15 #[cfg(not(any(target_os = "freebsd", target_os = "openbsd")))]
16 {
17 mknodat(&dir, "foo", FileType::RegularFile, Mode::empty(), 0).unwrap();
18 let stat = statat(&dir, "foo", AtFlags::empty()).unwrap();
19 assert_eq!(FileType::from_raw_mode(stat.st_mode), FileType::RegularFile);
20 unlinkat(&dir, "foo", AtFlags::empty()).unwrap();
21 }
22
23 mknodat(&dir, "foo", FileType::Fifo, Mode::empty(), 0).unwrap();
24 let stat = statat(&dir, "foo", AtFlags::empty()).unwrap();
25 assert_eq!(FileType::from_raw_mode(stat.st_mode), FileType::Fifo);
26 unlinkat(&dir, "foo", AtFlags::empty()).unwrap();
27 }