Commit Graph

1105 Commits

Author SHA1 Message Date
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
benjaminion
0175008ffa LLL: Fix msg macro with six arguments.
The previous macro used the set built-in in a way incompatible with the current
implementation of set. This commit updates the macro to be more transparent in how it's
working and avoids the use of the set and alloc built-ins.
2017-06-22 13:46:52 +01:00
chriseth
de7a488f82 Merge pull request #2415 from benjaminion/lll-fix-create-macro
LLL: Fix for edge case in the create macros.
2017-06-22 12:33:45 +02:00
chriseth
1c54ce2a2c Merge pull request #2399 from ethereum/lll-if
LLL: Replace obsolete assembly code
2017-06-22 12:22:28 +02:00
benjaminion
9954c5c0fa LLL: Testcases for the two create built-in macros. 2017-06-22 09:45:23 +01:00
Federico Bond
0f8ad1d68f Fix segmentation fault with constant function parameters 2017-06-21 22:46:27 -03:00
benjaminion
35bf91407e LLL: Test case for ecrecover built-in macro. 2017-06-21 23:35:27 +01:00
Alex Beregszaszi
3515ee98ff Add tests for when/unless/if in LLL 2017-06-21 21:23:20 +01:00
chriseth
b3a7b5a145 Merge pull request #2416 from federicobond/multiple-specifiers
Display error if payable or constant is specified multiple times
2017-06-19 12:00:04 +02:00
chriseth
0c75afb2c1 Merge pull request #2225 from ethereum/julia-for
Implement for statement in assembly parser / printer / code generator
2017-06-19 11:53:22 +02:00
Federico Bond
d170ceaf3d Display error if payable or constant is specified multiple times 2017-06-17 12:21:46 -03:00
Alex Beregszaszi
d7e63f23de Fix UTF-8 validation for high codepoints (>10000) 2017-06-16 16:41:29 +02:00
Alex Beregszaszi
c5339037e9 Test for variable redeclaration in for loops 2017-06-16 11:30:03 +01:00
chriseth
0fd73e5832 Fix test. 2017-06-16 11:29:41 +01:00
chriseth
ea0a86a995 Some more parsing tests. 2017-06-16 11:29:35 +01:00
chriseth
2f0826ffd7 Functionality tests for for. 2017-06-16 10:56:21 +01:00
chriseth
1b3ba7bc57 Some more tests. 2017-06-16 10:56:21 +01:00
Alex Beregszaszi
47925bc14e Parse for statement in assembly parser / printer 2017-06-16 10:56:21 +01:00
chriseth
fb5db94879 Merge pull request #2397 from ethereum/doublepush
Peephole optimizer for double push.
2017-06-15 10:50:07 +02:00
chriseth
7af9d10006 Fix lll test. 2017-06-15 10:07:17 +02:00
chriseth
66881bd675 Merge branch 'develop' into asm-aux 2017-06-15 08:39:02 +02:00
Alex Beregszaszi
42b61171d9 Merge pull request #2192 from winsvega/develop
add STATICCALL instruction
2017-06-14 21:03:32 +01:00
Alex Beregszaszi
3c4671a2da Match substring in tests to avoid metadata issues 2017-06-14 20:31:20 +01:00
Alex Beregszaszi
585b3ea3e3 Print auxiliary data in the assembly 2017-06-14 20:14:15 +01:00
chriseth
e5b0ad562e Peephole optimizer for double push. 2017-06-14 20:02:45 +02:00
chriseth
f008ddf836 Merge pull request #2381 from ethereum/fixcrash
Fix a crash about a non-callable expression.
2017-06-14 18:35:38 +02:00
chriseth
fd5bf16101 Merge pull request #2384 from ethereum/parseFunctionalInstructions
Enforce function arguments when parsing functional instructions.
2017-06-14 18:35:16 +02:00
Dimitry
c20cdd0a05 add new opcode instructions to the parser
STATICCALL        0xfa  6 inputs  (gas address mem1 mem2 mem3 mem4)
2017-06-14 18:18:12 +02:00
chriseth
d693822a6f Merge pull request #2394 from ethereum/lll-shifts
Support shl/shr in LLL
2017-06-14 18:04:40 +02:00
chriseth
2b3b00776e Additional test. 2017-06-14 16:06:48 +02:00
chriseth
1ae0e082b3 Merge pull request #2392 from federicobond/disallow-trailing-commas
Forbid trailing commas in named arguments
2017-06-14 15:31:40 +02:00
Alex Beregszaszi
600e3ad240 Support shl/shr in LLL 2017-06-14 14:08:28 +01:00
chriseth
1b1f35762e Enforce function arguments when parsing functional instructions. 2017-06-14 14:51:47 +02:00
chriseth
21aafaa704 Merge pull request #2331 from ethereum/ASTDocumentationEntry
documentation field added to ContractDefinition-Node
2017-06-14 14:32:27 +02:00
chriseth
07cc84fade Fix a crash about a non-callable expression. 2017-06-14 14:26:20 +02:00
Federico Bond
fd8365df08 Forbid trailing commas in named arguments 2017-06-14 00:15:27 -03:00
benjaminion
3299c479b6 LLL: fix handling of "sha3" expression
When PR #2317 changed the EVM opcode from SHA3 to KECCAK256 it broke the `(sha3 loc len)` expression in LLL. This PR fixes things while allowing existing code using the sha3 expression (such as the ENS registrar) to continue to compile.  I.e. both `(keccak256 loc len)` and `(sha3 loc len)` may be used, and the existing related sha3 macros continue to work.

