aboutsummaryrefslogtreecommitdiff
path: root/crates/libsyntax2/fuzz
diff options
context:
space:
mode:
Diffstat (limited to 'crates/libsyntax2/fuzz')
-rw-r--r--crates/libsyntax2/fuzz/.gitignore4
-rw-r--r--crates/libsyntax2/fuzz/Cargo.toml22
-rw-r--r--crates/libsyntax2/fuzz/fuzz_targets/parser.rs12
3 files changed, 38 insertions, 0 deletions
diff --git a/crates/libsyntax2/fuzz/.gitignore b/crates/libsyntax2/fuzz/.gitignore
new file mode 100644
index 000000000..572e03bdf
--- /dev/null
+++ b/crates/libsyntax2/fuzz/.gitignore
@@ -0,0 +1,4 @@
1
2target
3corpus
4artifacts
diff --git a/crates/libsyntax2/fuzz/Cargo.toml b/crates/libsyntax2/fuzz/Cargo.toml
new file mode 100644
index 000000000..916cd5b6f
--- /dev/null
+++ b/crates/libsyntax2/fuzz/Cargo.toml
@@ -0,0 +1,22 @@
1
2[package]
3name = "libsyntax2-fuzz"
4version = "0.0.1"
5authors = ["Automatically generated"]
6publish = false
7
8[package.metadata]
9cargo-fuzz = true
10
11[dependencies.libsyntax2]
12path = ".."
13[dependencies.libfuzzer-sys]
14git = "https://github.com/rust-fuzz/libfuzzer-sys.git"
15
16# Prevent this from interfering with workspaces
17[workspace]
18members = ["."]
19
20[[bin]]
21name = "parser"
22path = "fuzz_targets/parser.rs"
diff --git a/crates/libsyntax2/fuzz/fuzz_targets/parser.rs b/crates/libsyntax2/fuzz/fuzz_targets/parser.rs
new file mode 100644
index 000000000..f941855e8
--- /dev/null
+++ b/crates/libsyntax2/fuzz/fuzz_targets/parser.rs
@@ -0,0 +1,12 @@
1#![no_main]
2#[macro_use] extern crate libfuzzer_sys;
3extern crate libsyntax2;
4
5fuzz_target!(|data: &[u8]| {
6 if let Ok(text) = std::str::from_utf8(data) {
7 let x = libsyntax2::File::parse(text);
8 let _ = x.ast();
9 let _ = x.syntax();
10 let _ = x.errors();
11 }
12});