This post is part of the Input Coverage > Code Coverage series.
Keep crashes. Turn them into unit tests. Never regress.
Pattern:
tests/crashes/
money_unicode_minus.bin
csv_header_huge.bin
tests/repro.rs
:
#[test]
fn crash_money_unicode_minus() {
let data = include_bytes!("crashes/money_unicode_minus.bin");
let s = std::str::from_utf8(data).unwrap();
let _ = money_amounts::parse_money(s);
}
#[test]
fn crash_csv_header_huge() {
let data = include_bytes!("crashes/csv_header_huge.bin");
let s = String::from_utf8_lossy(data);
let rows = csv_import_cli::ingest_rows_unbounded(&s);
assert!(rows.len() >= 0);
}