Commit Graph

1092 Commits

Author SHA1 Message Date
chriseth
2411f5d839 Merge pull request #2704 from ethereum/newEncoder
New ABI encoder
2017-08-14 17:04:00 +02:00
Alex Beregszaszi
b225bf5d53 Remove useless payable & constant typecheck 2017-08-14 14:21:47 +01:00
Alex Beregszaszi
1c1388f241 Update parser tests 2017-08-14 14:21:47 +01:00
chriseth
63b556b206 Test both encoders. 2017-08-14 13:11:42 +01:00
chriseth
38446a9669 ABI encoder tests. 2017-08-14 13:11:38 +01:00
chriseth
4d9790b6d5 Merge pull request #2703 from ethereum/warnAboutLargeStorageArrays
Warn about large storage structures.
2017-08-14 11:37:01 +02:00
Federico Bond
f0dc572055 Improve and add missing tests 2017-08-11 22:45:25 +01:00
chriseth
da3ac86403 Warn about large storage structures. 2017-08-11 20:57:57 +02:00
Federico Bond
a8c047f48d Enforce commas in tuple syntax 2017-08-11 17:28:48 +01:00
chriseth
20540bc6af Merge pull request #2730 from ethereum/indented-writer
Introduce IndentedWriter
2017-08-11 18:24:01 +02:00
Alex Beregszaszi
e3d1137d2b Merge pull request #2712 from ethereum/experimental-metadata
Store experimental flag in metadata CBOR
2017-08-11 17:21:08 +01:00
Zhen Zhang
b5aeae0084 Amend expected test messages for SolidityNameAndTypeResolution 2017-08-11 16:45:52 +01:00
Alex Beregszaszi
2d1bab0de8 Output experimental flag in metadata only for risky features 2017-08-11 16:38:43 +01:00
Alex Beregszaszi
4d82d4f57a Store experimental flag in metadata CBOR 2017-08-11 16:38:43 +01:00
Alex Beregszaszi
644c91fc2d Add __test experimental mode for testing 2017-08-11 16:38:02 +01:00
Alex Beregszaszi
d5188fb671 Introduce IndentedWriter 2017-08-10 22:47:09 +01:00
Alex Beregszaszi
abe6eb9830 Merge pull request #2700 from ethereum/abiTests
Some more ABI tests.
2017-08-10 16:59:09 +01:00
chriseth
95acbc7a9f Some more ABI tests. 2017-08-10 15:49:02 +02:00
Alex Beregszaszi
470950e75e Add tests for experimental pragma 2017-08-10 00:15:25 +01:00
Alex Beregszaszi
efd45f64a5 Show previous visibility specifier in parser error 2017-08-09 14:30:17 +01:00
Alex Beregszaszi
a8ca623a0f Add test for multiple visibilites on functions 2017-08-09 14:30:02 +01:00
Alex Beregszaszi
8df89c5d5b Disable unimplemented library functions instead 2017-08-08 12:42:10 +01:00
Alex Beregszaszi
1ada48f61e Raise error when using unimplemented internal library functions. 2017-08-08 11:58:00 +01:00
Alex Beregszaszi
bb0eb57c2f Constructors must be implemented if declared. 2017-08-04 20:38:45 +01:00
Alex Beregszaszi
a372941a44 Merge pull request #2687 from ethereum/show-unimplemented-funcs
Show unimplemented function if trying to instantiate an abstract class
2017-08-04 19:46:09 +01:00
chriseth
eacc67c430 Three more tests for shadowing. 2017-08-04 19:08:20 +02:00
Alex Beregszaszi
32acadf43d Do not mark overloaded functions as shadowing 2017-08-04 19:06:23 +02:00
Alex Beregszaszi
ef8c404c45 Fix tests to use unimplementedFunctions 2017-08-04 14:03:37 +01:00
chriseth
38e9505a83 Merge pull request #2673 from ethereum/builtin-gas
Disallow gas modifier on sha256/ripemd160/ecrecover
2017-08-04 14:43:15 +02:00
Alex Beregszaszi
b7642dc8a7 Disallow gas modifier on sha255/ripemd160/ecrecover 2017-08-01 20:55:01 +01:00
Alex Beregszaszi
f63bb0a442 Add test for call/callcode/delegatecall to invalid address 2017-08-01 20:51:52 +01:00
Alex Beregszaszi
b3061225bc .delegatecall() should always return a boolean of execution status 2017-08-01 20:50:03 +01:00
Alex Beregszaszi
6ea4b7fa37 Add test for tight packing keccak256/sha256/ripemd160 2017-08-01 02:11:17 +01:00
Alex Beregszaszi
990b7364f5 Add test for disallowed gas/value modifiers on builtins 2017-08-01 00:03:25 +01:00
chriseth
b930ce5e2a Fix import error check for release version. 2017-07-31 14:55:54 +02:00
chriseth
6dba8cf0f4 Use keccak256 instead of sha3 2017-07-28 16:57:34 +02:00
chriseth
368a8a62c1 Test case for invalid ecrecover call. 2017-07-28 15:32:42 +02:00
Alex Beregszaszi
53f747b7de Merge pull request #2635 from ethereum/fixCrashOnAssignmentToNonLValue
Fix crash on assignment to non-LValue
2017-07-27 13:59:22 +01:00
chriseth
7c7c2baa82 Re-allow multiple modifiers per function. 2017-07-27 13:45:39 +02:00
chriseth
16977bab7d Merge pull request #2650 from ethereum/metadata-test-fix
Fix metadata tests
2017-07-27 11:48:08 +02:00
Yoichi Hirai
241322e805 Merge pull request #2642 from ethereum/test-split-asm
Split off libevmasm specific optimiser tests
2017-07-27 11:29:33 +02:00
Alex Beregszaszi
ca28ce7d7b Fix metadata tests 2017-07-27 10:26:57 +01:00
chriseth
1298a8df14 Merge pull request #2566 from ethereum/metadata-only-relevant
Metadata: only include relevant files in the source list
2017-07-27 11:07:15 +02:00
Alex Beregszaszi
8107177b9c Split off libevmasm specific optimiser tests 2017-07-26 20:51:27 +01:00
chriseth
925569bfa3 Merge pull request #1637 from ethereum/warn-shadowing-globals
Warn if shadowing built-ins
2017-07-26 17:30:27 +02:00
Alex Beregszaszi
30012db396 Add CompilerStack::setOptimiserSettings 2017-07-26 15:17:07 +01:00
Alex Beregszaszi
6848199b66 Add CompilerStack::setLibraries 2017-07-26 15:05:16 +01:00
Alex Beregszaszi
fa5a7efb45 Remove unused interfaces from CompilerStack 2017-07-26 15:05:16 +01:00
chriseth
0d701c9456 Merge pull request #2603 from ethereum/test-jsoncompiler
Comprehensive tests for jsonCompiler
2017-07-26 14:41:24 +02:00
chriseth
b8fc58850d Test for assigning to non-lvalue. 2017-07-26 14:32:25 +02:00
Alex Beregszaszi
e0dc74b895 Warn about shadowing variables. 2017-07-25 16:32:37 +02:00
benjaminion
d84e9e7b6a LLL: Test cases for nested IF expressions. 2017-07-21 10:23:03 +01:00
chriseth
72917c4f35 Cleanup fixed point type changes 2017-07-19 22:13:42 +01:00
VoR0220
78769f3b39 Change fixed point types to have digit count
Signed-off-by: VoR0220 <rj@erisindustries.com>
2017-07-19 21:49:01 +01:00
Alex Beregszaszi
6d6d4f6907 Merge pull request #2334 from ethereum/printMultiError
Print information about types of errors.
2017-07-19 21:25:36 +01:00
Alex Beregszaszi
e506129aee Add test and changelog 2017-07-19 07:19:01 -07:00
Alex Beregszaszi
35feb6d47c Add tests for relevant metadata files 2017-07-19 14:57:12 +01:00
Alex Beregszaszi
55600f2c51 Add test for compileStandard 2017-07-19 13:45:00 +01:00
Alex Beregszaszi
bcd19456f4 Add test for compileSingle 2017-07-19 13:40:44 +01:00
Alex Beregszaszi
439b67e019 Add test for compileJSONCallback 2017-07-19 13:40:28 +01:00
chriseth
217a4ae7c1 Print information about types of errors. 2017-07-19 12:26:08 +01:00
Yoichi Hirai
e45e95f578 Merge pull request #2596 from ethereum/lll-test-optimiser
Run LLL contract tests with optimiser too
2017-07-19 11:49:27 +02:00
Yoichi Hirai
2a46e1b0e2 Merge pull request #2589 from ethereum/rename-onchainmetadata
Rename onChainMetadata to metadata
2017-07-19 11:43:19 +02:00
Yoichi Hirai
becb7af4a2 Merge pull request #2597 from ethereum/modifier-internal
Mark modifiers as internal
2017-07-19 11:41:07 +02:00
Alex Beregszaszi
644de755dc Mark modifiers as internal 2017-07-18 23:00:17 +01:00
Alex Beregszaszi
407a6e1a0f Run LLL contract tests with optimiser too 2017-07-18 22:52:18 +01:00
Alex Beregszaszi
6d8929a71a Rename onChainMetadata to metadata 2017-07-18 20:54:28 +01:00
Alex Beregszaszi
13edf1062f Run metadata and gas meter tests when optimiser is on too 2017-07-18 20:22:00 +01:00
Alex Beregszaszi
075715cf15 Do not use obscure CompilerStack methods in tests 2017-07-18 16:14:25 +01:00
Alex Beregszaszi
6e4150a5cf Test for version/license in jsonCompiler 2017-07-18 15:33:38 +01:00
benjaminion
22f771dd40 LLL: whole contract tests for the ENS Registry. 2017-07-18 11:16:10 +01:00
chriseth
b61f744dd9 Merge pull request #2565 from ethereum/literal-string-error
Include types in explicit conversion error message
2017-07-14 11:42:04 +02:00
Alex Beregszaszi
7c97546f44 Merge pull request #2559 from benjaminion/lll-contract-test-erc20
LLL: whole contract tests for ERC20 token.
2017-07-14 10:50:09 +02:00
benjaminion
3220ad0838 LLL: whole contract tests for ERC20 token. 2017-07-14 08:27:50 +01:00
Alex Beregszaszi
aec3eabdda Add test for explicit type conversion literal string 2017-07-13 23:16:14 +02:00
Alex Beregszaszi
4229caaadc Disable large arrays for memory location too 2017-07-13 22:47:35 +02:00
Alex Beregszaszi
e640bb2aed Add tests for large calldata arrays 2017-07-13 22:47:35 +02:00
chriseth
a8d78bb767 Refactor compilation tests. 2017-07-13 21:47:29 +02:00
Alex Beregszaszi
9a5aac599e Run tests on source code from docs 2017-07-13 17:10:37 +02:00
Alex Beregszaszi
b5da5f6e42 Merge pull request #2504 from ethereum/inlineasm-decl-empty
Support variable declarations without an assignment in assembly
2017-07-13 16:58:24 +02:00
chriseth
d1c3ecc94a Merge pull request #2567 from ethereum/refactorExceptions
Refactor exceptions and provide comment function.
2017-07-13 16:56:03 +02:00
Alex Beregszaszi
ee3a2c0599 Add end-to-end test 2017-07-13 15:18:40 +02:00
Alex Beregszaszi
cee93d946d Support parsing let statements without a value 2017-07-13 15:18:18 +02:00
chriseth
c9b51e71bd Add another transfer testcase. 2017-07-13 15:10:34 +02:00
chriseth
09e821619e Refactor exceptions and provide comment function. 2017-07-13 11:34:03 +02:00
Federico Bond
da917333d9 Fix error message formatting 2017-07-12 23:59:45 -03:00
Federico Bond
f20b150f38 Add type error when attempting value transfer to a non-payable contract 2017-07-12 23:57:53 -03:00
chriseth
b1c1fb6c83 Gnosis compilation contracts. 2017-07-12 15:55:11 +02:00
chriseth
b7a59652f1 Merge pull request #2501 from ethereum/undef-macros
Move UndefMacros from libdevcore to libsolidity/parsing
2017-07-12 15:07:20 +02:00
chriseth
106acd9cbb Merge pull request #2522 from ethereum/testCode
Added various contracts for testing.
2017-07-12 15:03:29 +02:00
Alex Beregszaszi
db7ad508f8 Issue proper warning trying to access calldata variables in inline assembly 2017-07-12 10:48:44 +02:00
Alex Beregszaszi
699a3724ae Merge pull request #2545 from benjaminion/lll-alloc-updated
LLL: alloc issues round-up
2017-07-11 22:44:41 +02:00
benjaminion
3bc935d932 LLL: rewrite alloc to avoid issues with edge cases. 2017-07-11 21:22:38 +01:00
Alex Beregszaszi
1682767c6e Add failing implicit conversion test 2017-07-11 14:51:58 +01:00
chriseth
883666d2c0 Fix invalid "explicit storage keyword" warning for reference members of structs. 2017-07-10 18:30:41 +02:00
benjaminion
e3c58eada6 Test cases for for and while loops. 2017-07-08 19:55:41 +01:00
chriseth
0400e61e28 Deprecate throw. 2017-07-05 21:15:00 +02:00
chriseth
dd34277ca6 Warn if local storage reference variable does not use "storage" explicitly. 2017-07-05 19:38:00 +02:00
chriseth
ac84b36144 Added various contracts for testing. 2017-07-05 12:39:55 +02:00
chriseth
0cb93a5f7b Test for internal "variable already present" error. 2017-07-04 19:33:54 +02:00
Alex Beregszaszi
b615b01449 Move UndefMacros from libdevcore to libsolidity/parsing 2017-07-02 00:09:46 +01:00
chriseth
dd9416be29 Merge pull request #2481 from ethereum/mload-optim
MLOAD has side-effects, treat it like that in the optimiser
2017-07-01 17:53:01 +02:00
Yoichi Hirai
4dfc413b8e test: add a test passing an invalid boolean value as an event argument
Fixes #1381
2017-07-01 10:35:51 +01:00
Yoichi Hirai
fdc9ef14ad test: add an assertion about storing an invalid boolean into the memory 2017-07-01 10:35:51 +01:00
Yoichi Hirai
7cbf6a86dd test: add a test about storing an invalid boolean 2017-07-01 10:35:51 +01:00
chriseth
11dd89c70b Removed useless test. 2017-06-30 21:27:39 +01:00
Alex Beregszaszi
0c92f53944 Correctly check for jump warnings 2017-06-30 20:47:33 +01:00
Alex Beregszaszi
d4fecc7b11 Warn on JUMP/JUMPI in inline assembly 2017-06-30 20:47:14 +01:00
chriseth
044058276e Warn about callcode. 2017-06-30 16:37:32 +02:00
chriseth
2f983f7002 Merge pull request #2418 from benjaminion/lll-macro-tests
LLL: Full set of test cases for the built-in compiler macros.
2017-06-28 19:25:28 +02:00
chriseth
46caff4597 Test for negative stack height. 2017-06-28 16:55:49 +01:00
benjaminion
468d716800 LLL: Full set of test cases for the built-in compiler macros. 2017-06-28 16:07:45 +01:00
chriseth
79d1336687 Merge pull request #2462 from ethereum/lll-fix-def
LLL: fix redefinitions on some compilers
2017-06-28 16:32:43 +02:00
chriseth
803ab3626b Verbose error message test failure. 2017-06-28 15:02:25 +02:00
chriseth
c3e5d6b7ef Give min and max values in warning message. 2017-06-28 15:02:25 +02:00
chriseth
070a241899 Adjust other tests. 2017-06-28 11:41:03 +02:00
chriseth
c73ba612f4 Fix test error reporting if we ignore warnings. 2017-06-28 11:41:03 +02:00
chriseth
af7ff3a3ef Update tests themselves 2017-06-28 11:41:03 +02:00
chriseth
73fbaa5a3e Test for var i = 0; 2017-06-28 11:41:03 +02:00
chriseth
708d17d13f Merge pull request #2464 from federicobond/deprecate-function-type-names
Warn deprecated usage of parameter names in function types
2017-06-27 16:32:48 +02:00
chriseth
e715dd0b7e Merge branch 'develop' into utf8-strict-parser 2017-06-27 14:37:45 +02:00
Alex Beregszaszi
bc31d4969c Merge pull request #2437 from ethereum/warnDoubleCopyStorage
Warn about copies in storage that might overwrite unexpectedly.
2017-06-27 10:24:03 +01:00
Alex Beregszaszi
6b05bbbbb4 Update tests for function type comparison 2017-06-26 22:01:35 +01:00
Alex Beregszaszi
ec15df2aa7 Add a text corpus to the UTF-8 tests 2017-06-26 21:47:01 +01:00
Alex Beregszaszi
551e19e884 Add comprehensive test for UTF-8 validation 2017-06-26 21:47:01 +01:00
Federico Bond
70fd5c1770 Warn deprecated usage of parameter names in function types 2017-06-26 15:39:01 -03:00
chriseth
336c9e8f32 Some more tests. 2017-06-26 16:42:43 +02:00
chriseth
1a3066c3a1 Test about semantics of "swap" in storage. 2017-06-26 16:31:36 +02:00
chriseth
d0b6de0b34 Warn about copies in storage that might overwrite unexpectedly. 2017-06-26 16:31:36 +02:00
chriseth
d2445dfdce Tests for comparison of non-comparable types. 2017-06-26 16:30:22 +02:00
Alex Beregszaszi
751ba701bc Merge pull request #2450 from ethereum/addressstring
Fix for strings treated as addresses.
2017-06-26 12:18:33 +01:00
Alex Beregszaszi
a0b0df2d98 Merge pull request #2460 from ethereum/disallowMultiModifier
Disallow invoking the same modifier multiple times.
2017-06-26 11:51:12 +01:00
chriseth
c328ab411b Merge pull request #2442 from ethereum/remove-why3
Remove Why3 generator
2017-06-26 09:20:23 +02:00
chriseth
f879489291 Merge pull request #2449 from federicobond/warn-bytesxx-decimal
Warn if decimal literals are used in a bytesXX context
2017-06-26 09:13:41 +02:00
Alex Beregszaszi
555dc4f46f Remove Why3 generator 2017-06-25 12:26:16 +01:00
Alex Beregszaszi
dbbdcc66e6 LLL: fix redefinitions on some compilers 2017-06-24 12:59:30 +01:00
Federico Bond
7a3ea61ffd Warn if decimal literals are used in a bytesXX context
Fixes #2349
2017-06-23 23:21:19 -03:00
chriseth
5a75581f66 Disallow invoking the same modifier multiple times. 2017-06-23 20:12:22 +02:00
chriseth
64067975e4 Review suggestions. 2017-06-23 19:29:11 +02:00
chriseth
25fc8ad9b9 Fix tests. 2017-06-23 19:29:11 +02:00
chriseth
a25f73e2cc Fix location tests. 2017-06-23 19:29:11 +02:00
Alex Beregszaszi
367389472b Merge pull request #2439 from ethereum/lll-vars
LLL: fix variable (set/get/ref) handling
2017-06-23 15:50:29 +01:00
chriseth
b86a4cad57 Check for constness of address constant. 2017-06-23 11:19:57 +02:00
Alex Beregszaszi
af57c083f2 LLL: fix the set keyword (create symbol if not present) 2017-06-23 02:52:44 +01:00
Alex Beregszaszi
79ed529b3f Merge pull request #2452 from ethereum/fixPassingEmptyString
Fix passing empty string
2017-06-22 22:33:06 +01:00
Alex Beregszaszi
08a5d144ac Merge pull request #2426 from ethereum/miniMoustache
Whiskers template system
2017-06-22 22:17:26 +01:00
chriseth
bffb8c404f Merge pull request #2408 from federicobond/constant-parameters
Fix segmentation fault with constant function parameters
2017-06-22 18:46:15 +02:00
chriseth
f36e021ffc Test for passing empty string literal as function argument. 2017-06-22 17:39:29 +02:00
chriseth
cb7021881a Whiskers template system 2017-06-22 16:56:57 +02:00
chriseth
9eaf26a359 Check for address-like strings being treated as addresses. 2017-06-22 16:48:44 +02:00