diff options
author | Chimrod <> | 2024-09-13 09:25:38 +0200 |
---|---|---|
committer | Chimrod <> | 2024-09-13 09:25:38 +0200 |
commit | 8b4eb01afa698dd1e512f7a83fb761bfb146fdf7 (patch) | |
tree | 5c85e5f4d011a895955d8516f0cdb195acf82f24 /test | |
parent | 692d66ba7eb0ff55a46b68601b7cd81f825653cb (diff) |
Added a syntax check in the comments
Diffstat (limited to 'test')
-rw-r--r-- | test/qsp_parser_test.ml | 3 | ||||
-rw-r--r-- | test/syntax.ml | 34 | ||||
-rw-r--r-- | test/syntax_error.ml | 7 |
3 files changed, 35 insertions, 9 deletions
diff --git a/test/qsp_parser_test.ml b/test/qsp_parser_test.ml index ada04d3..43f9cb3 100644 --- a/test/qsp_parser_test.ml +++ b/test/qsp_parser_test.ml @@ -1,7 +1,8 @@ let () = Alcotest.run "qsp_parser" [ - Syntax.test; + Syntax.test_syntax; + Syntax.test_comments; Literals.test; Syntax_error.test; Get_type.test; diff --git a/test/syntax.ml b/test/syntax.ml index f15c72f..f922e4f 100644 --- a/test/syntax.ml +++ b/test/syntax.ml @@ -400,6 +400,18 @@ life is unfair." Oh yeah, {curly brackets also count}. This is still the same comment. |} [ Comment _position ] +let test_comment_string () = + _test_instruction {|! {}|} [ Comment _position ]; + _test_instruction {|! ''|} [ Comment _position ]; + _test_instruction {|! ""|} [ Comment _position ]; + _test_instruction {|! {''}|} [ Comment _position ]; + _test_instruction {|! {""}|} [ Comment _position ]; + _test_instruction {|! "{"|} [ Comment _position ]; + _test_instruction {|! '{'|} [ Comment _position ]; + _test_instruction {|! "'"|} [ Comment _position ]; + _test_instruction {|! '"'|} [ Comment _position ]; + () + (** This test ensure that the unary operator is applied to the whole expression *) let test_precedence () = @@ -882,7 +894,7 @@ let test_stattxt () = { Tree.Ast.pos = _position; name = "$STATTXT"; index = None } ); ] -let test = +let test_syntax = ( "Syntax", [ Alcotest.test_case "Location" `Quick test_empty_location; @@ -915,13 +927,6 @@ let test = Alcotest.test_case "Plus_litt" `Quick test_plus_litt; Alcotest.test_case "PlusChained" `Quick test_concat; Alcotest.test_case "Mod operator" `Quick test_mod; - Alcotest.test_case "Comment" `Quick test_comment; - Alcotest.test_case "Comment2" `Quick test_comment2; - Alcotest.test_case "Comment3" `Quick test_comment3; - Alcotest.test_case "Comment4" `Quick test_comment4; - Alcotest.test_case "Comment5" `Quick test_comment5; - Alcotest.test_case "Comment6" `Quick test_comment6; - Alcotest.test_case "Multiline Comment" `Quick test_long_comment; Alcotest.test_case "If" `Quick test_if; Alcotest.test_case "If_chained" `Quick test_if_chained; Alcotest.test_case "If_equality" `Quick test_if_equality; @@ -952,3 +957,16 @@ let test = Alcotest.test_case "Precedence8" `Quick test_precedence8; Alcotest.test_case "stattxt" `Quick test_stattxt; ] ) + +let test_comments = + ( "Comments", + [ + Alcotest.test_case "Simple Comment" `Quick test_comment; + Alcotest.test_case "& Comment" `Quick test_comment2; + Alcotest.test_case "Double Comment" `Quick test_comment3; + Alcotest.test_case "Comment vs operation" `Quick test_comment4; + Alcotest.test_case "Comment5" `Quick test_comment5; + Alcotest.test_case "Comment6" `Quick test_comment6; + Alcotest.test_case "Multiline Comment" `Quick test_long_comment; + Alcotest.test_case "Comments with strings" `Quick test_comment_string; + ] ) diff --git a/test/syntax_error.ml b/test/syntax_error.ml index 2187e89..b92cf28 100644 --- a/test/syntax_error.ml +++ b/test/syntax_error.ml @@ -94,6 +94,12 @@ let unclose_comment () = _test_instruction {| ! that's it|} { level = Error; loc = _position; message = "Unclosed string" } +(* Same but with nested string *) + +let unclose_comment2 () = + _test_instruction {| !{ that's it }|} + { level = Error; loc = _position; message = "Unclosed string" } + let syntax_error () = _test_instruction {|*clr $ cla|} { level = Error; loc = _position; message = "Unexpected character \"\"" } @@ -275,6 +281,7 @@ let test = Alcotest.test_case "act 1" `Quick act_no_column; Alcotest.test_case "no &" `Quick missing_ampersand; Alcotest.test_case "unclose_comment" `Quick unclose_comment; + Alcotest.test_case "unclose_comment2" `Quick unclose_comment2; Alcotest.test_case "Syntax error $" `Quick syntax_error; Alcotest.test_case "Missing operand" `Quick missing_operand; Alcotest.test_case "Unknown function" `Quick unknow_function; |