Skip to content

Commit

Permalink
Add test
Browse files Browse the repository at this point in the history
  • Loading branch information
DelSkayn committed May 1, 2024
1 parent dec1359 commit 958bd76
Showing 1 changed file with 42 additions and 19 deletions.
61 changes: 42 additions & 19 deletions core/src/syn/parser/test/limit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,29 @@ fn object_depth() {
.expect_err("recursion limit of 5 didn't trigger on 6 deep object");
}

#[test]
fn array_depth() {
let mut stack = Stack::new();

let source = r#"
RETURN [ [ [ [ [ ] ] ] ] ]
"#;
let mut parser = Parser::new(source.as_bytes()).with_object_recursion_limit(5);
stack
.enter(|stk| parser.parse_query(stk))
.finish()
.expect("recursion limit of 5 couldn't parse 5 deep object");

let source = r#"
RETURN [ [ [ [ [ [ ] ] ] ] ] ]
"#;
let mut parser = Parser::new(source.as_bytes()).with_object_recursion_limit(5);
stack
.enter(|stk| parser.parse_query(stk))
.finish()
.expect_err("recursion limit of 5 didn't trigger on 6 deep object");
}

#[test]
fn object_depth_succeed_then_fail() {
let mut stack = Stack::new();
Expand All @@ -59,16 +82,16 @@ fn object_depth_succeed_then_fail() {
}
}
};
RETURN {
a: {
b: {
c: {
d: {
}
RETURN {
a: {
b: {
c: {
d: {
}
}
}
};
}
};
"#;

let mut parser = Parser::new(source.as_bytes()).with_object_recursion_limit(5);
Expand All @@ -89,18 +112,18 @@ fn object_depth_succeed_then_fail() {
}
}
};
RETURN {
a: {
b: {
c: {
d: {
e: {
}
RETURN {
a: {
b: {
c: {
d: {
e: {
}
}
}
}
};
}
};
"#;

let mut parser = Parser::new(source.as_bytes()).with_object_recursion_limit(5);
Expand All @@ -116,7 +139,7 @@ fn query_depth_subquery() {

let source = r#"
RETURN select (select (select ( select foo from bar ) from bar ) from bar) from bar
"#;
"#;
let mut parser = Parser::new(source.as_bytes()).with_query_recursion_limit(5);
stack
.enter(|stk| parser.parse_query(stk))
Expand All @@ -125,7 +148,7 @@ fn query_depth_subquery() {

let source = r#"
RETURN select (select (select ( select (select foo from bar) from bar ) from bar ) from bar) from bar
"#;
"#;
let mut parser = Parser::new(source.as_bytes()).with_query_recursion_limit(5);
stack
.enter(|stk| parser.parse_query(stk))
Expand Down Expand Up @@ -179,7 +202,7 @@ fn query_depth_if() {
let mut stack = Stack::new();

let source = r#"
IF IF IF IF IF true THEN false END { false } { false } { false } { false }
IF IF IF IF IF true THEN false END { false } { false } { false } { false }
"#;
let mut parser = Parser::new(source.as_bytes()).with_query_recursion_limit(5);
stack
Expand All @@ -188,7 +211,7 @@ fn query_depth_if() {
.expect("recursion limit of 5 couldn't parse 5 deep query");

let source = r#"
IF IF IF IF IF IF true THEN false END { false } { false } { false } { false } { false }
IF IF IF IF IF IF true THEN false END { false } { false } { false } { false } { false }
"#;
let mut parser = Parser::new(source.as_bytes()).with_query_recursion_limit(5);
stack
Expand Down

0 comments on commit 958bd76

Please sign in to comment.