From dd24cc2aec9ece8214ec1a4eff4abd26d00ea083 Mon Sep 17 00:00:00 2001 From: Jonas Maier Date: Sat, 9 May 2026 11:30:28 +0200 Subject: simple script file test --- tests/common.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 tests/common.rs (limited to 'tests/common.rs') diff --git a/tests/common.rs b/tests/common.rs new file mode 100644 index 0000000..210b92a --- /dev/null +++ b/tests/common.rs @@ -0,0 +1,19 @@ +#[cfg(test)] +pub fn test_case(_name: &str, script: &[u8], expected_output: &[u8]) { + use pish::parse::Parse; + use pish::rw::*; + use std::io::Read; + use std::sync::{Arc, Mutex}; + + let session = Arc::new(Mutex::new(pish::Session::new_noninteractive())); + let script = pish::parse::Script::parse_from_bytes(script).unwrap(); + let (stdin, _c1) = InputReader::new(Input::Null); + let (mut pr, pw) = std::io::pipe().unwrap(); + let (stdout, _c2) = OutputWriter::new(Output::Pipe(pw)); + let mut exec = pish::run::Executor::new(session.clone()); + let mut spawned = exec.execute_script(script, stdin, stdout); + let _res = spawned.join_timeout(1000); + let mut actual_output = Vec::new(); + pr.read_to_end(&mut actual_output).unwrap(); + assert_eq!(expected_output, actual_output); +} -- cgit v1.2.3