Three end-to-end test cases have been added for kekkac256 and sha3.
2017-06-13 22:20:14 +01:00
Yoichi Hirai
8775e77305
Add a warning about a varialbe of the name of an instruction 2017-06-13 16:57:08 +02:00
Yoichi Hirai
a7241df4b7
Add a failing test as suggested in
https://github.com/ethereum/solidity/pull/2275#discussion_r121438333
2017-06-13 16:57:08 +02:00
Yoichi Hirai
a0f8c94dad
Add a test about checking a warning 2017-06-13 16:57:08 +02:00
Yoichi Hirai
464dea2459
test: Add different styles of returndatacopy and returndatasize 2017-06-13 16:57:08 +02:00
Yoichi Hirai
0b22154a75
libevmasm: add RETURNDATACOPY and RETURNDATASIZE 2017-06-13 16:57:02 +02:00
Yoichi Hirai
c4f0608b68
More informative test 2017-06-13 12:28:03 +02:00
Yoichi Hirai
0909ffc26e
Fix the expectation about the parse 2017-06-13 12:21:28 +02:00
Yoichi Hirai
a03913427f
Add an end-to-end test about LLL macro with zero arguments 2017-06-12 15:16:08 +02:00
Yoichi Hirai
b86b084bc6
Add a test that fails about an LLL macro with no arguments 2017-06-12 15:16:03 +02:00
chriseth
bf2b5c746a Use lowercase when reporting instruction error. 2017-06-09 15:17:29 +02:00
Alex Beregszaszi
80227af08a Add test for two functions calling eachother 2017-06-09 10:46:13 +01:00
chriseth
b098b363b5 Test for embedded functions. 2017-06-08 15:52:45 +02:00
chriseth
b75c7b5775 Move inline assembly to new abstraction and test both backends. 2017-06-08 15:52:45 +02:00
chriseth
64ddb176bb Test for accessing outer inline assembly scope. 2017-06-08 15:52:45 +02:00
chriseth
97cc968a13 Initial EVM1.5 assembly implementation. 2017-06-08 15:52:44 +02:00
djudjuu
83f0e00900 tests for non-legacy mode 2017-06-07 15:52:44 +02:00
djudjuu
ebdebc7c12 new test case and indentation fix 2017-06-06 15:47:30 +02:00
chriseth
1fba984966 Merge pull request #2332 from ethereum/fixLiteralPrint
fix Literalprint
2017-06-06 15:09:48 +02:00
djudjuu
62eafdd010 adjusted testcase and renaming 2017-06-06 13:26:23 +02:00
chriseth
d4a57d81ba Merge pull request #2317 from ethereum/keccak256
Use keccak256 in tests and replace the SHA3 instruction in assembly
2017-05-30 19:34:28 +02:00
djudjuu
b011ddfae3 adjusted test-cases 2017-05-30 19:25:54 +02:00
Rhett Aultman
89b60ffbd4 Refactor error reporting
This commit introduces ErrorReporter, a utility class which consolidates
all of the error logging functionality into a common set of functions.
It also replaces all direct interactions with an ErrorList with calls to
an ErrorReporter.

