diff --git a/tests/data/stdin_is_terminal/Cargo.toml b/tests/data/stdin_is_terminal/Cargo.toml new file mode 100644 index 0000000..24d6f3a --- /dev/null +++ b/tests/data/stdin_is_terminal/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "stdin_is_terminal" +version = "0.0.0" +edition = "2021" + +[workspace] + +[dependencies] +is-terminal = "0.4.13" diff --git a/tests/data/stdin_is_terminal.rs b/tests/data/stdin_is_terminal/src/main.rs similarity index 58% rename from tests/data/stdin_is_terminal.rs rename to tests/data/stdin_is_terminal/src/main.rs index 5513c4e..9b7a818 100644 --- a/tests/data/stdin_is_terminal.rs +++ b/tests/data/stdin_is_terminal/src/main.rs @@ -1,7 +1,7 @@ -use std::{ - io::{stdin, IsTerminal}, - process::exit, -}; +use std::{io::stdin, process::exit}; + +// TODO: switch to `std::io::IsTerminal` when MSRV >= 1.70.0 +use is_terminal::IsTerminal; fn main() { if stdin().is_terminal() { diff --git a/tests/it/main.rs b/tests/it/main.rs index b2d0172..2cc8895 100644 --- a/tests/it/main.rs +++ b/tests/it/main.rs @@ -10,22 +10,33 @@ fn setup() -> Shell { static ONCE: std::sync::Once = std::sync::Once::new(); let sh = Shell::new().unwrap(); - let source_files = [ - sh.current_dir().join("./tests/data/xecho.rs"), - sh.current_dir().join("./tests/data/stdin_is_terminal.rs"), - ]; + let single_file_sources = [sh.current_dir().join("./tests/data/xecho.rs")]; + let crate_sources = [sh.current_dir().join("./tests/data/stdin_is_terminal/")]; let target_dir = sh.current_dir().join("./target/"); ONCE.call_once(|| { - for src in source_files { + for src in single_file_sources { cmd!(sh, "rustc {src} --out-dir {target_dir}") .quiet() .run() .unwrap_or_else(|err| panic!("failed to install binaries from mock_bin: {}", err)) } + for src_dir in crate_sources { + sh.change_dir(src_dir); + cmd!(sh, "cargo build -q --target-dir {target_dir}") + .quiet() + .run() + .unwrap_or_else(|err| panic!("failed to build mock crate: {err}")); + } }); - sh.set_var("PATH", target_dir); + let path_env = std::env::join_paths([ + &target_dir, + &target_dir.join("debug/"), + &target_dir.join("release/"), + ]) + .unwrap(); + sh.set_var("PATH", path_env); sh }