Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/windirstat/mft.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOmer Ben-Amram <omerbenamram@gmail.com>2019-06-04 16:13:46 +0300
committerOmer Ben-Amram <omerbenamram@gmail.com>2019-06-04 16:13:46 +0300
commit77491c9c1d3216ec5f320e2c42156a2d4f2b6dee (patch)
treefef98d8ce77468e0a92c3ee4c30413963c2fe34d
parent0632802ebaa962c9cdeea3cf06ce011e9450acc1 (diff)
-rw-r--r--src/entry.rs9
-rw-r--r--tests/test_cli.rs17
2 files changed, 17 insertions, 9 deletions
diff --git a/src/entry.rs b/src/entry.rs
index 4feee46..dade633 100644
--- a/src/entry.rs
+++ b/src/entry.rs
@@ -96,14 +96,7 @@ impl EntryHeader {
let mut signature = [0; 4];
reader.read_exact(&mut signature)?;
- let mut header_is_valid = false;
-
- for header in &[FILE_HEADER, BAAD_HEADER, ZERO_HEADER] {
- if signature == **header {
- header_is_valid = true;
- break;
- }
- }
+ let header_is_valid = [FILE_HEADER, BAAD_HEADER, ZERO_HEADER].contains(&&signature);
ensure!(
header_is_valid,
diff --git a/tests/test_cli.rs b/tests/test_cli.rs
index b247ad5..3cac0f5 100644
--- a/tests/test_cli.rs
+++ b/tests/test_cli.rs
@@ -5,7 +5,7 @@ use fixtures::*;
use assert_cmd::prelude::*;
use std::fs;
use std::fs::File;
-use std::io::Read;
+use std::io::{Read, Write};
use std::process::Command;
use tempfile::tempdir;
@@ -45,6 +45,21 @@ fn test_it_refuses_to_overwrite_directory() {
}
#[test]
+fn test_non_mft_file_is_error() {
+ let d = tempdir().unwrap();
+
+ let f = d.as_ref().join("test.out");
+
+ let mut file = File::create(&f).unwrap();
+ file.write_all(b"I'm a file!").unwrap();
+
+ let mut cmd = Command::cargo_bin("mft_dump").expect("failed to find binary");
+ cmd.args(&[f.to_str().unwrap()]);
+
+ cmd.assert().failure().code(1);
+}
+
+#[test]
fn test_it_exports_resident_streams() {
let d = tempdir().unwrap();