cargo-test-fuzz 0.1.0-alpha.12

cargo-test-fuzz
use assert_cmd::prelude::*;
use predicates::prelude::*;
use std::process::Command;

const TEST_DIR: &str = "../examples";

#[test]
fn display_qwerty() {
    display("qwerty", "Args { data: \"asdfgh\" }", "")
}

#[test]
fn display_debug() {
    display(
        "debug",
        "",
        "Encountered a failure while not replaying. A buggy Debug implementation perhaps?",
    )
}

fn display(target: &str, stdout: &str, stderr: &str) {
    Command::new("cargo")
        .current_dir(TEST_DIR)
        .args(&["test", "--", "--test", target])
        .assert()
        .success();

    Command::cargo_bin("cargo-test-fuzz")
        .unwrap()
        .current_dir(TEST_DIR)
        .args(&["test-fuzz", "--target", target, "--display-corpus"])
        .assert()
        .success()
        .stdout(predicate::str::contains(stdout))
        .stderr(predicate::str::contains(stderr));
}