aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack O'Connor <[email protected]>2020-06-24 17:51:41 -0400
committerJack O'Connor <[email protected]>2020-06-24 18:02:16 -0400
commite0f193ddc9c0400262dae4118b0660ae8d70586e (patch)
tree4a64b84b847db4703896dabf3c1287e16b1df871
parent4c41a893a00a3ebe7b24529531ccf96d8593a57c (diff)
put the file name in b3sum error output
This was previously there, but got dropped in c5c07bb337d0af7522666d05308aaf24eef3709c.
-rw-r--r--b3sum/src/main.rs2
-rw-r--r--b3sum/tests/cli_tests.rs31
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()