fuzzgen: Continue execution on traps (#4895)
This commit is contained in:
@@ -104,15 +104,18 @@ fuzz_target!(|testcase: TestCase| {
|
|||||||
match int_res {
|
match int_res {
|
||||||
RunResult::Success(_) => {}
|
RunResult::Success(_) => {}
|
||||||
RunResult::Trap(_) => {
|
RunResult::Trap(_) => {
|
||||||
// We currently ignore inputs that trap the interpreter
|
// If this input traps, skip it and continue trying other inputs
|
||||||
|
// for this function. We've already compiled it anyway.
|
||||||
|
//
|
||||||
// We could catch traps in the host run and compare them to the
|
// We could catch traps in the host run and compare them to the
|
||||||
// interpreter traps, but since we already test trap cases with
|
// interpreter traps, but since we already test trap cases with
|
||||||
// wasm tests and wasm-level fuzzing, the amount of effort does
|
// wasm tests and wasm-level fuzzing, the amount of effort does
|
||||||
// not justify implementing it again here.
|
// not justify implementing it again here.
|
||||||
return;
|
continue;
|
||||||
}
|
}
|
||||||
RunResult::Timeout => {
|
RunResult::Timeout => {
|
||||||
// We probably generated an infinite loop, we can ignore this
|
// We probably generated an infinite loop, we should drop this entire input.
|
||||||
|
// We could `continue` like we do on traps, but timeouts are *really* expensive.
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
RunResult::Error(_) => panic!("interpreter failed: {:?}", int_res),
|
RunResult::Error(_) => panic!("interpreter failed: {:?}", int_res),
|
||||||
|
|||||||
Reference in New Issue
Block a user