diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 727d4bb37..1ba8596e7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,7 +46,7 @@ jobs: uses: actions-rs/cargo@v1 with: command: test - args: --all --verbose + args: --all --verbose --release - name: Cargo Doc uses: actions-rs/cargo@v1 with: @@ -93,7 +93,7 @@ jobs: uses: actions-rs/cargo@v1 with: command: test - args: --all --verbose + args: --all --verbose --release coverage: name: Test Coverage diff --git a/grammars/fuzz/fuzz_targets/toml.rs b/grammars/fuzz/fuzz_targets/toml.rs index 9e2389ace..9a4903b89 100644 --- a/grammars/fuzz/fuzz_targets/toml.rs +++ b/grammars/fuzz/fuzz_targets/toml.rs @@ -11,7 +11,7 @@ fuzz_target!(|data: &[u8]| { use pest_grammars::Parser; if let Ok(s) = std::str::from_utf8(data) { - pest::set_call_limit(Some(100_000usize.try_into().unwrap())); + pest::set_call_limit(Some(5_000usize.try_into().unwrap())); let _ = toml::TomlParser::parse(toml::Rule::toml, s); } }); diff --git a/grammars/resources/test/tomlfuzzsample2.toml b/grammars/resources/test/tomlfuzzsample2.toml new file mode 100644 index 000000000..05b697c46 --- /dev/null +++ b/grammars/resources/test/tomlfuzzsample2.toml @@ -0,0 +1,5 @@ +[1]O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=6,O=5,z=8,Ox4=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=0,O=8,x=6,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=6,O=0,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=0,O=8,x=6,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=0,O=8,x=6,O=5,z=8,Ox3r=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=5,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=4294967297,O=8,x=6,O=5,z=8,Ox3r=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=5,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=6,O=5,z=8,Ox4=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=0,O=8,x=6,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=6,O=0,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=0,O=8,x=6,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=0,O=8,x=6,O=5,z=8,Ox3r=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=5,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=6,O=0,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=0,O=8,x=6,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=0,O=8,x=6,O=5,z=8,Ox3r=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=5,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=4294967297,O=8,x=6,O=5,z=8,Ox3r=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=5,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=6,O=5,z=8,Ox4=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=0,O=8,x=6,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=6,O=0,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=0,O=8,x=6,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=0,O=8,x=6,O=5,z=8,Ox3r=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=5,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=4294967297,O=8,x=6,O=5,z=8,Ox3r=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=5,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=6,O=5,z=8,Ox4=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=0,O=8,x=6,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=6,O=0,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=0,O=8,x=6,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=0,O=8,x=6,O=5,z=8,Ox3r=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=5,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=4294967297,O=8,x=6,O=5,z=8,Ox3r=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=5,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=6,O=5,z=8,Ox4=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=0,O=8,x=6,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=6,O=0,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=0,O=8,x=6,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=0,O=8,x=6,O=5,z=8,Ox3r=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=5,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=4294967297,O=8,x=6,O=5,z=8,Ox3r=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[7297,O=8,x=6,O=5,z=8,Ox3r=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[O=8,x=5,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[{x=1,O=8,x=5,O=5,z=8,Ox3=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[1,5, + +[1,5 +,5 +,170141183460469231731687303715916988704O=8 \ No newline at end of file diff --git a/grammars/src/lib.rs b/grammars/src/lib.rs index 83b642e6d..fb2840031 100644 --- a/grammars/src/lib.rs +++ b/grammars/src/lib.rs @@ -47,11 +47,18 @@ mod tests { env!("CARGO_MANIFEST_DIR"), "/resources/test/tomlfuzzsample1.toml" )); + let sample2 = include_str!(concat!( + env!("CARGO_MANIFEST_DIR"), + "/resources/test/tomlfuzzsample2.toml" + )); const ERROR: &str = "call limit reached"; - pest::set_call_limit(Some(100_000usize.try_into().unwrap())); + pest::set_call_limit(Some(5_000usize.try_into().unwrap())); let s1 = toml::TomlParser::parse(toml::Rule::toml, sample1); assert!(s1.is_err()); assert_eq!(s1.unwrap_err().variant.message(), ERROR); + let s2 = toml::TomlParser::parse(toml::Rule::toml, sample2); + assert!(s2.is_err()); + assert_eq!(s2.unwrap_err().variant.message(), ERROR); } #[test]