parent
fc26fa87a5
commit
8c03e418a7
@ -0,0 +1,3 @@ |
|||||||
|
target |
||||||
|
corpus |
||||||
|
artifacts |
@ -0,0 +1,36 @@ |
|||||||
|
[package] |
||||||
|
name = "oxigraph-fuzz" |
||||||
|
version = "0.0.0" |
||||||
|
authors = ["Automatically generated"] |
||||||
|
publish = false |
||||||
|
edition = "2021" |
||||||
|
|
||||||
|
[package.metadata] |
||||||
|
cargo-fuzz = true |
||||||
|
|
||||||
|
[dependencies] |
||||||
|
libfuzzer-sys = "0.4" |
||||||
|
spargebra = { path = "../lib/spargebra", features = ["rdf-star"] } |
||||||
|
sparesults = { path = "../lib/sparesults", features = ["rdf-star"] } |
||||||
|
|
||||||
|
[workspace] |
||||||
|
|
||||||
|
[[bin]] |
||||||
|
name = "sparql_query" |
||||||
|
path = "fuzz_targets/sparql_query.rs" |
||||||
|
|
||||||
|
[[bin]] |
||||||
|
name = "sparql_update" |
||||||
|
path = "fuzz_targets/sparql_update.rs" |
||||||
|
|
||||||
|
[[bin]] |
||||||
|
name = "sparql_results_json" |
||||||
|
path = "fuzz_targets/sparql_results_json.rs" |
||||||
|
|
||||||
|
[[bin]] |
||||||
|
name = "sparql_results_xml" |
||||||
|
path = "fuzz_targets/sparql_results_xml.rs" |
||||||
|
|
||||||
|
[[bin]] |
||||||
|
name = "sparql_results_tsv" |
||||||
|
path = "fuzz_targets/sparql_results_tsv.rs" |
@ -0,0 +1,10 @@ |
|||||||
|
#![no_main] |
||||||
|
use libfuzzer_sys::fuzz_target; |
||||||
|
use spargebra::Query; |
||||||
|
use std::str; |
||||||
|
|
||||||
|
fuzz_target!(|data: &[u8]| { |
||||||
|
if let Ok(data) = str::from_utf8(data) { |
||||||
|
Query::parse(data, None); |
||||||
|
} |
||||||
|
}); |
@ -0,0 +1,15 @@ |
|||||||
|
#![no_main] |
||||||
|
use libfuzzer_sys::fuzz_target; |
||||||
|
use sparesults::{QueryResultsFormat, QueryResultsParser, QueryResultsReader}; |
||||||
|
|
||||||
|
fuzz_target!(|data: &[u8]| { |
||||||
|
let parser = QueryResultsParser::from_format(QueryResultsFormat::Json); |
||||||
|
if let Ok(QueryResultsReader::Solutions(solutions)) = parser.read_results(data) { |
||||||
|
for s in solutions { |
||||||
|
if s.is_err() { |
||||||
|
// TODO: avoid infinite loop of errors
|
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
@ -0,0 +1,10 @@ |
|||||||
|
#![no_main] |
||||||
|
use libfuzzer_sys::fuzz_target; |
||||||
|
use sparesults::{QueryResultsFormat, QueryResultsParser, QueryResultsReader}; |
||||||
|
|
||||||
|
fuzz_target!(|data: &[u8]| { |
||||||
|
let parser = QueryResultsParser::from_format(QueryResultsFormat::Tsv); |
||||||
|
if let Ok(QueryResultsReader::Solutions(solutions)) = parser.read_results(data) { |
||||||
|
for _ in solutions {} |
||||||
|
} |
||||||
|
}); |
@ -0,0 +1,10 @@ |
|||||||
|
#![no_main] |
||||||
|
use libfuzzer_sys::fuzz_target; |
||||||
|
use sparesults::{QueryResultsFormat, QueryResultsParser, QueryResultsReader}; |
||||||
|
|
||||||
|
fuzz_target!(|data: &[u8]| { |
||||||
|
let parser = QueryResultsParser::from_format(QueryResultsFormat::Xml); |
||||||
|
if let Ok(QueryResultsReader::Solutions(solutions)) = parser.read_results(data) { |
||||||
|
for _ in solutions {} |
||||||
|
} |
||||||
|
}); |
@ -0,0 +1,10 @@ |
|||||||
|
#![no_main] |
||||||
|
use libfuzzer_sys::fuzz_target; |
||||||
|
use spargebra::Update; |
||||||
|
use std::str; |
||||||
|
|
||||||
|
fuzz_target!(|data: &[u8]| { |
||||||
|
if let Ok(data) = str::from_utf8(data) { |
||||||
|
Update::parse(data, None); |
||||||
|
} |
||||||
|
}); |
Loading…
Reference in new issue