This commit resolves issue #2209
2017-05-30 07:28:31 -07:00
Alex Beregszaszi
dcb7c51920 Add inline assembly test for sha3/keccak256 2017-05-30 13:57:44 +01:00
Alex Beregszaszi
ff33297786 Add test for sha3() == keccak256() 2017-05-30 12:33:04 +01:00
Alex Beregszaszi
9e1c509cf5 Use keccak256() in tests (and not sha3()) 2017-05-30 12:33:04 +01:00
Alex Beregszaszi
0c8beac357 Rename the SHA3 assembly instruction to KECCAK256 2017-05-30 10:54:29 +01:00
Alex Beregszaszi
efadf7e41f Change error message for invalid type 2017-05-26 20:42:17 +01:00
Alex Beregszaszi
8fe79fe706 Introduce Julia mode in AsmAnalyzer 2017-05-26 20:39:30 +01:00
Alex Beregszaszi
3b75c5b45f Validate that only basic types are used in Julia 2017-05-26 20:39:10 +01:00
Alex Beregszaszi
98c9051174 Fix expected message in test case 2017-05-26 11:16:12 +01:00
chriseth
ec676ba9f2 Merge pull request #2224 from ethereum/julia-switch
Implement switch statement in the assembly parser/printer
2017-05-26 11:24:38 +02:00
Alex Beregszaszi
05fcf1989c Better error messages for invalid switch cases 2017-05-26 03:20:34 +01:00
Alex Beregszaszi
c64bd33784 Disallow instructions as a switch expression 2017-05-26 03:20:34 +01:00
Alex Beregszaszi
0c5c1ca911 Add tests 2017-05-26 03:20:34 +01:00
Alex Beregszaszi
7600a814fa Enable the analyzer for Julia tests 2017-05-25 01:28:47 +01:00
Alex Beregszaszi
338202ea96 Uniform error messages 2017-05-24 13:35:52 +01:00
Alex Beregszaszi
130f7419fb Add tests 2017-05-24 13:35:52 +01:00
Alex Beregszaszi
4612c7681c Validate metadata JSON too 2017-05-24 12:24:00 +01:00
Alex Beregszaszi
804e99c633 Split out metadata test into its own file 2017-05-24 12:24:00 +01:00
Alex Beregszaszi
fb46268982 Add tests 2017-05-23 10:24:19 +01:00
chriseth
74d2e7311a Merge pull request #2265 from roadriverrail/inline_asm_unused_warning
Analyze InlineAssembly for variable use
2017-05-22 16:34:29 +02:00
chriseth
8eead553af Merge pull request #1810 from ethereum/compactJson
Compact format for AST-Json.
2017-05-22 14:33:46 +02:00
Rhett Aultman
621c3fa22f Analyze InlineAssembly for variable use
The unused variable checker in StaticAnalyzer did not conssider
InlineAssembly objects.  This commit introduces that missing feature.
2017-05-21 15:23:05 -07:00
chriseth
e2b21e1c96 Refactor to abstract assembly to JULIA. 2017-05-19 19:20:28 +02:00
chriseth
41ee2cefbb Merge pull request #2282 from ethereum/fuzzer
Display the source on which the 'fuzzer' failed
2017-05-19 18:32:50 +02:00
chriseth
6d1252f807 Put filename in quotes. 2017-05-19 17:58:07 +02:00
chriseth
56424bb202 Merge pull request #2262 from ethereum/interface-cleanup
Cleanup the external interfaces (ABI and Natspec)
2017-05-19 17:55:33 +02:00
chriseth
982f661339 Merge pull request #2223 from ethereum/julia-bool
Add support for bool literals in Julia
2017-05-19 17:48:36 +02:00
Alex Beregszaszi
cd5d93da2a Rename CompilerStack.metadata to CompilerStack.natspec 2017-05-19 16:11:04 +01:00
Alex Beregszaszi
4bf3cbb09a Use CompilerStack.contractABI directly 2017-05-19 15:57:36 +01:00
chriseth
21ba8eea69 Disable error checking by bash for fuzzer 2017-05-19 15:30:35 +01:00
Alex Beregszaszi
56412b11b3 Display the source on which the 'fuzzer' failed 2017-05-19 15:30:35 +01:00
Alex Beregszaszi
2ade4fcdd8 Add tests for bool literal 2017-05-19 09:44:16 +01:00
djudjuu
6316a76ab9 testsuite adjustment 2017-05-19 09:51:23 +02:00
seusher
d546c2873a Issue 2279: Log JSON RPC requests and responses when --log_level=message is provided to soltest 2017-05-17 12:57:55 -07:00
chriseth
dea7b864e6 Compact format for AST-Json with backwards compatibility 2017-05-17 11:14:33 +02:00
chriseth
d9b5ff0b43 Merge pull request #2222 from ethereum/julia-types
Add support for types in Julia
2017-05-16 16:59:15 +02:00
Yoichi Hirai
9dac41d845
Remove an unused function successAssemble
Otherwise, I see a build failure:
    test/libjulia/Parser.cpp:92:6: error: ‘bool dev::solidity::test::{anonymous}::successAssemble(const string&, bool)’ defined but not used [-Werror=unused-function]
     bool successAssemble(string const& _source, bool _allowWarnings = true)
          ^~~~~~~~~~~~~~~
    cc1plus: all warnings being treated as errors
