From 1017cbbf6332543e6aef60cd82ec9315d501206a Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Wed, 2 Oct 2019 14:27:21 -0700 Subject: [PATCH] Update the compile fuzzer for Lightbeam changes. --- fuzz/fuzz_targets/compile.rs | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/fuzz/fuzz_targets/compile.rs b/fuzz/fuzz_targets/compile.rs index c0483f7c50..daf06c6565 100644 --- a/fuzz/fuzz_targets/compile.rs +++ b/fuzz/fuzz_targets/compile.rs @@ -13,10 +13,10 @@ use std::cell::RefCell; use std::collections::HashMap; use std::rc::Rc; use wasmparser::validate; -use wasmtime_jit::{CompiledModule, Compiler, NullResolver}; +use wasmtime_jit::{CompilationStrategy, CompiledModule, Compiler, NullResolver}; fuzz_target!(|data: &[u8]| { - if !validate(data, None) { + if validate(data, None).is_err() { return; } let flag_builder = settings::builder(); @@ -24,11 +24,32 @@ fuzz_target!(|data: &[u8]| { panic!("host machine is not a supported target"); }); let isa = isa_builder.finish(settings::Flags::new(flag_builder)); - let mut compiler = Compiler::new(isa); + let mut compiler = Compiler::new(isa, CompilationStrategy::AlwaysCranelift); let mut resolver = NullResolver {}; let global_exports = Rc::new(RefCell::new(HashMap::new())); - let _compiled = match CompiledModule::new(&mut compiler, data, &mut resolver, global_exports, false) { - Ok(x) => x, - Err(_) => return, - }; + let _compiled = + match CompiledModule::new(&mut compiler, data, &mut resolver, global_exports, false) { + Ok(x) => x, + Err(_) => return, + }; +}); + +#[cfg(feature = "lightbeam")] +fuzz_target!(|data: &[u8]| { + if validate(data, None).is_err() { + return; + } + let flag_builder = settings::builder(); + let isa_builder = cranelift_native::builder().unwrap_or_else(|_| { + panic!("host machine is not a supported target"); + }); + let isa = isa_builder.finish(settings::Flags::new(flag_builder)); + let mut compiler = Compiler::new(isa, CompilationStrategy::AlwaysLightbeam); + let mut resolver = NullResolver {}; + let global_exports = Rc::new(RefCell::new(HashMap::new())); + let _compiled = + match CompiledModule::new(&mut compiler, data, &mut resolver, global_exports, false) { + Ok(x) => x, + Err(_) => return, + }; });