Path: blob/main/cranelift/isle/fuzz/fuzz_targets/compile.rs
1693 views
#![no_main]12use std::sync::Arc;34use cranelift_isle::files::Files;5use libfuzzer_sys::fuzz_target;67fuzz_target!(|src: &str| {8let _ = env_logger::try_init();910let lexer = cranelift_isle::lexer::Lexer::new(0, src);11log::debug!("lexer = {lexer:?}");12let lexer = match lexer {13Ok(l) => l,14Err(_) => return,15};1617let defs = cranelift_isle::parser::parse(lexer);18log::debug!("defs = {defs:?}");19let defs = match defs {20Ok(d) => d,21Err(_) => return,22};2324let files = Arc::new(Files::from_names_and_contents([(25"fuzz-input.isle".to_string(),26src.to_string(),27)]));2829let code = cranelift_isle::compile::compile(files, &defs, &Default::default());30log::debug!("code = {code:?}");31let code = match code {32Ok(c) => c,33Err(_) => return,34};3536// TODO: check that the generated code is valid Rust. This will require37// stubbing out extern types, extractors, and constructors.38drop(code);39});404142