78 lines
2.3 KiB
Rust
78 lines
2.3 KiB
Rust
use anyhow::Result;
|
|
use thinp::version::TOOLS_VERSION;
|
|
|
|
mod common;
|
|
use common::*;
|
|
use common::test_dir::*;
|
|
|
|
//------------------------------------------
|
|
|
|
#[test]
|
|
fn accepts_v() -> Result<()> {
|
|
let stdout = thin_metadata_pack!("-V").read()?;
|
|
assert!(stdout.contains(TOOLS_VERSION));
|
|
Ok(())
|
|
}
|
|
|
|
#[test]
|
|
fn accepts_version() -> Result<()> {
|
|
let stdout = thin_metadata_pack!("--version").read()?;
|
|
assert!(stdout.contains(TOOLS_VERSION));
|
|
Ok(())
|
|
}
|
|
|
|
const USAGE: &str = "thin_metadata_pack 0.9.0\nProduces a compressed file of thin metadata. Only packs metadata blocks that are actually used.\n\nUSAGE:\n thin_metadata_pack -i <DEV> -o <FILE>\n\nFLAGS:\n -h, --help Prints help information\n -V, --version Prints version information\n\nOPTIONS:\n -i <DEV> Specify thinp metadata binary device/file\n -o <FILE> Specify packed output file";
|
|
|
|
#[test]
|
|
fn accepts_h() -> Result<()> {
|
|
let stdout = thin_metadata_pack!("-h").read()?;
|
|
assert_eq!(stdout, USAGE);
|
|
Ok(())
|
|
}
|
|
|
|
#[test]
|
|
fn accepts_help() -> Result<()> {
|
|
let stdout = thin_metadata_pack!("--help").read()?;
|
|
assert_eq!(stdout, USAGE);
|
|
Ok(())
|
|
}
|
|
|
|
#[test]
|
|
fn rejects_bad_option() -> Result<()> {
|
|
let stderr = run_fail(thin_metadata_pack!("--hedgehogs-only"))?;
|
|
assert!(stderr.contains("Found argument \'--hedgehogs-only\'"));
|
|
Ok(())
|
|
}
|
|
|
|
#[test]
|
|
fn missing_input_file() -> Result<()> {
|
|
let mut td = TestDir::new()?;
|
|
let md = mk_zeroed_md(&mut td)?;
|
|
let stderr = run_fail(thin_metadata_pack!("-o", &md))?;
|
|
assert!(
|
|
stderr.contains("error: The following required arguments were not provided:\n -i <DEV>")
|
|
);
|
|
Ok(())
|
|
}
|
|
|
|
#[test]
|
|
fn no_such_input_file() -> Result<()> {
|
|
let mut td = TestDir::new()?;
|
|
let md = mk_zeroed_md(&mut td)?;
|
|
let stderr = run_fail(thin_metadata_pack!("-i", "no-such-file", "-o", &md))?;
|
|
assert!(stderr.contains("Couldn't find input file"));
|
|
Ok(())
|
|
}
|
|
|
|
#[test]
|
|
fn missing_output_file() -> Result<()> {
|
|
let mut td = TestDir::new()?;
|
|
let md = mk_zeroed_md(&mut td)?;
|
|
let stderr = run_fail(thin_metadata_pack!("-i", &md))?;
|
|
assert!(stderr
|
|
.contains("error: The following required arguments were not provided:\n -o <FILE>"));
|
|
Ok(())
|
|
}
|
|
|
|
//------------------------------------------
|