festive 0.2.2

Run your tests in isolation
Documentation
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!());
}