Merge branch 'initial-lexer-error-testing' into 'dev'
Initial testing of the lexer errors. See merge request ligolang/ligo!309
This commit is contained in:
commit
00233fd887
@ -1,6 +1,6 @@
|
||||
(library
|
||||
(name cli_expect_tests)
|
||||
(libraries simple-utils cli)
|
||||
(inline_tests (deps (source_tree ../../test/contracts)))
|
||||
(inline_tests (deps (source_tree ../../test/contracts) (source_tree ../../test/lexer)))
|
||||
(preprocess (pps ppx_let ppx_expect))
|
||||
(flags (:standard -open Simple_utils)))
|
||||
|
153
src/bin/expect_tests/lexer_tests.ml
Normal file
153
src/bin/expect_tests/lexer_tests.ml
Normal file
@ -0,0 +1,153 @@
|
||||
open Cli_expect
|
||||
|
||||
let%expect_test _ =
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/broken_string.ligo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: The string starting here is interrupted by a line break.
|
||||
Hint: Remove the break, close the string before or insert a backslash.
|
||||
{"parser_loc":"in file \"broken_string.ligo\", line 1, characters 18-19"}
|
||||
|} ];
|
||||
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/broken_string.mligo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: The string starting here is interrupted by a line break.
|
||||
Hint: Remove the break, close the string before or insert a backslash.
|
||||
{"parser_loc":"in file \"broken_string.mligo\", line 1, characters 8-9"}
|
||||
|} ];
|
||||
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/broken_string.religo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: The string starting here is interrupted by a line break.
|
||||
Hint: Remove the break, close the string before or insert a backslash.
|
||||
{"parser_loc":"in file \"broken_string.religo\", line 1, characters 8-9"}
|
||||
|} ];
|
||||
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/negative_byte_sequence.ligo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: Negative byte sequence.
|
||||
Hint: Remove the leading minus sign.
|
||||
{"parser_loc":"in file \"negative_byte_sequence.ligo\", line 1, characters 18-23"}
|
||||
|} ];
|
||||
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/negative_byte_sequence.mligo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: Negative byte sequence.
|
||||
Hint: Remove the leading minus sign.
|
||||
{"parser_loc":"in file \"negative_byte_sequence.mligo\", line 1, characters 8-13"}
|
||||
|} ];
|
||||
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/negative_byte_sequence.religo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: Negative byte sequence.
|
||||
Hint: Remove the leading minus sign.
|
||||
{"parser_loc":"in file \"negative_byte_sequence.religo\", line 1, characters 8-13"}
|
||||
|} ];
|
||||
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/reserved_name.ligo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: Reserved name: args.
|
||||
Hint: Change the name.
|
||||
{"parser_loc":"in file \"reserved_name.ligo\", line 1, characters 4-8"}
|
||||
|} ];
|
||||
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/reserved_name.religo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: Reserved name: end.
|
||||
Hint: Change the name.
|
||||
{"parser_loc":"in file \"reserved_name.religo\", line 1, characters 4-7"}
|
||||
|} ];
|
||||
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/reserved_name.mligo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: Reserved name: object.
|
||||
Hint: Change the name.
|
||||
{"parser_loc":"in file \"reserved_name.mligo\", line 1, characters 4-10"}
|
||||
|} ];
|
||||
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/unexpected_character.ligo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: Unexpected character '\239'.
|
||||
{"parser_loc":"in file \"unexpected_character.ligo\", line 1, characters 18-19"}
|
||||
|} ];
|
||||
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/unexpected_character.mligo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: Unexpected character '\239'.
|
||||
{"parser_loc":"in file \"unexpected_character.mligo\", line 1, characters 8-9"}
|
||||
|} ];
|
||||
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/unexpected_character.religo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: Unexpected character '\239'.
|
||||
{"parser_loc":"in file \"unexpected_character.religo\", line 1, characters 8-9"}
|
||||
|} ];
|
||||
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/unterminated_comment.mligo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: Unterminated comment.
|
||||
Hint: Close with "*)".
|
||||
{"parser_loc":"in file \"unterminated_comment.mligo\", line 1, characters 0-2"}
|
||||
|} ];
|
||||
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/invalid_symbol.ligo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: Invalid symbol.
|
||||
Hint: Check the LIGO syntax you use.
|
||||
{"parser_loc":"in file \"invalid_symbol.ligo\", line 1, characters 17-20"}
|
||||
|} ];
|
||||
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/invalid_symbol.mligo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: Invalid symbol.
|
||||
Hint: Check the LIGO syntax you use.
|
||||
{"parser_loc":"in file \"invalid_symbol.mligo\", line 1, characters 10-13"}
|
||||
|} ];
|
||||
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/invalid_symbol.religo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: Invalid symbol.
|
||||
Hint: Check the LIGO syntax you use.
|
||||
{"parser_loc":"in file \"invalid_symbol.religo\", line 1, characters 10-11"}
|
||||
|} ];
|
||||
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/missing_break.ligo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: Missing break.
|
||||
Hint: Insert some space.
|
||||
{"parser_loc":"in file \"missing_break.ligo\", line 1, characters 18-18"}
|
||||
|} ];
|
||||
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/missing_break.mligo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: Missing break.
|
||||
Hint: Insert some space.
|
||||
{"parser_loc":"in file \"missing_break.mligo\", line 1, characters 11-11"}
|
||||
|} ];
|
||||
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/missing_break.religo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: Missing break.
|
||||
Hint: Insert some space.
|
||||
{"parser_loc":"in file \"missing_break.religo\", line 1, characters 11-11"}
|
||||
|} ];
|
||||
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/invalid_character_in_string.ligo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: Invalid character in string.
|
||||
Hint: Remove or replace the character.
|
||||
{"parser_loc":"in file \"invalid_character_in_string.ligo\", line 1, characters 19-20"}
|
||||
|} ];
|
||||
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/invalid_character_in_string.mligo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: Invalid character in string.
|
||||
Hint: Remove or replace the character.
|
||||
{"parser_loc":"in file \"invalid_character_in_string.mligo\", line 1, characters 9-10"}
|
||||
|} ];
|
||||
|
||||
run_ligo_bad [ "compile-contract" ; "../../test/lexer/invalid_character_in_string.religo" ; "main" ] ;
|
||||
[%expect {|
|
||||
ligo: lexer error: Invalid character in string.
|
||||
Hint: Remove or replace the character.
|
||||
{"parser_loc":"in file \"invalid_character_in_string.religo\", line 1, characters 9-10"}
|
||||
|} ]
|
4
src/test/lexer/broken_string.ligo
Normal file
4
src/test/lexer/broken_string.ligo
Normal file
@ -0,0 +1,4 @@
|
||||
const a: string = "broken
|
||||
over
|
||||
multiple
|
||||
lines";
|
4
src/test/lexer/broken_string.mligo
Normal file
4
src/test/lexer/broken_string.mligo
Normal file
@ -0,0 +1,4 @@
|
||||
let a = "broken
|
||||
over
|
||||
multiple
|
||||
lines";
|
4
src/test/lexer/broken_string.religo
Normal file
4
src/test/lexer/broken_string.religo
Normal file
@ -0,0 +1,4 @@
|
||||
let a = "broken
|
||||
over
|
||||
multiple
|
||||
lines";
|
1
src/test/lexer/invalid_character_in_string.ligo
Normal file
1
src/test/lexer/invalid_character_in_string.ligo
Normal file
@ -0,0 +1 @@
|
||||
const z: string = " ";
|
1
src/test/lexer/invalid_character_in_string.mligo
Normal file
1
src/test/lexer/invalid_character_in_string.mligo
Normal file
@ -0,0 +1 @@
|
||||
let z = " ";
|
1
src/test/lexer/invalid_character_in_string.religo
Normal file
1
src/test/lexer/invalid_character_in_string.religo
Normal file
@ -0,0 +1 @@
|
||||
let z = " ";
|
1
src/test/lexer/invalid_symbol.ligo
Normal file
1
src/test/lexer/invalid_symbol.ligo
Normal file
@ -0,0 +1 @@
|
||||
const b: int = 1 ... 10;
|
1
src/test/lexer/invalid_symbol.mligo
Normal file
1
src/test/lexer/invalid_symbol.mligo
Normal file
@ -0,0 +1 @@
|
||||
let b = 1 ... 10;
|
1
src/test/lexer/invalid_symbol.religo
Normal file
1
src/test/lexer/invalid_symbol.religo
Normal file
@ -0,0 +1 @@
|
||||
let b = 1 # 10;
|
1
src/test/lexer/missing_break.ligo
Normal file
1
src/test/lexer/missing_break.ligo
Normal file
@ -0,0 +1 @@
|
||||
const a: int = 300zennies;
|
1
src/test/lexer/missing_break.mligo
Normal file
1
src/test/lexer/missing_break.mligo
Normal file
@ -0,0 +1 @@
|
||||
let a = 300zennies;
|
1
src/test/lexer/missing_break.religo
Normal file
1
src/test/lexer/missing_break.religo
Normal file
@ -0,0 +1 @@
|
||||
let a = 300zennies;
|
1
src/test/lexer/negative_byte_sequence.ligo
Normal file
1
src/test/lexer/negative_byte_sequence.ligo
Normal file
@ -0,0 +1 @@
|
||||
const a: string = -0x222;
|
1
src/test/lexer/negative_byte_sequence.mligo
Normal file
1
src/test/lexer/negative_byte_sequence.mligo
Normal file
@ -0,0 +1 @@
|
||||
let a = -0x222;
|
1
src/test/lexer/negative_byte_sequence.religo
Normal file
1
src/test/lexer/negative_byte_sequence.religo
Normal file
@ -0,0 +1 @@
|
||||
let a = -0x222;
|
1
src/test/lexer/reserved_name.ligo
Normal file
1
src/test/lexer/reserved_name.ligo
Normal file
@ -0,0 +1 @@
|
||||
let args = 1;
|
1
src/test/lexer/reserved_name.mligo
Normal file
1
src/test/lexer/reserved_name.mligo
Normal file
@ -0,0 +1 @@
|
||||
let object = 1;
|
1
src/test/lexer/reserved_name.religo
Normal file
1
src/test/lexer/reserved_name.religo
Normal file
@ -0,0 +1 @@
|
||||
let end = 1;
|
1
src/test/lexer/unexpected_character.ligo
Normal file
1
src/test/lexer/unexpected_character.ligo
Normal file
@ -0,0 +1 @@
|
||||
const x: string = <20><><EFBFBD>;
|
1
src/test/lexer/unexpected_character.mligo
Normal file
1
src/test/lexer/unexpected_character.mligo
Normal file
@ -0,0 +1 @@
|
||||
let x = <20><><EFBFBD>;
|
1
src/test/lexer/unexpected_character.religo
Normal file
1
src/test/lexer/unexpected_character.religo
Normal file
@ -0,0 +1 @@
|
||||
let x = <20><><EFBFBD>;
|
1
src/test/lexer/unterminated_comment.mligo
Normal file
1
src/test/lexer/unterminated_comment.mligo
Normal file
@ -0,0 +1 @@
|
||||
(* not closed
|
Loading…
Reference in New Issue
Block a user