1 //@ignore-target-windows: no libc on Windows
2 //@compile-flags: -Zmiri-isolation-error=warn-nobacktrace
3 //@normalize-stderr-test: "(stat(x)?)" -> "$$STAT"
7 use std::io::{Error, ErrorKind};
12 assert_eq!(libc::fcntl(1, libc::F_DUPFD, 0), -1);
13 assert_eq!(Error::last_os_error().raw_os_error(), Some(libc::EPERM));
17 let symlink_c_str = CString::new("foo.txt").unwrap();
18 let mut buf = vec![0; "foo_link.txt".len() + 1];
20 assert_eq!(libc::readlink(symlink_c_str.as_ptr(), buf.as_mut_ptr(), buf.len()), -1);
21 assert_eq!(Error::last_os_error().raw_os_error(), Some(libc::EACCES));
25 let err = fs::metadata("foo.txt").unwrap_err();
26 assert_eq!(err.kind(), ErrorKind::PermissionDenied);
27 // check that it is the right kind of `PermissionDenied`
28 assert_eq!(err.raw_os_error(), Some(libc::EACCES));