1 // The conversion is not useless on all platforms. 2 #[allow(clippy::useless_conversion)] 3 #[cfg(target_os = "freebsd")] 4 #[test] test_chflags()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