Skip to content

Commit 09ea9a1

Browse files
committed
Add tests to ensure EC bin parsing fails gracefully
Signed-off-by: Daniel Schaefer <[email protected]>
1 parent fdf982c commit 09ea9a1

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

framework_lib/src/ec_binary.rs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,4 +314,26 @@ mod tests {
314314
assert_eq!(expected, read_ec_version(&data, false));
315315
assert_eq!(expected, read_ec_version(&data, true));
316316
}
317+
318+
#[test]
319+
// Make sure it doesn't crash when reading an invalid binary
320+
// Cargo.toml is significantly smaller than ec.bin
321+
fn fails_cargo_toml() {
322+
let mut ec_bin_path = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
323+
ec_bin_path.push("Cargo.toml");
324+
let data = fs::read(ec_bin_path).unwrap();
325+
assert_eq!(None, read_ec_version(&data, false));
326+
assert_eq!(None, read_ec_version(&data, true));
327+
}
328+
329+
#[test]
330+
// Make sure it doesn't crash when reading an invalid binary
331+
// winux.bin is slightly larger than ec.bin
332+
fn fails_winux() {
333+
let mut ec_bin_path = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
334+
ec_bin_path.push("test_bins/winux.bin");
335+
let data = fs::read(ec_bin_path).unwrap();
336+
assert_eq!(None, read_ec_version(&data, false));
337+
assert_eq!(None, read_ec_version(&data, true));
338+
}
317339
}

0 commit comments

Comments
 (0)