Commit Graph

2011 Commits

Author SHA1 Message Date
chriseth
6ca3973944
Merge pull request #4777 from ethereum/typeConversionMemory
Defaul data location for type conversions is memory.
2018-08-14 11:36:19 +02:00
chriseth
3dd31b704a
Merge pull request #4798 from ethereum/mappingArgumentsAndReturns
Mapping arguments and returns
2018-08-13 17:27:29 +02:00
chriseth
ae8218543b
Merge pull request #4696 from ethereum/byteLiteralConversion
Disallow ambiguous implicit and explicit conversions from number literals to bytesXX
2018-08-13 17:25:30 +02:00
Daniel Kirchner
dfcfc4c35b Add tests for mappings in function types. 2018-08-13 16:33:37 +02:00
Daniel Kirchner
341128962f Allow mappings of arrays as arguments and return values of internal functions. 2018-08-13 16:33:37 +02:00
Daniel Kirchner
4ae59acc09 Consider mappings return values in control flow analysis. 2018-08-13 16:33:37 +02:00
Daniel Kirchner
a9f31da411 Allow mapping arguments and return values in all internal functions. 2018-08-13 15:50:22 +02:00
chriseth
bd567a22c9 Defaul data location for type conversions is memory. 2018-08-13 14:38:12 +02:00
Daniel Kirchner
57ada1d69e Allow mapping arguments and return values in internal library functions. 2018-08-13 14:31:10 +02:00
Daniel Kirchner
7d7abeb149 Disallow ambiguous conversions between number literals and bytesXX types. 2018-08-13 14:27:01 +02:00
Daniel Kirchner
954d7433bd Disallow remappings with empty prefix. 2018-08-10 19:26:48 +02:00
chriseth
a38352569b Tests. 2018-08-09 21:16:51 +02:00
chriseth
63d071d6e0
Merge pull request #4783 from elopio/test/function-call-syntactical-equality
tests: add yul simplifier not applied with function calls
2018-08-09 12:08:55 +02:00
Christian Parpart
79ba5b61b3 Fixes compilation under MSVC. 2018-08-09 10:14:47 +02:00
Leo Arias
1395bef7ae tests: add yul simplifier not applied with function calls 2018-08-09 03:46:22 +00:00
Alex Beregszaszi
ed52f422b7 Rename FunctionKind SHA3 to KECCAK256 (as the instruction was renamed in libevmasm) 2018-08-08 22:37:40 +01:00
Alex Beregszaszi
478012a000
Merge pull request #4772 from ethereum/asm-json
Add tests for the assembler object (and avoid misusing string{} for u256)
2018-08-08 21:59:07 +01:00
Alexander Arlt
f76d4d5919 Fix: natspec annotations on constructors
- natspec annotations on constructore where ignored.
2018-08-08 21:53:35 +02:00
Alex Beregszaszi
0eeb06b6ea Test for legacyAssembly in StandardCompiler 2018-08-08 20:52:18 +01:00
Alex Beregszaszi
a16461249f Add tests for the assembler object 2018-08-08 20:52:18 +01:00
chriseth
d634d20b5b
Merge pull request #4684 from ethereum/underscores_in_numeric_literals
[BREAKING] Underscores in numeric literals
2018-08-08 21:36:57 +02:00
Alex Beregszaszi
bb071f3075
Merge pull request #4769 from ethereum/inlineasm-overloading-resolution
Provide nicer error message when referencing overloaded references
2018-08-08 17:55:10 +01:00
Alex Beregszaszi
9062704054
Merge pull request #4753 from mattaereal/boost-to-string-patch
Replace boost:lexical_cast<std::string> for std::to_string.
2018-08-08 16:07:25 +01:00
Alex Beregszaszi
3c791d637d Provide nicer error message when referencing overloaded references 2018-08-08 15:59:24 +01:00
Matías Aereal Aeón
e902ce1aa0 Removing std:: from std::to_string and include for boost/lexical_cast 2018-08-08 11:26:30 -03:00
Alex Beregszaszi
1bfb841771 Remove experimental 0.5.0 pragma 2018-08-08 14:05:36 +01:00
chriseth
de8e9114fd
Merge pull request #4740 from ethereum/enforceNumberOfReturnValues
Disallow empty return in function with return arguments.
2018-08-08 14:59:09 +02:00
Alex Beregszaszi
fbc8443174
Merge pull request #4589 from sifmelcara/fix/dynamic-link-boost-test
Fix shared boost test library build by customizing main
2018-08-08 13:53:00 +01:00
Christian Parpart
b9222808f6
Cleanup & polish numbers-with-underscores parsing, also improving tests. 2018-08-08 13:38:46 +02:00
chriseth
154a7706ba
Merge pull request #4737 from ethereum/isoltestEarlyExit
Return from main if quit was requested during a sub-testsuite.
2018-08-08 12:55:01 +02:00
chriseth
3b2bd2c1df
Merge pull request #4749 from elopio/test/yul-simplifier-not-applied
tests: add yul simplifier not applied
2018-08-08 12:49:14 +02:00
Daniel Kirchner
99d3e8e45a Add back lost test case to a more reasonable location. 2018-08-08 12:48:59 +02:00
Daniel Kirchner
576ba91970 Adjust return expressions in compilation tests. 2018-08-08 12:48:59 +02:00
Alex Beregszaszi
64e3c9913f
Merge pull request #4736 from ethereum/removeFillRight
Remove remaining instances of ``fillRight``.
2018-08-08 11:27:37 +01:00
Balajiganapathi S
09a36cba02 Add stricter hex underscore rules 2018-08-08 12:05:51 +02:00
Balajiganapathi S
0000bfc604 Allow underscores in numbers. 2018-08-08 12:05:51 +02:00
Leo Arias
cf3bf57cb2 tests: add yul simplifier not applied 2018-08-07 21:58:24 +00:00
chriseth
8e93b729a4
Merge pull request #4703 from ethereum/solc-fix-double-quoting-path-names
solc: Fixes double-quoting path names on stderr.
2018-08-07 21:46:00 +02:00
Daniel Kirchner
967bb6d999 Initialize `TestTool::m_formatted`. 2018-08-07 21:23:01 +02:00
Daniel Kirchner
bb518b59aa Update and extend tests for return expressions. 2018-08-07 20:49:52 +02:00
Daniel Kirchner
a6df7b1fb8 Always count all test cases in isoltest and exit early on user request. 2018-08-07 19:28:21 +02:00
Daniel Kirchner
b11e39e25e Remove remaining instances of `fillRight` left over from tuple wildcards assignments. 2018-08-07 18:51:53 +02:00
chriseth
d7756322c0
Merge pull request #4731 from ethereum/interface-enum
Allow enums in interfaces
2018-08-07 17:20:05 +02:00
Alex Beregszaszi
a765b5b31c
Merge pull request #4720 from ethereum/abi-rational-type-identifier
Fix type identifiers for RationalNumberType (on negative numbers)
2018-08-07 14:25:11 +01:00
Alex Beregszaszi
4158a310bd
Merge pull request #4729 from ethereum/slot-on-non-storage
Properly handle invalid references used together with _slot and _offset.
2018-08-07 14:16:43 +01:00
Alex Beregszaszi
34a711a14d Add endToEnd test for referencing enums 2018-08-07 15:04:17 +02:00
Christian Parpart
39ffd7500e
solc: Fixes double-quoting path names on stderr and adds tests for it.
Before it was possible to get a failure message, such as:

    ""notfound.sol"" is not found

