#![allow(missing_docs)]
#![allow(clippy::unwrap_used, clippy::expect_used)]
use std::process::{Command, Stdio};
fn hsh() -> Command {
let bin = env!("CARGO_BIN_EXE_hsh");
Command::new(bin)
}
fn run_check_stdout(args: &[&str]) -> String {
let output = hsh()
.args(args)
.stdout(Stdio::piped())
.stderr(Stdio::piped())
.output()
.expect("spawn hsh");
assert!(
output.status.success(),
"hsh exited non-zero: {}\nstderr: {}",
output.status,
String::from_utf8_lossy(&output.stderr),
);
String::from_utf8(output.stdout)
.expect("utf-8 stdout")
.replace("\r\n", "\n")
}
const ARGON2ID_FIXTURE: &str = "$argon2id$v=19$m=19456,t=2,p=1$c2FsdHNhbHRzYWx0$\
ZJG8Sl9MhEd84QPshSeWLNVnPLBPp9DiOhcPjT0bDqQ";
#[test]
fn inspect_argon2id_phc_format() {
let stdout = run_check_stdout(&["inspect", ARGON2ID_FIXTURE]);
insta::assert_snapshot!("inspect_argon2id_phc", stdout);
}
const BCRYPT_FIXTURE: &str =
"$2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy";
#[test]
fn inspect_bcrypt_mcf_format() {
let stdout = run_check_stdout(&["inspect", BCRYPT_FIXTURE]);
insta::assert_snapshot!("inspect_bcrypt_mcf", stdout);
}
#[cfg(unix)]
#[test]
fn help_top_level_layout() {
let stdout = run_check_stdout(&["--help"]);
insta::assert_snapshot!("help_top_level", stdout);
}
#[cfg(unix)]
#[test]
fn help_hash_subcommand_layout() {
let stdout = run_check_stdout(&["hash", "--help"]);
insta::assert_snapshot!("help_hash", stdout);
}
#[cfg(unix)]
#[test]
fn help_verify_subcommand_layout() {
let stdout = run_check_stdout(&["verify", "--help"]);
insta::assert_snapshot!("help_verify", stdout);
}