summaryrefslogtreecommitdiffstats
path: root/vendor/rustix/tests/termios/isatty.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/rustix/tests/termios/isatty.rs')
-rw-r--r--vendor/rustix/tests/termios/isatty.rs69
1 files changed, 69 insertions, 0 deletions
diff --git a/vendor/rustix/tests/termios/isatty.rs b/vendor/rustix/tests/termios/isatty.rs
new file mode 100644
index 000000000..5e6fae73d
--- /dev/null
+++ b/vendor/rustix/tests/termios/isatty.rs
@@ -0,0 +1,69 @@
+use rustix::fd::AsRawFd;
+use rustix::termios::{isatty, tcgetwinsize};
+use tempfile::{tempdir, TempDir};
+
+#[allow(unused)]
+fn tmpdir() -> TempDir {
+ tempdir().expect("expected to be able to create a temporary directory")
+}
+
+#[test]
+fn std_file_is_not_terminal() {
+ let tmpdir = tempfile::tempdir().unwrap();
+ assert!(!isatty(
+ &std::fs::File::create(tmpdir.path().join("file")).unwrap()
+ ));
+ assert!(!isatty(
+ &std::fs::File::open(tmpdir.path().join("file")).unwrap()
+ ));
+}
+
+#[test]
+fn stdout_stderr_terminals() {
+ // This test is flaky under qemu.
+ if std::env::vars().any(|var| var.0.starts_with("CARGO_TARGET_") && var.0.ends_with("_RUNNER"))
+ {
+ return;
+ }
+
+ // Compare `isatty` against `libc::isatty`.
+ assert_eq!(isatty(&std::io::stdout()), unsafe {
+ libc::isatty(std::io::stdout().as_raw_fd()) != 0
+ });
+ assert_eq!(isatty(&std::io::stderr()), unsafe {
+ libc::isatty(std::io::stderr().as_raw_fd()) != 0
+ });
+
+ // Compare `isatty` against `tcgetwinsize`.
+ assert_eq!(
+ isatty(&std::io::stdout()),
+ tcgetwinsize(&std::io::stdout()).is_ok()
+ );
+ assert_eq!(
+ isatty(&std::io::stderr()),
+ tcgetwinsize(&std::io::stderr()).is_ok()
+ );
+}
+
+#[test]
+fn stdio_descriptors() {
+ #[cfg(unix)]
+ use std::os::unix::io::AsRawFd;
+ #[cfg(target_os = "wasi")]
+ use std::os::wasi::io::AsRawFd;
+
+ unsafe {
+ assert_eq!(
+ rustix::io::stdin().as_raw_fd(),
+ std::io::stdin().as_raw_fd()
+ );
+ assert_eq!(
+ rustix::io::stdout().as_raw_fd(),
+ std::io::stdout().as_raw_fd()
+ );
+ assert_eq!(
+ rustix::io::stderr().as_raw_fd(),
+ std::io::stderr().as_raw_fd()
+ );
+ }
+}