1// The conversion is not useless on all platforms.
2#[allow(clippy::useless_conversion)]
3#[cfg(target_os = "freebsd")]
4#[test]
5fn test_chflags() {
6 use nix::{
7 sys::stat::{fstat, FileFlag},
8 unistd::chflags,
9 };
10 use std::os::unix::io::AsRawFd;
11 use tempfile::NamedTempFile;
12
13 let f = NamedTempFile::new().unwrap();
14
15 let initial = FileFlag::from_bits_truncate(
16 fstat(f.as_raw_fd()).unwrap().st_flags.into(),
17 );
18 // UF_OFFLINE is preserved by all FreeBSD file systems, but not interpreted
19 // in any way, so it's handy for testing.
20 let commanded = initial ^ FileFlag::UF_OFFLINE;
21
22 chflags(f.path(), commanded).unwrap();
23
24 let changed = FileFlag::from_bits_truncate(
25 fstat(f.as_raw_fd()).unwrap().st_flags.into(),
26 );
27
28 assert_eq!(commanded, changed);
29}
30