// The conversion is not useless on all platforms. #[allow(clippy::useless_conversion)] #[cfg(target_os = "freebsd")] #[test] fn test_chflags() { use nix::{ sys::stat::{fstat, FileFlag}, unistd::chflags, }; use std::os::unix::io::AsRawFd; use tempfile::NamedTempFile; let f = NamedTempFile::new().unwrap(); let initial = FileFlag::from_bits_truncate( fstat(f.as_raw_fd()).unwrap().st_flags.into(), ); // UF_OFFLINE is preserved by all FreeBSD file systems, but not interpreted // in any way, so it's handy for testing. let commanded = initial ^ FileFlag::UF_OFFLINE; chflags(f.path(), commanded).unwrap(); let changed = FileFlag::from_bits_truncate( fstat(f.as_raw_fd()).unwrap().st_flags.into(), ); assert_eq!(commanded, changed); }