use std::panic; use festive::{fork, fork_id}; #[test] fn fork_basically_works() { let res = fork("tests::fork_basically_works", fork_id!(), None, || { println!("works") }) .unwrap(); assert!(res.status.success()); } #[test] fn fork_passes_output() { let res = fork("tests::fork_passes_output", fork_id!(), None, || { println!("works") }) .unwrap(); assert!(res.status.success()); let outstr = String::from_utf8_lossy(&res.stdout); assert!(outstr.contains("works")); } #[test] fn fork_panic_works() { let res = fork("tests::fork_panic_works", fork_id!(), None, || { panic!("panicmsg") }) .unwrap(); assert!(!res.status.success()); assert_eq!(70, res.status.code().unwrap()); let outstr = String::from_utf8_lossy(&res.stderr); assert!(outstr.contains("panicmsg")); } #[test] fn ids_distinct() { assert_ne!(fork_id!(), fork_id!()); }