1#[cfg(feature = "fs")]
2#[cfg(not(target_os = "redox"))]
3#[test]
4fn test_owned() {
5    use rustix::fd::{AsFd, AsRawFd, FromRawFd, IntoRawFd};
6
7    let file = rustix::fs::openat(
8        rustix::fs::cwd(),
9        "Cargo.toml",
10        rustix::fs::OFlags::RDONLY,
11        rustix::fs::Mode::empty(),
12    )
13    .unwrap();
14
15    let raw = file.as_raw_fd();
16    assert_eq!(raw, file.as_fd().as_raw_fd());
17
18    let inner = file.into_raw_fd();
19    assert_eq!(raw, inner);
20
21    let new = unsafe { rustix::fd::OwnedFd::from_raw_fd(inner) };
22    let mut buf = [0_u8; 4];
23    let _ = rustix::io::read(&new, &mut buf).unwrap();
24}
25