rty 0.2.2

A simple command line retry tool.
use assert_cmd::Command;
use predicates::prelude::*;

#[cfg(not(target_os = "windows"))]
#[test]
fn successful_1_time() {
    let mut cmd = Command::cargo_bin("rty").unwrap();

    cmd.arg("echo abc")
        .arg("-c")
        .arg("2")
        .assert()
        .success()
        .stdout(predicate::eq(
            r"abc
",
        ));
}

#[cfg(target_os = "windows")]
#[test]
fn successful_1_time() {
    let mut cmd = Command::cargo_bin("rty").unwrap();

    cmd.arg("echo abc")
        .arg("-c")
        .arg("2")
        .assert()
        .success()
        .stdout(predicate::eq("abc\r\n"));
}

#[test]
fn failed_2_time() {
    let mut cmd = Command::cargo_bin("rty").unwrap();

    cmd.arg("dummy")
        .arg("-c")
        .arg("2")
        .assert()
        .failure()
        .stderr(predicate::eq(
            r"rty: command not found 'dummy'
rty: command not found 'dummy'
",
        ));
}

#[test]
fn failed_2_time_with_double_hyphen() {
    let mut cmd = Command::cargo_bin("rty").unwrap();

    cmd.arg("-c")
        .arg("2")
        .arg("--")
        .arg("dummy")
        .assert()
        .failure()
        .stderr(predicate::eq(
            r"rty: command not found 'dummy'
rty: command not found 'dummy'
",
        ));
}

#[test]
fn sleep_one_time() {
    let mut cmd = Command::cargo_bin("rty").unwrap();

    let now = std::time::Instant::now();

    cmd.arg("dummy")
        .arg("-c")
        .arg("2")
        .arg("-i")
        .arg("0.5")
        .assert()
        .failure();

    assert!(now.elapsed() >= std::time::Duration::from_secs_f64(0.5))
}