Skip to content

Commit

Permalink
libc test: also call isatty on an actual file
Browse files Browse the repository at this point in the history
  • Loading branch information
RalfJung committed Jul 18, 2022
1 parent 896f558 commit 126e71a
Showing 1 changed file with 16 additions and 5 deletions.
21 changes: 16 additions & 5 deletions tests/pass/libc.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
//@ignore-windows: No libc on Windows
//@compile-flags: -Zmiri-disable-isolation

#![feature(rustc_private)]

use std::fs::{remove_file, File};
use std::os::unix::io::AsRawFd;

extern crate libc;

#[cfg(any(target_os = "linux", target_os = "freebsd"))]
Expand All @@ -15,9 +17,7 @@ fn tmp() -> std::path::PathBuf {
#[cfg(any(target_os = "linux", target_os = "freebsd"))]
fn test_posix_fadvise() {
use std::convert::TryInto;
use std::fs::{remove_file, File};
use std::io::Write;
use std::os::unix::io::AsRawFd;

let path = tmp().join("miri_test_libc_posix_fadvise.txt");
// Cleanup before test
Expand All @@ -44,9 +44,7 @@ fn test_posix_fadvise() {

#[cfg(any(target_os = "linux"))]
fn test_sync_file_range() {
use std::fs::{remove_file, File};
use std::io::Write;
use std::os::unix::io::AsRawFd;

let path = tmp().join("miri_test_libc_sync_file_range.txt");
// Cleanup before test.
Expand Down Expand Up @@ -319,6 +317,19 @@ fn test_isatty() {
libc::isatty(libc::STDIN_FILENO);
libc::isatty(libc::STDOUT_FILENO);
libc::isatty(libc::STDERR_FILENO);

// But when we open a file, it is definitely not a TTY.
let path = tmp().join("notatty.txt");
// Cleanup before test.
remove_file(&path).ok();
let file = File::create(&path).unwrap();

assert_eq!(libc::isatty(file.as_raw_fd()), 0);
assert_eq!(std::io::Error::last_os_error().raw_os_error().unwrap(), libc::ENOTTY);

// Cleanup after test.
drop(file);
remove_file(&path).unwrap();
}
}

Expand Down

0 comments on commit 126e71a

Please sign in to comment.