diff options
author | Igor Aleksanov <[email protected]> | 2020-08-14 05:34:07 +0100 |
---|---|---|
committer | Igor Aleksanov <[email protected]> | 2020-08-14 05:34:07 +0100 |
commit | c26c911ec1e6c2ad1dcb7d155a6a1d528839ad1a (patch) | |
tree | 7cff36c38234be0afb65273146d8247083a5cfeb /crates/syntax/fuzz | |
parent | 3c018bf84de5c693b5ee1c6bec0fed3b201c2060 (diff) | |
parent | f1f73649a686dc6e6449afc35e0fa6fed00e225d (diff) |
Merge branch 'master' into add-disable-diagnostics
Diffstat (limited to 'crates/syntax/fuzz')
-rw-r--r-- | crates/syntax/fuzz/.gitignore | 4 | ||||
-rw-r--r-- | crates/syntax/fuzz/Cargo.toml | 27 | ||||
-rw-r--r-- | crates/syntax/fuzz/fuzz_targets/parser.rs | 11 | ||||
-rw-r--r-- | crates/syntax/fuzz/fuzz_targets/reparse.rs | 11 |
4 files changed, 53 insertions, 0 deletions
diff --git a/crates/syntax/fuzz/.gitignore b/crates/syntax/fuzz/.gitignore new file mode 100644 index 000000000..f734abd49 --- /dev/null +++ b/crates/syntax/fuzz/.gitignore | |||
@@ -0,0 +1,4 @@ | |||
1 | Cargo.lock | ||
2 | target | ||
3 | corpus | ||
4 | artifacts | ||
diff --git a/crates/syntax/fuzz/Cargo.toml b/crates/syntax/fuzz/Cargo.toml new file mode 100644 index 000000000..32c40d1b9 --- /dev/null +++ b/crates/syntax/fuzz/Cargo.toml | |||
@@ -0,0 +1,27 @@ | |||
1 | |||
2 | [package] | ||
3 | name = "syntax-fuzz" | ||
4 | version = "0.0.1" | ||
5 | authors = ["rust-analyzer developers"] | ||
6 | publish = false | ||
7 | edition = "2018" | ||
8 | |||
9 | [package.metadata] | ||
10 | cargo-fuzz = true | ||
11 | |||
12 | [dependencies] | ||
13 | syntax = { path = ".." } | ||
14 | text_edit = { path = "../../text_edit" } | ||
15 | libfuzzer-sys = { git = "https://github.com/rust-fuzz/libfuzzer-sys.git" } | ||
16 | |||
17 | # Prevent this from interfering with workspaces | ||
18 | [workspace] | ||
19 | members = ["."] | ||
20 | |||
21 | [[bin]] | ||
22 | name = "parser" | ||
23 | path = "fuzz_targets/parser.rs" | ||
24 | |||
25 | [[bin]] | ||
26 | name = "reparse" | ||
27 | path = "fuzz_targets/reparse.rs" | ||
diff --git a/crates/syntax/fuzz/fuzz_targets/parser.rs b/crates/syntax/fuzz/fuzz_targets/parser.rs new file mode 100644 index 000000000..386768343 --- /dev/null +++ b/crates/syntax/fuzz/fuzz_targets/parser.rs | |||
@@ -0,0 +1,11 @@ | |||
1 | //! FIXME: write short doc here | ||
2 | |||
3 | #![no_main] | ||
4 | use libfuzzer_sys::fuzz_target; | ||
5 | use syntax::fuzz::check_parser; | ||
6 | |||
7 | fuzz_target!(|data: &[u8]| { | ||
8 | if let Ok(text) = std::str::from_utf8(data) { | ||
9 | check_parser(text) | ||
10 | } | ||
11 | }); | ||
diff --git a/crates/syntax/fuzz/fuzz_targets/reparse.rs b/crates/syntax/fuzz/fuzz_targets/reparse.rs new file mode 100644 index 000000000..5ac99fdaf --- /dev/null +++ b/crates/syntax/fuzz/fuzz_targets/reparse.rs | |||
@@ -0,0 +1,11 @@ | |||
1 | //! FIXME: write short doc here | ||
2 | |||
3 | #![no_main] | ||
4 | use libfuzzer_sys::fuzz_target; | ||
5 | use syntax::fuzz::CheckReparse; | ||
6 | |||
7 | fuzz_target!(|data: &[u8]| { | ||
8 | if let Some(check) = CheckReparse::from_data(data) { | ||
9 | check.run(); | ||
10 | } | ||
11 | }); | ||