Fix fuzzer code
This commit is contained in:
parent
6b0a704ebb
commit
c5a1afb228
@ -21,20 +21,17 @@ path = "../wasm-ast"
|
|||||||
[dependencies.codegen-luajit]
|
[dependencies.codegen-luajit]
|
||||||
path = "../codegen-luajit"
|
path = "../codegen-luajit"
|
||||||
|
|
||||||
|
[dependencies.codegen-luau]
|
||||||
|
path = "../codegen-luau"
|
||||||
|
|
||||||
[[bin]]
|
[[bin]]
|
||||||
name = "full_transpile"
|
name = "luajit_translate"
|
||||||
path = "fuzz_targets/full_transpile.rs"
|
path = "fuzz_targets/luajit_translate.rs"
|
||||||
test = false
|
test = false
|
||||||
doc = false
|
doc = false
|
||||||
|
|
||||||
[[bin]]
|
[[bin]]
|
||||||
name = "just_writer"
|
name = "luau_translate"
|
||||||
path = "fuzz_targets/just_writer.rs"
|
path = "fuzz_targets/luau_translate.rs"
|
||||||
test = false
|
|
||||||
doc = false
|
|
||||||
|
|
||||||
[[bin]]
|
|
||||||
name = "just_builder"
|
|
||||||
path = "fuzz_targets/just_builder.rs"
|
|
||||||
test = false
|
test = false
|
||||||
doc = false
|
doc = false
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
#![no_main]
|
|
||||||
|
|
||||||
use parity_wasm::elements::Module as WasmModule;
|
|
||||||
use wasm_smith::Module as SmModule;
|
|
||||||
|
|
||||||
use codegen_luajit::gen::Generator;
|
|
||||||
use wasm_ast::writer::Transpiler;
|
|
||||||
|
|
||||||
fn fuzz_transformer(wasm: &WasmModule) {
|
|
||||||
let trans = Generator::new(wasm);
|
|
||||||
let _func = trans.build_func_list();
|
|
||||||
}
|
|
||||||
|
|
||||||
libfuzzer_sys::fuzz_target!(|module: SmModule| {
|
|
||||||
let data = module.to_bytes();
|
|
||||||
let wasm = match parity_wasm::deserialize_buffer(&data) {
|
|
||||||
Ok(v) => v,
|
|
||||||
Err(_) => return,
|
|
||||||
};
|
|
||||||
|
|
||||||
fuzz_transformer(&wasm);
|
|
||||||
});
|
|
@ -1,26 +0,0 @@
|
|||||||
#![no_main]
|
|
||||||
|
|
||||||
use std::io::Result;
|
|
||||||
|
|
||||||
use parity_wasm::elements::Module as WasmModule;
|
|
||||||
use wasm_smith::Module as SmModule;
|
|
||||||
|
|
||||||
use codegen_luajit::gen::Generator;
|
|
||||||
use wasm_ast::writer::Transpiler;
|
|
||||||
|
|
||||||
fn fuzz_writer(wasm: &WasmModule) -> Result<()> {
|
|
||||||
let trans = Generator::new(wasm);
|
|
||||||
let list = trans.build_func_list();
|
|
||||||
|
|
||||||
trans.gen_func_list(&list, &mut std::io::sink())
|
|
||||||
}
|
|
||||||
|
|
||||||
libfuzzer_sys::fuzz_target!(|module: SmModule| {
|
|
||||||
let data = module.to_bytes();
|
|
||||||
let wasm = match parity_wasm::deserialize_buffer(&data) {
|
|
||||||
Ok(v) => v,
|
|
||||||
Err(_) => return,
|
|
||||||
};
|
|
||||||
|
|
||||||
fuzz_writer(&wasm).expect("LuaJIT should succeed");
|
|
||||||
});
|
|
@ -1,12 +1,9 @@
|
|||||||
#![no_main]
|
#![no_main]
|
||||||
|
|
||||||
|
use wasm_ast::builder::TypeInfo;
|
||||||
use wasm_smith::Module;
|
use wasm_smith::Module;
|
||||||
|
|
||||||
use codegen_luajit::gen::Generator;
|
|
||||||
use wasm_ast::writer::Transpiler;
|
|
||||||
|
|
||||||
// We are not interested in parity_wasm errors.
|
// We are not interested in parity_wasm errors.
|
||||||
// Only 1 edition should need to be tested too.
|
|
||||||
libfuzzer_sys::fuzz_target!(|module: Module| {
|
libfuzzer_sys::fuzz_target!(|module: Module| {
|
||||||
let data = module.to_bytes();
|
let data = module.to_bytes();
|
||||||
let wasm = match parity_wasm::deserialize_buffer(&data) {
|
let wasm = match parity_wasm::deserialize_buffer(&data) {
|
||||||
@ -14,7 +11,8 @@ libfuzzer_sys::fuzz_target!(|module: Module| {
|
|||||||
Err(_) => return,
|
Err(_) => return,
|
||||||
};
|
};
|
||||||
|
|
||||||
Generator::new(&wasm)
|
let type_info = TypeInfo::from_module(&wasm);
|
||||||
.transpile(&mut std::io::sink())
|
let sink = &mut std::io::sink();
|
||||||
.expect("LuaJIT should succeed");
|
|
||||||
|
codegen_luajit::translate(&wasm, &type_info, sink).expect("LuaJIT should succeed");
|
||||||
});
|
});
|
18
fuzz/fuzz_targets/luau_translate.rs
Normal file
18
fuzz/fuzz_targets/luau_translate.rs
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#![no_main]
|
||||||
|
|
||||||
|
use wasm_ast::builder::TypeInfo;
|
||||||
|
use wasm_smith::Module;
|
||||||
|
|
||||||
|
// We are not interested in parity_wasm errors.
|
||||||
|
libfuzzer_sys::fuzz_target!(|module: Module| {
|
||||||
|
let data = module.to_bytes();
|
||||||
|
let wasm = match parity_wasm::deserialize_buffer(&data) {
|
||||||
|
Ok(v) => v,
|
||||||
|
Err(_) => return,
|
||||||
|
};
|
||||||
|
|
||||||
|
let type_info = TypeInfo::from_module(&wasm);
|
||||||
|
let sink = &mut std::io::sink();
|
||||||
|
|
||||||
|
codegen_luau::translate(&wasm, &type_info, sink).expect("Luau should succeed");
|
||||||
|
});
|
Loading…
x
Reference in New Issue
Block a user