//! End-to-end CLI tests that run the actual built binary. use std::process::Command; /// `--help` must exit successfully and print the usage/options. Run with /// `cargo test -- --nocapture` to see the help text in the test output. #[test] fn help_shows_usage_and_options() { let output = Command::new(env!("CARGO_BIN_EXE_fsdecrypt")) .arg("--help") .output() .expect("failed to run fsdecrypt --help"); let stdout = String::from_utf8_lossy(&output.stdout); println!("\n--- fsdecrypt --help ---\n{stdout}"); assert!(output.status.success(), "--help should exit 0"); assert!(stdout.contains("Usage"), "help should show a usage line"); assert!(stdout.contains("--no-extract"), "help should list options"); assert!( stdout.contains("decryptor for some SEGA containers"), "help should show the about text" ); }