whereas it should be:

    "notfound.sol" is not found.
2018-08-07 14:55:22 +02:00
Alex Beregszaszi
5298d818c4 Add test for abi.encode (negative) literals 2018-08-07 13:44:24 +01:00
Alex Beregszaszi
ce29aac8ad Add more syntax tests for enums and interfaces/libraries 2018-08-07 13:39:21 +01:00
Alex Beregszaszi
13e37df97c Allow enums in interfaces 2018-08-07 13:28:53 +01:00
Alex Beregszaszi
b0f9fc5af0 Fix type identifiers for RationalNumberType 2018-08-07 13:23:14 +01:00
chriseth
9d3827266c
Merge pull request #4695 from ethereum/test-natspec
Be explicit about which contract to test for in the Natspec tests
2018-08-07 14:19:56 +02:00
Alex Beregszaszi
05cc7e79e1 More precise error message if using non-variables with _slot/_offset 2018-08-07 13:18:54 +01:00
Alex Beregszaszi
eb7b3862ac Properly handle invalid references used together with _slot and _offset. 2018-08-07 13:18:38 +01:00
Alex Beregszaszi
8b2d630275
Merge pull request #4724 from ethereum/slot-in-assembly
Do not crash on using _slot and _offset suffixes on their own
2018-08-07 12:55:40 +01:00
Alex Beregszaszi
296ba24f7f Do not crash on using _slot and _offset suffixes on their own 2018-08-07 12:14:12 +01:00
chriseth
71e26f6adb Remove clone feature. 2018-08-07 11:10:50 +01:00
chriseth
0449b6446e
Merge pull request #4694 from ethereum/test-abijson
Be explicit about which contract to test for in ABIJSON tests
2018-08-06 19:01:05 +02:00
chriseth
276724dedc
Merge pull request #4663 from ethereum/dropConstantAST
[BREAKING] Drop constant field from JSON AST
2018-08-06 18:55:12 +02:00
chriseth
3b5eee4998 Tests for deriving types for empty string. 2018-08-06 17:10:23 +02:00
chriseth
bc73617f5e
Merge pull request #4689 from ethereum/cleanup-050-tests
Cleanup 0.5.0 test cases
2018-08-06 14:45:31 +02:00
Alex Beregszaszi
423cd52844 Be explicit about which contract to test for in the Natspec tests 2018-08-06 13:35:53 +01:00
Alex Beregszaszi
3c408a32c4 Be explicit about which contract to test for in ABIJSON tests 2018-08-06 13:30:38 +01:00
Alex Beregszaszi
2ab66bf798 Cleanup 0.5.0 test cases 2018-08-06 12:03:00 +01:00
chriseth
9d03de1f25
Merge pull request #4671 from ethereum/mappingTupleAssignment
Disallow assignments to mappings within tuple assignments; allow for local variables.
2018-08-06 12:59:16 +02:00
chriseth
3576980710
Merge pull request #4644 from ethereum/event_struct_error
Disallow structs in events without ABIEncoderV2
2018-08-06 11:44:05 +02:00
chriseth
30f981fc2c
Merge pull request #4681 from ethereum/var-suggestion-crash
Fix declaration suggestion for var with different number of components
2018-08-06 11:21:54 +02:00
Daniel Kirchner
bdd86cb39c Update tests. 2018-08-06 11:17:21 +02:00
chriseth
3684151e53
Merge pull request #4677 from ethereum/jsonAstTestExtraction
JSON AST test extraction
2018-08-06 11:01:51 +02:00
Alex Beregszaszi
83e6c34526 Fix declaration suggestion for var with different number of components 2018-08-04 15:22:22 +01:00
Daniel Kirchner
55386ba130 Extract AST JSON tests. 2018-08-03 20:35:50 +02:00
Daniel Kirchner
d923926ff7 Infrastructure for extracting JSON AST tests. 2018-08-03 20:35:50 +02:00
Christian Parpart
a4ee1dfc83
Merge pull request #4412 from ethereum/v050-reference-resolver-errorTypeForLoose
[BREAKING] permanently set errorTypeForLoose from Warning to SyntaxError
2018-08-03 19:30:33 +02:00
Daniel Kirchner
cbae02b514 Additional semantics test cases. 2018-08-03 17:38:30 +02:00
Alex Beregszaszi
2c2d4c47ea
Merge pull request #4662 from evgeniuz/develop
added helper function that joins vectors of strings
2018-08-03 16:13:13 +01:00
Daniel Kirchner
1e4b5886d6 Allow assignments to local variables of mapping types. 2018-08-03 16:22:03 +02:00
Daniel Kirchner
c0a169ca90 Disallow assignments to mappings within tuple assignments. 2018-08-03 15:46:26 +02:00
Leonardo Alt
20c6cea7bb Disallow structs in events without ABIEncoderV2 2018-08-03 13:41:27 +02:00
Evgeniy Filatov
3705bcc9bc added helper function that joins vectors of strings, refactored suggestions formattingi function to use it 2018-08-03 14:07:03 +03:00
Daniel Kirchner
35c5b7de25 Turn warning about uninitialized storage returns into an error. 2018-08-02 19:34:38 +02:00
Daniel Kirchner
9d11557dc9 Define BOOST_TEST_DYN_LINK for building soltest if Boost_USE_STATIC_LIBS is not set. 2018-08-02 14:41:32 +02:00
Christian Parpart
43c01361f3 Drops tests for inline assembly jumps and function access as both isn't possible anymore. 2018-08-02 13:37:22 +01:00
Christian Parpart
a4ab305347 Drop swap_peephole_optimization test from EndToEndTests
Already covered by libevmasm/Optimiser: peephole_noncommutative_swap1, peephole_commutative_swap1 and peephole_swap_comparison
2018-08-02 13:37:22 +01:00
Christian Parpart
9b8a05ebfb Update tests to remove support for loose assembly 2018-08-02 13:37:13 +01:00
Christian Parpart
5d9320c70b Disallow loos assembly in Solidity by permanently setting it to SyntaxError (from Warning) 2018-08-02 13:36:05 +01:00
mingchuan
b89365282b Fix shared boost test library build by customizing main 2018-08-02 13:08:24 +01:00
Alex Beregszaszi
9ec3fd1632
Merge pull request #4646 from ethereum/smt_model_secondary_location
SMT model is sorted and printed as secondary location
2018-08-01 23:20:28 +01:00
Leonardo Alt
90f319615f SMT model variables are sorted and printed as secondary source location 2018-08-01 23:27:46 +02:00
Alex Beregszaszi
e1b695f199
Merge pull request #4399 from ethereum/contractWhitespace
Remove trailing whitespace in all contract files.
2018-08-01 21:59:19 +01:00
Daniel Kirchner
8781990ff3 Remove trailing whitespace in all contract files. 2018-08-01 21:57:12 +02:00
Daniel Kirchner
4bcc4d2fcf Add additional test cases. 2018-08-01 17:18:17 +02:00
Daniel Kirchner
30d9961efb Do not exclude public state variables when looking for conflicting declarations. 2018-08-01 14:31:04 +02:00
Alex Beregszaszi
ce99a5ce7f
Merge pull request #4378 from ethereum/noBaseWithoutArguments
[BREAKING] Disallow calling base constructors without arguments.
2018-08-01 13:18:37 +01:00
chriseth
061ea0cfc6 Correctly determine whether base constructor is called without parentheses. 2018-08-01 12:28:27 +01:00
chriseth
7e5406dd89 Disallow calling base constructors without arguments. 2018-08-01 12:28:27 +01:00
Christian Parpart
cb200cf7e1 Adds positive/negative tests for checking error on cyclic dependency checker exhaustion 2018-08-01 12:04:08 +01:00
chriseth
b800bfb021 Fix tests regarding contract type conversion. 2018-08-01 11:04:35 +01:00
chriseth
c8232d9759 Disallow conversion between unrelated contract types. 2018-08-01 11:04:35 +01:00
Alex Beregszaszi
21888e246b
Merge pull request #4507 from ethereum/v050-var-keyword-trace-removals
Ensures an empty use of var keyword is caught with the proper non-fatal error message
2018-08-01 10:59:26 +01:00
Christian Parpart
a7150f85a6
Ensures an empty use of var keyword is caught with the proper error message. 2018-08-01 09:59:06 +02:00
Alex Beregszaszi
fe28814d83
Merge pull request #4625 from ethereum/pragma-cleanup
Remove unnecessary or stray version pragmas
2018-07-31 11:15:45 +01:00
Leonardo Alt
210fee571f Fix crash when FunctionType has undeclared type as parameter 2018-07-31 11:17:51 +02:00
Alex Beregszaszi
7fa2d0c84e Replace stray solidity pragma with progamatically inserting it in SolidityOptimizer test 2018-07-31 00:12:46 +01:00
Alex Beregszaszi
db6c1c8ddd Remove unnecesary version pragma from some syntax tests 2018-07-31 00:12:42 +01:00
Alex Beregszaszi
7c509137cf Replace dev::eth namespace with dev::lll in LLL 2018-07-28 12:00:36 +01:00
Alex Beregszaszi
61b94b7ea4
Merge pull request #4556 from ethereum/library-data-locations
Add tests for data locations within libraries
2018-07-25 18:03:30 +01:00
Alex Beregszaszi
5a1b6856b4
Merge pull request #4561 from ethereum/scanner-tests
Add comprehensive tests for the scanner
2018-07-25 17:02:40 +01:00
Alex Beregszaszi
05e608d778
Merge pull request #4562 from ethereum/parser-tests
Add comprehensive tests for the parser
2018-07-25 16:38:54 +01:00
Alex Beregszaszi
84e0676db8 Fix upstream issues in stringutils 2018-07-25 13:56:14 +01:00
Alex Beregszaszi
2ecb7a2f72 Update stringutils to upstream 3c63f18 2018-07-25 13:55:47 +01:00
Alex Beregszaszi
b079f34c65 Scanner tests for all shifts 2018-07-25 12:59:28 +01:00
Alex Beregszaszi
aee13d709c Scanner tests for all escapes 2018-07-25 12:59:24 +01:00
Alex Beregszaszi
7b5e912874 Add syntax tests for import statements 2018-07-25 11:01:41 +01:00
Alex Beregszaszi
49573bad46 Add syntax test for illegal pragma key 2018-07-25 11:01:41 +01:00
Alex Beregszaszi
fa68e0019f Add syntax test for location specifier redeclarations 2018-07-25 11:01:41 +01:00
Alex Beregszaszi
008eb1c2c9 Add syntax test for empty emit statement 2018-07-25 11:01:41 +01:00
Alex Beregszaszi
640b8af802 Add syntax tests for assembly block type (evmasm) 2018-07-25 11:01:41 +01:00
Alex Beregszaszi
ee85430f93 Add tests for data locations within libraries 2018-07-25 10:55:23 +01:00
Alex Beregszaszi
ab3978723a Add more tests for inlineasm/AsmAnalyzer 2018-07-25 10:45:31 +01:00
Alex Beregszaszi
d647761058 Add more comprehensive tests for embedded inline assembly LValue/RValue access 2018-07-25 10:45:31 +01:00
Alex Beregszaszi
167fe7c370
Merge pull request #4572 from ethereum/cmake-boost-tests
Do not include single-header boost_unit_test
2018-07-25 10:42:44 +01:00
Alex Beregszaszi
4a61cb5b59
Merge pull request #4554 from ethereum/indexing-tests
Add comprehensive syntax tests for indexed access
2018-07-25 10:37:30 +01:00
Paweł Bylica
f31989c022
Do not include single-header boost_unit_test
Do not mix 2 different usage variants of boost_unit_test. If you link with static libs do not include the single-header variant.

