diff options
| author | Jack O'Connor <[email protected]> | 2020-06-24 17:51:41 -0400 |
|---|---|---|
| committer | Jack O'Connor <[email protected]> | 2020-06-24 18:02:16 -0400 |
| commit | e0f193ddc9c0400262dae4118b0660ae8d70586e (patch) | |
| tree | 4a64b84b847db4703896dabf3c1287e16b1df871 | |
| parent | 4c41a893a00a3ebe7b24529531ccf96d8593a57c (diff) | |
put the file name in b3sum error output
This was previously there, but got dropped in
c5c07bb337d0af7522666d05308aaf24eef3709c.
| -rw-r--r-- | b3sum/src/main.rs | 2 | ||||
| -rw-r--r-- | b3sum/tests/cli_tests.rs | 31 |
2 files changed, 32 insertions, 1 deletions
diff --git a/b3sum/src/main.rs b/b3sum/src/main.rs index c799390..b01e5de 100644 --- a/b3sum/src/main.rs +++ b/b3sum/src/main.rs @@ -612,7 +612,7 @@ fn main() -> Result<()> { let result = hash_one_input(path, &args); if let Err(e) = result { some_file_failed = true; - eprintln!("{}: {}", NAME, e); + eprintln!("{}: {}: {}", NAME, path.to_string_lossy(), e); } } } diff --git a/b3sum/tests/cli_tests.rs b/b3sum/tests/cli_tests.rs index 07fcbb7..51fbbba 100644 --- a/b3sum/tests/cli_tests.rs +++ b/b3sum/tests/cli_tests.rs @@ -56,6 +56,37 @@ fn test_hash_many() { } #[test] +fn test_missing_files() { + let dir = tempfile::tempdir().unwrap(); + let file1 = dir.path().join("file1"); + fs::write(&file1, b"foo").unwrap(); + let file2 = dir.path().join("file2"); + fs::write(&file2, b"bar").unwrap(); + + let output = cmd!(b3sum_exe(), "file1", "missing_file", "file2") + .dir(dir.path()) + .stdout_capture() + .stderr_capture() + .unchecked() + .run() + .unwrap(); + assert!(!output.status.success()); + + let foo_hash = blake3::hash(b"foo"); + let bar_hash = blake3::hash(b"bar"); + let expected_stdout = format!( + "{} file1\n{} file2\n", + foo_hash.to_hex(), + bar_hash.to_hex(), + ); + assert_eq!(expected_stdout.as_bytes(), &output.stdout[..]); + + let bing_error = fs::File::open(dir.path().join("missing_file")).unwrap_err(); + let expected_stderr = format!("b3sum: missing_file: {}\n", bing_error.to_string()); + assert_eq!(expected_stderr.as_bytes(), &output.stderr[..]); +} + +#[test] fn test_hash_length() { let mut buf = [0; 100]; blake3::Hasher::new() |
