mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-08 22:28:12 -05:00
fuzz: Add zkas Lexer fuzzer.
This commit is contained in:
@@ -12,6 +12,7 @@ libfuzzer-sys = "0.4"
|
||||
|
||||
[dependencies.darkfi]
|
||||
path = ".."
|
||||
features = ["zkas"]
|
||||
|
||||
[dependencies.darkfi-serial]
|
||||
path = "../src/serial"
|
||||
@@ -29,3 +30,9 @@ name = "serial"
|
||||
path = "fuzz_targets/serial.rs"
|
||||
test = false
|
||||
doc = false
|
||||
|
||||
[[bin]]
|
||||
name = "zkas-lexer"
|
||||
path = "fuzz_targets/zkas_lexer.rs"
|
||||
test = false
|
||||
doc = false
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
/* This file is part of DarkFi (https://dark.fi)
|
||||
*
|
||||
* Copyright (C) 2020-2023 Dyne.org foundation
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#![no_main]
|
||||
extern crate darkfi_serial;
|
||||
use darkfi_serial::{deserialize, serialize};
|
||||
|
||||
33
fuzz/fuzz_targets/zkas_lexer.rs
Normal file
33
fuzz/fuzz_targets/zkas_lexer.rs
Normal file
@@ -0,0 +1,33 @@
|
||||
/* This file is part of DarkFi (https://dark.fi)
|
||||
*
|
||||
* Copyright (C) 2020-2023 Dyne.org foundation
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#![no_main]
|
||||
use libfuzzer_sys::fuzz_target;
|
||||
|
||||
use darkfi::zkas::Lexer;
|
||||
|
||||
// Run with: ZKAS_SILENT=1 cargo fuzz run zkas-lexer
|
||||
|
||||
fuzz_target!(|data: &[u8]| {
|
||||
if let Ok(source) = std::str::from_utf8(data) {
|
||||
let filename = "fuzz0r";
|
||||
let source = source.replace('\t', " ").replace("\r\n", "\n");
|
||||
let lexer = Lexer::new(filename, source.chars());
|
||||
let _ = lexer.lex();
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user