See https://www.boost.org/doc/libs/1_67_0/libs/test/doc/html/boost_test/usage_variants.html#boost_test.usage_variants.single_header
2018-07-25 09:17:53 +02:00
Alex Beregszaszi
a5a61a0b77 More consistent catch statements
Also take const& in all cases.
2018-07-25 01:18:09 +01:00
Alex Beregszaszi
1dbf2d1923 Add comprehensive syntax tests for indexed access 2018-07-24 20:26:36 +01:00
Alex Beregszaszi
3e17438c41 Add syntax tests for unknown / invalid pragma 2018-07-24 18:35:47 +01:00
Alex Beregszaszi
de90290c28
Merge pull request #4527 from ethereum/mappingEnforceStorage
Enforces explicit data location for mappings
2018-07-23 20:43:38 +01:00
Erik Kundt
c622a1e56c Enforces data location of local mappings to storage. 2018-07-23 19:30:07 +02:00
Christian Parpart
9f35f0b805 Disallow functions without implementation to use modifiers. This was already the case in the experimental 0.5.0 mode. 2018-07-23 17:29:08 +01:00
chriseth
e3c2f20f6e
Merge pull request #4439 from ethereum/address_members
[BREAKING] Enforce address members not accessible by contract instance
2018-07-19 09:24:27 +02:00
Leonardo Alt
faa9c221d4 Changes in ExpressionCompiler 2018-07-18 19:51:24 +02:00
Leonardo Alt
25fa1142bc Removing tests that are not useful anymore 2018-07-18 14:52:16 +01:00
Erik Kundt
b0b35e1e6b Adds warning if function is shadowing a contract. 2018-07-18 14:29:01 +02:00
Erik Kundt
de6cd2425b Adjusts syntax tests to new constructor syntax. 2018-07-18 14:29:01 +02:00
Erik Kundt
05d0e5c8fa Adds comment about reasoning behind syntax test. 2018-07-17 20:06:07 +02:00
Erik Kundt
7d8b39ff4f Removes obsolete syntax tests. 2018-07-17 19:30:15 +02:00
chriseth
dfd2fee91d Suggests external for fallback and interface functions. 2018-07-17 18:07:36 +02:00
Erik Kundt
75bba5c9f0 Adjusts tests to expect type errors on default visibility. 2018-07-17 18:03:35 +02:00
Leonardo Alt
563e0fc9a7 Add suggestion to error message 2018-07-17 16:38:36 +01:00
Leonardo Alt
0075f4239a Address members not accessible by contract instance 2018-07-17 13:33:23 +01:00
Christian Parpart
1d33f41c1a
Merge pull request #4463 from ethereum/isoltest-colors-on-windows
isoltest: adds support for properly handling ANSI escape sequences on Windows
2018-07-17 13:08:10 +02:00
Leonardo Alt
fdfdddd8dc Add missing period in the end of error messages 2018-07-16 16:11:39 +01:00
Christian Parpart
05121eebd1 isoltest: adds support for properly handling ANSI escape sequences on Win32/Win64 builds. 2018-07-16 16:34:23 +02:00
chriseth
29dae15c50
Merge pull request #4481 from ethereum/disallow-throw
[BREAKING] Deprecate the throw statement
2018-07-16 16:25:22 +02:00
Alex Beregszaszi
bdac82ecdb Replace throw with revert() in compilation tests 2018-07-16 15:33:31 +02:00
Alex Beregszaszi
aa08460d94 Replace throw with revert() in end-to-end tests 2018-07-16 15:33:20 +02:00
Alex Beregszaszi
21e97da294 Deprecate the throw statement 2018-07-16 15:33:20 +02:00
Erik Kundt
ed2aa3b869 Fixes end-to-end tests. 2018-07-16 14:51:46 +02:00
Erik Kundt
70c58b4886 Moves unit test from initial branch. 2018-07-16 14:51:46 +02:00
Erik Kundt
63b6f1532e Specifies visibility in syntax test. 2018-07-16 14:49:55 +02:00