Skip to content

Commit 22e6667

Browse files
committed
Update after askama-rs#141 was merged
1 parent 33e80a2 commit 22e6667

File tree

1 file changed

+16
-23
lines changed

1 file changed

+16
-23
lines changed

fuzzing/fuzz/src/parser.rs

Lines changed: 16 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use arbitrary::{Arbitrary, Unstructured};
2-
use rinja_parser::{Ast, Syntax};
2+
use rinja_parser::{Ast, Syntax, SyntaxBuilder};
33

44
#[derive(Debug, Default)]
55
pub struct Scenario<'a> {
@@ -13,10 +13,21 @@ impl<'a> super::Scenario<'a> for Scenario<'a> {
1313
fn new(data: &'a [u8]) -> Result<Self, arbitrary::Error> {
1414
let mut data = Unstructured::new(data);
1515

16-
let syntax = ArbitrarySyntax::arbitrary(&mut data)?;
17-
let _syntax = syntax.as_syntax();
18-
// FIXME: related issue: <https://github.com/rinja-rs/rinja/issues/138>
19-
let syntax = Syntax::default();
16+
let syntax = if let Some(syntax) = <Option<[Option<&'a str>; 6]>>::arbitrary(&mut data)? {
17+
SyntaxBuilder {
18+
name: "test",
19+
block_start: syntax[0],
20+
block_end: syntax[1],
21+
expr_start: syntax[2],
22+
expr_end: syntax[3],
23+
comment_start: syntax[4],
24+
comment_end: syntax[5],
25+
}
26+
.to_syntax()
27+
.map_err(|_| arbitrary::Error::IncorrectFormat)?
28+
} else {
29+
Syntax::default()
30+
};
2031

2132
let src = <&str>::arbitrary_take_rest(data)?;
2233

@@ -29,21 +40,3 @@ impl<'a> super::Scenario<'a> for Scenario<'a> {
2940
Ok(())
3041
}
3142
}
32-
33-
#[derive(Arbitrary, Default)]
34-
struct ArbitrarySyntax<'a>(Option<[Option<&'a str>; 6]>);
35-
36-
impl<'a> ArbitrarySyntax<'a> {
37-
fn as_syntax(&self) -> Syntax<'a> {
38-
let default = Syntax::default();
39-
let values = self.0.unwrap_or_default();
40-
Syntax {
41-
block_start: values[0].unwrap_or(default.block_start),
42-
block_end: values[1].unwrap_or(default.block_end),
43-
expr_start: values[2].unwrap_or(default.expr_start),
44-
expr_end: values[3].unwrap_or(default.expr_end),
45-
comment_start: values[4].unwrap_or(default.comment_start),
46-
comment_end: values[5].unwrap_or(default.comment_end),
47-
}
48-
}
49-
}

0 commit comments

Comments
 (0)