From 640b8af802bf3d33d628b0f2d43a96318a62c2d6 Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi <alex@rtfs.hu> Date: Tue, 24 Jul 2018 20:03:13 +0100 Subject: Add syntax tests for assembly block type (evmasm) --- test/libsolidity/syntaxTests/parsing/assembly_evmasm_type.sol | 5 +++++ test/libsolidity/syntaxTests/parsing/assembly_invalid_type.sol | 7 +++++++ 2 files changed, 12 insertions(+) create mode 100644 test/libsolidity/syntaxTests/parsing/assembly_evmasm_type.sol create mode 100644 test/libsolidity/syntaxTests/parsing/assembly_invalid_type.sol diff --git a/test/libsolidity/syntaxTests/parsing/assembly_evmasm_type.sol b/test/libsolidity/syntaxTests/parsing/assembly_evmasm_type.sol new file mode 100644 index 00000000..28a07e63 --- /dev/null +++ b/test/libsolidity/syntaxTests/parsing/assembly_evmasm_type.sol @@ -0,0 +1,5 @@ +contract C { + function f() public pure { + assembly "evmasm" {} + } +} diff --git a/test/libsolidity/syntaxTests/parsing/assembly_invalid_type.sol b/test/libsolidity/syntaxTests/parsing/assembly_invalid_type.sol new file mode 100644 index 00000000..c2d39279 --- /dev/null +++ b/test/libsolidity/syntaxTests/parsing/assembly_invalid_type.sol @@ -0,0 +1,7 @@ +contract C { + function f() public pure { + assembly "failasm" {} + } +} +// ---- +// ParserError: (55-64): Only "evmasm" supported. -- cgit v1.2.3 From 008eb1c2c9830f655bbfb91865d463828dbffe1d Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi <alex@rtfs.hu> Date: Tue, 24 Jul 2018 20:04:21 +0100 Subject: Add syntax test for empty emit statement --- test/libsolidity/syntaxTests/emit_empty.sol | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 test/libsolidity/syntaxTests/emit_empty.sol diff --git a/test/libsolidity/syntaxTests/emit_empty.sol b/test/libsolidity/syntaxTests/emit_empty.sol new file mode 100644 index 00000000..819d88fe --- /dev/null +++ b/test/libsolidity/syntaxTests/emit_empty.sol @@ -0,0 +1,7 @@ +contract C { + function f() public { + emit; + } +} +// ---- +// ParserError: (45-46): Expected event name or path. -- cgit v1.2.3 From fa68e0019f92a2327bd31288e75ce44f3c8daf68 Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi <alex@rtfs.hu> Date: Tue, 24 Jul 2018 20:10:03 +0100 Subject: Add syntax test for location specifier redeclarations --- .../parsing/location_specifiers_for_locals_multi.sol | 12 ++++++++++++ .../parsing/location_specifiers_for_params_multi.sol | 6 ++++++ .../location_specifiers_for_state_variables_multi.sol | 5 +++++ 3 files changed, 23 insertions(+) create mode 100644 test/libsolidity/syntaxTests/parsing/location_specifiers_for_locals_multi.sol create mode 100644 test/libsolidity/syntaxTests/parsing/location_specifiers_for_params_multi.sol create mode 100644 test/libsolidity/syntaxTests/parsing/location_specifiers_for_state_variables_multi.sol diff --git a/test/libsolidity/syntaxTests/parsing/location_specifiers_for_locals_multi.sol b/test/libsolidity/syntaxTests/parsing/location_specifiers_for_locals_multi.sol new file mode 100644 index 00000000..d53208ef --- /dev/null +++ b/test/libsolidity/syntaxTests/parsing/location_specifiers_for_locals_multi.sol @@ -0,0 +1,12 @@ +contract Foo { + uint[] m_x; + function f() public view { + uint[] storage memory x = m_x; + uint[] memory storage calldata y; + x; y; + } +} +// ---- +// ParserError: (85-91): Location already specified. +// ParserError: (123-130): Location already specified. +// ParserError: (131-139): Location already specified. diff --git a/test/libsolidity/syntaxTests/parsing/location_specifiers_for_params_multi.sol b/test/libsolidity/syntaxTests/parsing/location_specifiers_for_params_multi.sol new file mode 100644 index 00000000..c6155c09 --- /dev/null +++ b/test/libsolidity/syntaxTests/parsing/location_specifiers_for_params_multi.sol @@ -0,0 +1,6 @@ +contract Foo { + function f(uint[] storage memory constant x, uint[] memory calldata y) internal { } +} +// ---- +// ParserError: (45-51): Location already specified. +// ParserError: (78-86): Location already specified. diff --git a/test/libsolidity/syntaxTests/parsing/location_specifiers_for_state_variables_multi.sol b/test/libsolidity/syntaxTests/parsing/location_specifiers_for_state_variables_multi.sol new file mode 100644 index 00000000..e34df2b2 --- /dev/null +++ b/test/libsolidity/syntaxTests/parsing/location_specifiers_for_state_variables_multi.sol @@ -0,0 +1,5 @@ +contract Foo { + uint[] memory storage calldata x; +} +// ---- +// ParserError: (23-29): Expected identifier but got 'memory' -- cgit v1.2.3 From 49573bad46f7c108bd3a00ec785f7da6a0066530 Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi <alex@rtfs.hu> Date: Tue, 24 Jul 2018 20:18:34 +0100 Subject: Add syntax test for illegal pragma key --- test/libsolidity/syntaxTests/parsing/pragma_illegal.sol | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 test/libsolidity/syntaxTests/parsing/pragma_illegal.sol diff --git a/test/libsolidity/syntaxTests/parsing/pragma_illegal.sol b/test/libsolidity/syntaxTests/parsing/pragma_illegal.sol new file mode 100644 index 00000000..3395f6be --- /dev/null +++ b/test/libsolidity/syntaxTests/parsing/pragma_illegal.sol @@ -0,0 +1,4 @@ +pragma ``; +// ---- +// ParserError: (7-8): Token incompatible with Solidity parser as part of pragma directive. +// ParserError: (8-9): Token incompatible with Solidity parser as part of pragma directive. -- cgit v1.2.3 From 7b5e9128747ff6f8775cdd2aa2029039f9850c2b Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi <alex@rtfs.hu> Date: Tue, 24 Jul 2018 20:22:46 +0100 Subject: Add syntax tests for import statements --- test/libsolidity/syntaxTests/parsing/import_complex.sol | 3 +++ test/libsolidity/syntaxTests/parsing/import_complex_invalid_from.sol | 3 +++ test/libsolidity/syntaxTests/parsing/import_complex_without_from.sol | 3 +++ test/libsolidity/syntaxTests/parsing/import_invalid_token.sol | 3 +++ test/libsolidity/syntaxTests/parsing/import_simple.sol | 3 +++ 5 files changed, 15 insertions(+) create mode 100644 test/libsolidity/syntaxTests/parsing/import_complex.sol create mode 100644 test/libsolidity/syntaxTests/parsing/import_complex_invalid_from.sol create mode 100644 test/libsolidity/syntaxTests/parsing/import_complex_without_from.sol create mode 100644 test/libsolidity/syntaxTests/parsing/import_invalid_token.sol create mode 100644 test/libsolidity/syntaxTests/parsing/import_simple.sol diff --git a/test/libsolidity/syntaxTests/parsing/import_complex.sol b/test/libsolidity/syntaxTests/parsing/import_complex.sol new file mode 100644 index 00000000..8bbb0a88 --- /dev/null +++ b/test/libsolidity/syntaxTests/parsing/import_complex.sol @@ -0,0 +1,3 @@ +import {hello, world} from "hello"; +// ---- +// ParserError: (0-35): Source "hello" not found: File not supplied initially. diff --git a/test/libsolidity/syntaxTests/parsing/import_complex_invalid_from.sol b/test/libsolidity/syntaxTests/parsing/import_complex_invalid_from.sol new file mode 100644 index 00000000..c4667606 --- /dev/null +++ b/test/libsolidity/syntaxTests/parsing/import_complex_invalid_from.sol @@ -0,0 +1,3 @@ +import {hello, world} from function; +// ---- +// ParserError: (27-35): Expected import path. diff --git a/test/libsolidity/syntaxTests/parsing/import_complex_without_from.sol b/test/libsolidity/syntaxTests/parsing/import_complex_without_from.sol new file mode 100644 index 00000000..961acb22 --- /dev/null +++ b/test/libsolidity/syntaxTests/parsing/import_complex_without_from.sol @@ -0,0 +1,3 @@ +import {hello, world}; +// ---- +// ParserError: (21-22): Expected "from". diff --git a/test/libsolidity/syntaxTests/parsing/import_invalid_token.sol b/test/libsolidity/syntaxTests/parsing/import_invalid_token.sol new file mode 100644 index 00000000..df837e28 --- /dev/null +++ b/test/libsolidity/syntaxTests/parsing/import_invalid_token.sol @@ -0,0 +1,3 @@ +import function; +// ---- +// ParserError: (7-15): Expected string literal (path), "*" or alias list. diff --git a/test/libsolidity/syntaxTests/parsing/import_simple.sol b/test/libsolidity/syntaxTests/parsing/import_simple.sol new file mode 100644 index 00000000..5d61a8bb --- /dev/null +++ b/test/libsolidity/syntaxTests/parsing/import_simple.sol @@ -0,0 +1,3 @@ +import "hello"; +// ---- +// ParserError: (0-15): Source "hello" not found: File not supplied initially. -- cgit v1.2.3