fix fuzzing

it leaks????
This commit is contained in:
nora 2021-12-30 18:23:21 +01:00
parent 9eff0f0188
commit 145d63e755
12 changed files with 35 additions and 284 deletions

33
fuzz/Cargo.lock generated
View file

@ -8,12 +8,33 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "577b08a4acd7b99869f863c50011b01eb73424ccc798ecd996f2e24817adfca7"
[[package]]
name = "bumpalo"
version = "3.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f1e260c3a9040a7c19a12468758f4c16f31a81a1fe087482be9570ec864bb6c"
[[package]]
name = "cc"
version = "1.0.71"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "79c2681d6594606957bbb8631c4b90a7fcaaa72cdb714743a437b156d6a7eedd"
[[package]]
name = "dilaria"
version = "0.1.0"
dependencies = [
"bumpalo",
]
[[package]]
name = "dilaria-fuzz"
version = "0.0.0"
dependencies = [
"dilaria",
"libfuzzer-sys",
]
[[package]]
name = "libfuzzer-sys"
version = "0.4.2"
@ -30,15 +51,3 @@ name = "once_cell"
version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
[[package]]
name = "script_lang"
version = "0.1.0"
[[package]]
name = "script_lang-fuzz"
version = "0.0.0"
dependencies = [
"libfuzzer-sys",
"script_lang",
]

View file

@ -1,5 +1,5 @@
[package]
name = "script_lang-fuzz"
name = "dilaria-fuzz"
version = "0.0.0"
authors = ["Automatically generated"]
publish = false
@ -11,7 +11,7 @@ cargo-fuzz = true
[dependencies]
libfuzzer-sys = "0.4"
[dependencies.script_lang]
[dependencies.dilaria]
path = ".."
# Prevent this from interfering with workspaces

View file

@ -2,6 +2,6 @@
use libfuzzer_sys::fuzz_target;
fuzz_target!(|data: String| {
let lexer = script_lang::Lexer::lex(&data);
let _tokens = lexer.collect::<Vec<_>>();
let lexer = dilaria::Lexer::new(&data);
for _ in lexer {}
});

View file

@ -2,10 +2,9 @@
use libfuzzer_sys::fuzz_target;
fuzz_target!(|data: String| {
let lexer = script_lang::Lexer::lex(&data);
let tokens = lexer.collect::<Result<Vec<_>, _>>();
let ast_alloc = dilaria::Bump::new();
if let Ok(tokens) = tokens {
let _ast = script_lang::parse(tokens);
}
let lexer = dilaria::Lexer::new(&data);
let _ast = dilaria::parse(lexer, &ast_alloc);
});