rpki/tests/test_rpki_bin_coverage.rs

34 lines
994 B
Rust

use std::process::Command;
#[test]
fn rpki_bin_help_exits_success_and_prints_usage() {
// This also increases coverage for `src/bin/rpki.rs` because it executes the binary.
let exe = env!("CARGO_BIN_EXE_rpki");
let out = Command::new(exe)
.arg("--help")
.output()
.expect("run rpki --help");
assert!(out.status.success(), "status={}", out.status);
let stdout = String::from_utf8_lossy(&out.stdout);
// `cli::usage()` contains "Usage:".
assert!(
stdout.contains("Usage:") || stdout.contains("USAGE:"),
"stdout={stdout}"
);
}
#[test]
fn rpki_bin_without_args_exits_2_and_prints_error() {
let exe = env!("CARGO_BIN_EXE_rpki");
let out = Command::new(exe).output().expect("run rpki");
assert_eq!(out.status.code(), Some(2), "status={}", out.status);
let stderr = String::from_utf8_lossy(&out.stderr);
assert!(
!stderr.trim().is_empty(),
"expected non-empty stderr, got empty"
);
}