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