2017-05-09 11:51:16 +02:00
Alex Beregszaszi
41b5361b3f Run in optimizer mode when requested 2017-05-06 11:28:46 +01:00
Alex Beregszaszi
31bd4acf66 Split out common metadata validation code 2017-05-06 11:28:01 +01:00
Alex Beregszaszi
c4315521a3 Add basic test for jsonCompiler 2017-05-06 11:28:01 +01:00
Alex Beregszaszi
6706932d7c Add tests for types in Julia 2017-05-05 22:31:22 +01:00
Alex Beregszaszi
f1dbc77272 Remove analyzer from Julia tests 2017-05-05 14:21:25 +01:00
Alex Beregszaszi
62df401328 Add Julia parser test 2017-05-05 14:21:25 +01:00
chriseth
0582fcb93b Merge pull request #2194 from ethereum/removeerrorlabel
Remove error label / invalid jump label.
2017-05-05 14:25:43 +02:00
chriseth
bd6e891704 Fix return value in the fuzzer. 2017-05-03 12:27:01 +02:00
chriseth
00933b99cc Merge pull request #2206 from ethereum/fixoptimizer
Constant optimizer fix
2017-05-03 11:54:11 +02:00
chriseth
f3bb7350f1 Fix tests. 2017-05-03 11:30:40 +02:00
chriseth
230f51efb7 Cleanup, style and additional test. 2017-05-03 11:26:21 +02:00
chriseth
e3ed3623c7 More strict tests. 2017-05-03 11:26:21 +02:00
Rhett Aultman
a6faa5acf3 Treat returns with expressions as return param use
There are many cases of code where the return parameters exist mostly
as a form of documentation.  This change ensures that they do not have
to be used in the function body so long as there is a return supplying
values
2017-05-03 11:26:21 +02:00
Rhett Aultman
a40c8cfb68 Warn on unused local variables
Analyze functions for all local variables, parameters, and named
return variables which are never used in the function, and issue
a warning.
2017-05-03 11:26:21 +02:00
Alex Beregszaszi
c09f071ff6 Merge pull request #2211 from ethereum/jsonio-fixes
Follow the JSON I/O spec closely
2017-05-02 16:47:14 +01:00
Alex Beregszaszi
ed3ab3506a Follow the JSON I/O spec closely 2017-05-02 16:52:38 +02:00
chriseth
96870686a9 Style and stricter tests. 2017-05-02 15:48:58 +02:00
chriseth
e2f00c96d5 Stricter tests for constant optimization. 2017-05-02 12:20:00 +02:00
Rhett Aultman
e544698ad3 Deprecate use of unary '+'
The unary '+' serves no meaningful purpose in Solidity and it makes it
possible to produce typos with dagerous implications (e.g. 'a =+5 '),
so we are deprecating it.  The SyntaxChecker currently issues warnings
on the unary '+' but will still compile it for now.
2017-04-28 17:43:19 -07:00
chriseth
f33614e1f7 Merge pull request #2171 from ethereum/splitParseAndAnalyze
refactoring parse() into two separate functions
2017-04-28 17:19:31 +02:00
djuju
45f8c5aa88 enumchecks not working 2017-04-28 15:24:59 +02:00
chriseth
28f10f4783 Remove error label / invalid jump label. 2017-04-28 13:14:52 +02:00
Alex Beregszaszi
28902f9f42 Add --standard-json option to solfuzzer 2017-04-27 16:47:42 +01:00
chriseth
3a93aec768 Make the fuzzer quiet 2017-04-27 16:47:39 +01:00
chriseth
99dd28d63e Add constant optimizer testing to the fuzz tester. 2017-04-27 16:37:02 +01:00
djuju
99a7aefb75 refactoring parse() into two separate functions 2017-04-27 12:38:24 +02:00
Alex Beregszaszi
35f1cf92db Remove parentheses from around function return parameters 2017-04-27 10:08:02 +01:00
chriseth
2c1fb46bc3 Merge pull request #1711 from ethereum/asmfunctions
Assembly: Analysis stage for functions.
2017-04-26 17:47:48 +02:00
chriseth
ea6d925a5d Option to disable/remove all tests that require IPC. 2017-04-26 12:36:15 +02:00
chriseth
1d712c7d64 Fix storage access tests. 2017-04-25 16:49:04 +02:00
Alex Beregszaszi
fa467c365c Fix test build 2017-04-25 16:49:04 +02:00
chriseth
478f2997ea Storage access from inline assembly. 2017-04-25 16:49:04 +02:00
chriseth
4afd54b235 Convert storge access tests to new explicit slot / offset access. 2017-04-25 16:49:04 +02:00
chriseth
34717838da Review comments. 2017-04-25 16:49:03 +02:00
chriseth
3f1f0316c6 Use raw string for tests. 2017-04-25 16:49:03 +02:00
chriseth
f13c8af3f9 Make tests comply with stack height checks. 2017-04-25 16:49:03 +02:00
chriseth
c6fa78c73e Use actual type checking phase of assembler. 2017-04-25 16:49:03 +02:00
chriseth
5d6747eb32 Refactor assembly analysis into scope filling and checking. 2017-04-25 16:49:03 +02:00
Yoichi Hirai
38211fdc25 Just bigger numbers 2017-04-25 16:47:44 +02:00
chriseth
e1689b6fbc Also increase socket read timeout. 2017-04-25 16:47:44 +02:00
Alex Beregszaszi
ff00a14bec Increase mining timeout to 2 minutes 2017-04-25 16:47:44 +02:00
Yoichi Hirai
3c4c4abc2f Remove a test about SELFDESTRUCT because the test harness obtains refund while the gas meter should not assume the refund. 2017-04-25 16:47:44 +02:00
Yoichi Hirai
cee54deb3b test: fix invalid signatures 2017-04-25 16:47:44 +02:00
chriseth
ed5b63f553 A bit more time for mining. 2017-04-25 16:47:43 +02:00
Yoichi Hirai
f6f271df8a test: change RPC settings to see if they have effects during testing 2017-04-25 16:47:43 +02:00
Yoichi Hirai
7da9ba68e9 test: add a test case about the gas cost of EXTCODESIZE 2017-04-25 16:14:58 +02:00
Yoichi Hirai
259c551c61 test: add a failing test case about the gas cost of SUICIDE opcode 2017-04-25 16:14:58 +02:00
Yoichi Hirai
00b15d53b9 Add a failing test about the gas cost of BALANCE 2017-04-25 16:14:58 +02:00
Yoichi Hirai
8387d0df83 test: add a test about gas costs of EXP 2017-04-25 16:14:58 +02:00
chriseth
9577f87dfc More pure tests. 2017-04-24 18:08:21 +02:00
chriseth
aad64d818a Test for side-effect free condition. 2017-04-21 20:09:37 +02:00
chriseth
937695bfdc Change error message. 2017-04-21 15:04:03 +02:00
chriseth
9bc9fe6af7 Warn about side-effect free statements. 2017-04-21 11:36:38 +02:00
Alex Beregszaszi
74373ecc7a Add test for legacyAST 2017-04-20 19:38:00 +01:00
Alex Beregszaszi
c29da75f96 Add test for bytecode 2017-04-20 19:38:00 +01:00
Alex Beregszaszi
a24ac2f285 Add compilation test and verify output 2017-04-20 19:38:00 +01:00
Alex Beregszaszi
137ef78e9a Trigger cases by the JSON (and not string) interface 2017-04-20 19:38:00 +01:00
Alex Beregszaszi
10ec334f74 Add basic tests for StandardCompiler 2017-04-20 19:38:00 +01:00
chriseth
a7e605a7a1 Create and update bugs by version list. 2017-04-12 15:20:07 +02:00
chriseth
b18aea315d Isolate test cases from all tests and store under hash. 2017-03-23 09:56:17 +01:00
chriseth
766fa2fe85 Check that contract inheriting from base with unimplemented constructor is abstract. 2017-03-21 18:11:43 +01:00
Alex Beregszaszi
2067a00f22 Disallow private or internal functions in interfaces 2017-03-17 17:07:18 +00:00
Alex Beregszaszi
5a71e4f1a7 Add more complex tests for interfaces 2017-03-17 17:06:53 +00:00
Alex Beregszaszi
d5102c1db7 Disallow constructor in interfaces 2017-03-17 17:06:52 +00:00
Alex Beregszaszi
2c4bce2d62 Disallow enums in interfaces 2017-03-17 17:06:52 +00:00
Alex Beregszaszi
16a91ef90a Use declared instead of defined 2017-03-17 17:06:52 +00:00
Alex Beregszaszi
cfab70fd89 Add tests for interfaces 2017-03-17 17:06:49 +00:00
Alex Beregszaszi
6d4628ace4 Add ContractKind to ContractDefinition 2017-03-17 16:27:04 +00:00
Alex Beregszaszi
3ae88377d6 Change references to FunctionType::Location 2017-03-16 12:49:52 +00:00
chriseth
0c8a766146 Merge pull request #1698 from ethereum/exp-notation
Fix scientific notation in number literals
2017-03-15 14:55:45 +01:00
Alex Beregszaszi
b28be08b6d Add tests for negative base 2017-03-15 13:07:28 +00:00
Alex Beregszaszi
b0a23fa77d Add tests for fractional numbers in exponential notation 2017-03-15 13:06:27 +00:00
Alex Beregszaszi
6014c3fe16 Add tests for scientific notation 2017-03-15 13:06:26 +00:00
chriseth
ab178b8bac Mention 'transfer' in warning about unchecked 'send'. 2017-03-15 11:10:24 +01:00
Yoichi Hirai
d134fda0c0 Merge pull request #1729 from ethereum/constantvariables
Only allow pure expressions for constant state variables.
2017-03-15 10:03:35 +01:00
chriseth
9f328ff749 Turn non-constant constants error into warning. 2017-03-14 19:25:16 +01:00
Yoichi Hirai
64e00e5371 Merge pull request #1767 from ethereum/longlibnames
Do not crash on long linker commandline argument.
2017-03-14 18:31:45 +01:00
chriseth
47cd8964b8 Require and Assert. 2017-03-14 14:21:33 +01:00
chriseth
14196f2621 Allow long library names. 2017-03-14 11:58:43 +01:00
Yoichi Hirai
9aab3b8639 Merge pull request #1768 from ethereum/abortiffileexists
Do not overwrite files unless forced.
2017-03-13 16:37:55 +01:00
chriseth
592cec7e90 Disallow constants that are neither value types nor strings. 2017-03-13 13:30:23 +01:00
chriseth
14948e514d Allow enum values for constants. 2017-03-13 13:30:23 +01:00
chriseth
49cfacced2 End to end tests for constants. 2017-03-13 13:30:23 +01:00
chriseth
f39763e91c Type checking for pure expressions. 2017-03-13 13:30:21 +01:00
chriseth
bde913f088 Some new tests for constant variables. 2017-03-13 13:29:51 +01:00
Yoichi Hirai
ef8b56a058 Merge pull request #1751 from ethereum/warnLiteralExpBase
Warn if base of exponentiation operation is a literal.
2017-03-10 19:25:47 +01:00
chriseth
864bfafbcd Test for (not) overwriting files. 2017-03-10 19:22:28 +01:00
Yoichi Hirai
e364909e06 Merge pull request #1747 from ethereum/fixICEInternalConstructor
Move privateness of constructor into AST itself.
2017-03-08 17:49:14 +01:00
chriseth
3f9a775834 Merge pull request #1748 from ethereum/singletonArray
Use mobile type for singleton array.
2017-03-08 16:11:03 +01:00
chriseth
276229cc58 Tests for no compound assignment for tuples. 2017-03-08 12:42:07 +01:00
Yoichi Hirai
78f7dd2344 Merge pull request #1750 from ethereum/asmoctal
Disallow octal numbers in parser.
2017-03-08 12:24:22 +01:00
Yoichi Hirai
85411f4f67 Merge pull request #1736 from ethereum/boundoptimizer
Add upper bound for computing constants.
2017-03-08 12:11:16 +01:00
chriseth
774cdb1135 Tests for warning about literal constant base in exponentition. 2017-03-07 13:43:51 +01:00