Fuzz with both StrInput
and BufferedInput
.
This commit is contained in:
parent
9d1bd1c929
commit
9812dacc28
2 changed files with 27 additions and 1 deletions
|
@ -10,6 +10,7 @@ cargo-fuzz = true
|
||||||
[dependencies]
|
[dependencies]
|
||||||
libfuzzer-sys = "0.4"
|
libfuzzer-sys = "0.4"
|
||||||
saphyr.workspace = true
|
saphyr.workspace = true
|
||||||
|
saphyr-parser.workspace = true
|
||||||
|
|
||||||
[[bin]]
|
[[bin]]
|
||||||
name = "parse"
|
name = "parse"
|
||||||
|
|
|
@ -4,6 +4,31 @@ use libfuzzer_sys::fuzz_target;
|
||||||
|
|
||||||
fuzz_target!(|data: &[u8]| {
|
fuzz_target!(|data: &[u8]| {
|
||||||
if let Ok(s) = std::str::from_utf8(data) {
|
if let Ok(s) = std::str::from_utf8(data) {
|
||||||
let _ = saphyr::Yaml::load_from_str(s);
|
let mut str_events = vec![];
|
||||||
|
let mut str_error = None;
|
||||||
|
let mut iter_events = vec![];
|
||||||
|
let mut iter_error = None;
|
||||||
|
|
||||||
|
for x in saphyr_parser::Parser::new_from_str(s) {
|
||||||
|
match x {
|
||||||
|
Ok(event) => str_events.push(event),
|
||||||
|
Err(e) => {
|
||||||
|
str_error = Some(e);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for x in saphyr_parser::Parser::new_from_iter(s.chars()) {
|
||||||
|
match x {
|
||||||
|
Ok(event) => iter_events.push(event),
|
||||||
|
Err(e) => {
|
||||||
|
iter_error = Some(e);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_eq!(str_events, iter_events);
|
||||||
|
assert_eq!(str_error, iter_error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue