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