Commit Graph

1573 Commits

Author SHA1 Message Date
chriseth
70d70e7816 Implement struct encoder. 2017-09-16 12:31:12 +01:00
chriseth
6385641f6e Fix tests. 2017-09-16 12:31:12 +01:00
chriseth
44825d1c1e Expect test to fail until implemented. 2017-09-16 12:12:44 +01:00
chriseth
7e1b9c1652 Structure type json using "components". 2017-09-16 12:12:44 +01:00
chriseth
36a90289e6 Fix interface type conversion internal to structs. 2017-09-16 12:12:43 +01:00
chriseth
823e67bf40 Tests for external signatures. 2017-09-16 12:12:43 +01:00
chriseth
080be885f8 Function signatures containing structs. 2017-09-16 12:12:43 +01:00
chriseth
22f85d5af3 Update tests and error messages. 2017-09-16 12:12:43 +01:00
chriseth
2e72bd163a Allow structs as part of function interfaces. 2017-09-16 12:12:43 +01:00
chriseth
73771f5bb2 Named assembly labels. 2017-09-15 20:44:49 +01:00
Alex Beregszaszi
7dd372ce5c Merge pull request #2904 from ethereum/viewPure5
Enforce view with error for experimental 0.5.0.
2017-09-14 18:13:56 +01:00
chriseth
24fd67b7db Enforce view with error for experimental 0.5.0. 2017-09-14 17:53:43 +02:00
Alex Beregszaszi
67f96652f5 Update view/pure tests to contain mandatory visibility specifiers 2017-09-14 16:30:00 +01:00
Alex Beregszaszi
df8380193b Update type tests to contain mandatory visibility specifiers 2017-09-14 16:29:39 +01:00
Alex Beregszaszi
71118e99fe Fix view/pure warnings on selector tests 2017-09-13 18:48:21 +01:00
Alex Beregszaszi
5c9dbd5083 Merge pull request #2473 from ethereum/functiontype-sig
Add .selector member on function types
2017-09-13 17:35:48 +01:00
chriseth
3f3bcc4f8a Merge pull request #2848 from ethereum/checkViewPure
Enforce view and pure.
2017-09-13 18:29:13 +02:00
Alex Beregszaszi
8b166c3636 Use hashing function in tests 2017-09-13 11:40:57 +01:00
Alex Beregszaszi
fd1f8ab38b Rename .sig to .selector on function types 2017-09-13 11:40:57 +01:00
Alex Beregszaszi
88946f9f03 Add tests for function type sigs 2017-09-13 11:40:57 +01:00
Paweł Bylica
622a2d8251
Travis CI: Fix Emscripten build 2017-09-12 22:11:21 +02:00
Suman
10d290cb9b Display helpful warning for unused function arguments/return parameters 2017-09-12 15:35:03 +01:00
Alex Beregszaszi
7ed938b95e Change retrieveContract to take name and not index 2017-09-11 15:58:30 +01:00
chriseth
b756274357 Allow constant variables in pure functions. 2017-09-06 13:52:29 +02:00
chriseth
c83768c426 Fix tests 2017-09-06 13:52:29 +02:00
chriseth
1a1db1ec96 Tone down error message. 2017-09-06 13:52:29 +02:00
chriseth
d6861d909c Analyze assembly. 2017-09-06 13:52:29 +02:00
chriseth
41d0ad7a9c New tests for view and pure checker. 2017-09-06 13:50:49 +02:00
Alex Beregszaszi
50047bf82c Change tests to use view or pure as appropriate 2017-09-06 13:50:49 +02:00
chriseth
311be6b659 Fix warning checking in test framework. 2017-09-06 12:19:11 +02:00
Alex Beregszaszi
3326a2282e Change array too large error message as it is valid for non-calldata too 2017-09-05 22:38:45 +01:00
Alex Beregszaszi
b7e8d305b3 Run fuzzer tests without optimizer too 2017-08-31 00:37:32 +01:00
Alex Beregszaszi
23182c7fdf Add --without-optimizer option to fuzzer 2017-08-31 00:37:29 +01:00
Alex Beregszaszi
6245d9aafc Merge pull request #2846 from ethereum/refactorTests
Extract base from NameAndType and use compiler stack.
2017-08-29 14:27:37 +01:00
Alex Beregszaszi
c861817875 Add header for jsonCompiler 2017-08-29 13:43:55 +01:00
chriseth
4136ff9a59 Extract base from NameAndType and use compiler stack. 2017-08-29 14:05:38 +02:00
Alex Beregszaszi
7fb4a64136 Move all file specific globals to anonymous namespace 2017-08-29 11:09:18 +01:00
Alex Beregszaszi
0e11e5af10 Include all overloaded events in ABI 2017-08-28 20:07:43 +01:00
chriseth
122e65f8f4 Crash fix, parseTypeName can return null. 2017-08-28 15:13:02 +02:00
chriseth
372279ceb2 Merge pull request #2819 from ethereum/compilerstack-typecheck
Simplify typechecking loop in compilerstack
2017-08-25 19:38:15 +02:00
Alex Beregszaszi
8bc76ecf58 Update SolidityNameAndTypeResolution to match CompilerStack 2017-08-25 15:49:33 +01:00
Alex Beregszaszi
f6dba97fe1 Warn on using literals in tight packing 2017-08-25 14:16:50 +01:00
chriseth
1437521df0 Merge pull request #2807 from ethereum/removeABIh
Cleanup: Remove ABI.h
2017-08-25 14:53:30 +02:00
chriseth
bfc7d71f51 Cleanup: Remove ABI.h 2017-08-25 11:57:33 +02:00
chriseth
223235c97e Add test for jumpdest removal. 2017-08-25 10:42:36 +01:00
chriseth
d15526f877 Update tests. 2017-08-25 10:42:36 +01:00
Alex Beregszaszi
deeac7e2e0 Rename statemutability to stateMutability in ABI/AST 2017-08-24 15:23:00 +01:00
Alex Beregszaszi
e9a9a07d94 Add ABI test for pure function 2017-08-24 13:46:18 +01:00
Alex Beregszaszi
5668377c72 Introduce pure specifier on functions 2017-08-24 13:46:18 +01:00
chriseth
8af6f193bc Merge pull request #2770 from ethereum/recursionInAsm
Also prevent too much recursion in the assembly parser.
2017-08-24 11:14:01 +02:00
chriseth
e8d1658b58 Add external tests. 2017-08-23 21:11:03 +01:00
Alex Beregszaszi
3b07c4d38e Merge pull request #2757 from ethereum/cmake
Static linking
2017-08-23 12:36:24 +01:00
Alex Beregszaszi
70bb1e7478 Update tests for view 2017-08-22 18:24:22 +01:00
Alex Beregszaszi
efe4d68a7b Introduce view (and keep constant as an alias) 2017-08-22 18:24:22 +01:00
Alex Beregszaszi
97169e58ae Merge pull request #2734 from ethereum/reject-create-interface
Reject the creation of interface with the new statement
2017-08-22 12:11:37 +01:00
chriseth
692e4c57e8 Check recursion depth in assembly parser. 2017-08-22 12:44:22 +02:00
chriseth
97cb571ba4 Tests for recursion in JULIA. 2017-08-22 12:43:44 +02:00
chriseth
7b0046a9aa Check inheritance specifier arguments for interfaces. 2017-08-22 11:39:50 +01:00
Alex Beregszaszi
2a5772cff7 Mark appropriate constructors explicit 2017-08-22 10:51:46 +01:00
Alex Beregszaszi
b25f0c52ac Reject the creation of interface with the new statement 2017-08-21 23:02:18 +01:00
Alex Beregszaszi
2c2ae74217 Merge pull request #2773 from ethereum/usingForWithoutLibrary
Fix crash related to ``using for`` without a library.
2017-08-21 19:47:57 +01:00
Alex Beregszaszi
4219acaba9 Merge pull request #2771 from ethereum/unused-includes
Remove some unused includes
2017-08-21 16:26:44 +01:00
chriseth
ec82706396 Fix crash related to `using for` without a library. 2017-08-21 16:57:37 +02:00
chriseth
d270879c8f Merge pull request #2748 from ethereum/natspec
Remove DocumentationType from natspec
2017-08-21 16:46:00 +02:00
chriseth
01b4bba0ed Merge branch 'develop' into library-constructor 2017-08-21 16:34:59 +02:00
Alex Beregszaszi
b3986f1d07 Remove some unused includes 2017-08-21 14:08:58 +01:00
chriseth
2c5985de06 Be more strict about number literals in assembly. 2017-08-21 13:31:28 +02:00
Paweł Bylica
99d198ffb0
CMake: Make libs dependencies explicit 2017-08-21 12:27:06 +02:00
Alex Beregszaszi
fe25bcf350 Library cannot have constructors 2017-08-21 11:03:55 +01:00
Paweł Bylica
397a72107a
CMake: Simplify test tools config 2017-08-18 13:32:36 +02:00
Paweł Bylica
63372e4a85
CMake: Simplify libevmasm config 2017-08-18 13:32:35 +02:00
Paweł Bylica
d1f4d110fb
CMake: Build static libs by default 2017-08-18 13:32:35 +02:00
Alex Beregszaszi
a61c88e9fe Use state mutability in override error messages 2017-08-16 17:23:09 +01:00
Alex Beregszaszi
a2aaa47ee2 Use state mutability in fallback/constructor check 2017-08-16 17:23:09 +01:00
Alex Beregszaszi
93be0dd923 FunctionType comparison/identifer to support all statemutability levels 2017-08-16 17:23:08 +01:00
chriseth
3d595d4b14 Warn about shift of literals. 2017-08-16 13:54:28 +02:00
Alex Beregszaszi
7222fac456 Remove DocumentationType from natspec 2017-08-15 19:56:38 +01:00
Alex Beregszaszi
1f5ab603a7 Add test for payable constructor in ABI 2017-08-15 11:35:50 +01:00
Alex Beregszaszi
12f3257e7d Add statemutability field to the ABI 2017-08-15 11:35:50 +01:00
chriseth
32e43477c3 Prevent too deep recursion in parser. 2017-08-14 22:19:15 +02:00
chriseth
bcce31b548 Tests for recursion exploit in parser. 2017-08-14 18:58:56 +02:00
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
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
chriseth
bb06569dc6 Disallow octal literals. 2017-03-07 12:34:32 +01:00
chriseth
a2ac05e1a2 Merge pull request #1733 from ethereum/selfReferentialConstant
Detect cyclic dependencies between constants.
2017-03-06 17:18:39 +01:00
chriseth
5c5d83fd70 Check for circular references in constant variables. 2017-03-06 15:05:09 +01:00
chriseth
d089a1ef2b Tests for cyclic dependencies between constants. 2017-03-06 15:05:09 +01:00
chriseth
fe5f85ef34 Test for array singletons. 2017-03-06 14:42:28 +01:00
chriseth
c89a579809 Test for uninitialized mapping. 2017-03-06 14:27:18 +01:00
chriseth
0479f7f16c Test for trying to construct an inconstructible contract before its definition. 2017-03-06 14:12:42 +01:00
chriseth
5069c58a4b Merge pull request #1735 from federicobond/fix-compilation
Fix compilation in OS X
2017-03-06 12:24:55 +01:00
chriseth
eb363166ae Fix header. 2017-03-03 18:30:36 +01:00
Yoichi Hirai
cfbbd89daf Merge pull request #1702 from ethereum/assertError
Change effect of assert to invalid opcode.
2017-03-03 18:25:50 +01:00
chriseth
05dac99922 Tests for optimizing constants. 2017-03-03 16:51:29 +01:00
Federico Bond
9409edb409 Add missing header for boost::noncopyable 2017-03-03 11:47:22 -03:00
Federico Bond
818083e705 Replace deprecated BOOST_MESSAGE with BOOST_TEST_MESSAGE 2017-03-03 11:47:05 -03:00
chriseth
6bfd894f46 Merge pull request #1725 from ethereum/ipcreadloop
Try reading multiple times from IPC.
2017-03-03 10:44:48 +01:00
chriseth
2600fa0413 Test for declaring variable with empty tuple type. 2017-03-02 14:33:58 +01:00
chriseth
5c411b472b Merge pull request #1728 from ethereum/externalfunctiontypes
Convert reference types to pointers in member function conversion.
2017-03-02 12:08:17 +01:00
chriseth
ea7f5f9640 Style. 2017-03-02 12:07:50 +01:00
chriseth
f35b70f3a3 Test case for external function type with calldata argument. 2017-03-01 15:53:24 +01:00
chriseth
9f1a67caa5 Some logging around account creation. 2017-03-01 11:32:29 +01:00
chriseth
4305ecb0e7 Try reading multiple times from IPC. 2017-02-25 00:11:26 +01:00
chriseth
9acfdb8044 Print full error on failure. 2017-02-24 19:32:44 +01:00
chriseth
8877d4a781 Compiler error is not a failure. 2017-02-24 19:32:44 +01:00
chriseth
673268a6f8 Merge pull request #1651 from ethereum/transfer-method
Add address.transfer(value)
2017-02-24 15:42:52 +01:00
chriseth
6bbba106a7 Merge pull request #1710 from ethereum/strictasmtests
Check error messages for assembly tests.
2017-02-24 08:26:16 +01:00
Alex Beregszaszi
4d290e551c Disallow setting .gas() on .transfer() 2017-02-24 00:27:36 +00:00
Alex Beregszaszi
cde027d144 Fix test for gas overloading in .transfer() 2017-02-24 00:18:18 +00:00
Alex Beregszaszi
81006dae98 Support gas modifier on addr.transfer() 2017-02-24 00:18:18 +00:00
Alex Beregszaszi
ba437ef31a Add type checking test for address methods 2017-02-24 00:18:18 +00:00
Alex Beregszaszi
16e48219d3 Add test for address.transfer() 2017-02-24 00:17:45 +00:00
chriseth
4b1e8111cc Remove assert for now. 2017-02-23 19:43:40 +01:00
chriseth
5cd01ab7d1 Test for unbalanced stack due to loading two values from outside. 2017-02-20 12:33:22 +01:00
chriseth
50894c6af8 Fix compiler warning. 2017-02-20 11:57:50 +01:00
chriseth
d794d35e50 Also check imbalanced stack. 2017-02-20 11:42:23 +01:00
Alex Beregszaszi
419ab9260e Merge pull request #1703 from ethereum/fuzzer
Executable for use with AFL
2017-02-17 22:57:47 +00:00
chriseth
354f92f813 Check error messages for assembly tests. 2017-02-17 16:39:51 +01:00
chriseth
7bdc4ddab2 Merge pull request #1627 from ethereum/asmfunctions
Parsing assembly function definitions and calls.
2017-02-16 20:12:31 +01:00
chriseth
f66ebbc8e2 Report failures correctly to AFL. 2017-02-16 18:05:11 +01:00
chriseth
8be318e75b Include non-fuzzing fuzzer tests in commandline run. 2017-02-16 17:13:55 +01:00
chriseth
f93f9fa3a0 Add executable for use with AFL. 2017-02-16 16:59:19 +01:00
chriseth
e629cf5bc3 Test case. 2017-02-16 14:57:00 +01:00
chriseth
01fcd989b5 More tests. 2017-02-16 10:18:16 +01:00
chriseth
49a919b3e0 Parsing function calls. 2017-02-16 10:15:22 +01:00
chriseth
5d584aded8 Parsing function definitions. 2017-02-16 10:15:22 +01:00
chriseth
5e8a1e0ae6 Test for unicode string literals. 2017-02-15 15:21:11 +01:00
chriseth
58849cb1d5 Tests for printing assembly. 2017-02-14 15:41:25 +01:00
Yoichi Hirai
4189ff5b68 Merge pull request #1620 from ethereum/refactorEntry
Refactor NameAndTypeResolver and SyntaxChecker to allow other entry points.
2017-02-14 15:35:22 +01:00
chriseth
e67faa9839 Extract scopes into compiler stack. 2017-02-14 13:23:44 +01:00
chriseth
fc8e50f688 Refactor NameAndTypeResolver and SyntaxChecker to allow other entry points. 2017-02-14 13:23:44 +01:00
Alex Beregszaszi
0fe788aad6 Use std::chrono and not boost::posix_Time 2017-02-13 15:01:15 +00:00
Alex Beregszaszi
e9dd9d2c72 Simplify mining loop 2017-02-13 14:11:03 +00:00
Alex Beregszaszi
1d4ef87bb1 Use maxMiningTime in mining as opposed to poll counter 2017-02-13 14:11:03 +00:00
chriseth
0d8a9c3289 Merge pull request #1661 from ethereum/asm-revert
Implement REVERT (EIP140)
2017-02-13 14:56:22 +01:00
chriseth
e2349f9d5d Merge pull request #1676 from ethereum/test-modifytimestamp
Add blockTimestamp and do not rely on mining time (soltest)
2017-02-13 14:54:06 +01:00
Alex Beregszaszi
30cfad3548 Check for state changes in revert() tests 2017-02-10 22:44:29 +00:00
Alex Beregszaszi
f26fe5bc1c Add tests for revert() 2017-02-10 22:44:29 +00:00
Alex Beregszaszi
8429c03f2a Add tests for assert() 2017-02-10 13:29:17 +00:00
Alex Beregszaszi
a82acba49a Compare start/end timestamp 2017-02-10 13:26:11 +00:00
Alex Beregszaszi
702ee20a01 Create getBlockByNumber RPC method 2017-02-10 13:24:56 +00:00
Alex Beregszaszi
4cf44f1b41 Do not use modifyTimestamp where not needed 2017-02-10 13:24:56 +00:00
Alex Beregszaszi
3128ec2ca5 Add blockNumber and blockTimestamp to ExecutionFramework 2017-02-10 13:24:56 +00:00
Alex Beregszaszi
95f8c5bcdb Ensure that the whole message was written on Windows IPC 2017-02-09 15:40:56 +00:00
Alex Beregszaszi
f2cafd4974 Simplify the Windows IPC code 2017-02-09 15:40:56 +00:00
Alex Beregszaszi
f9a818eaf8 Detect closed sockets in IPC 2017-02-09 15:40:56 +00:00
Alex Beregszaszi
5396c7692b Do not expect a new line, rather buffer up the response in IPC 2017-02-09 15:40:56 +00:00
Alex Beregszaszi
b508aac64a Use only send/recv in IPC 2017-02-09 12:23:34 +00:00
Alex Beregszaszi
92fb07c783 Do not log dots in soltest on windows 2017-02-08 21:51:10 +00:00
Alex Beregszaszi
af6ab7fa91 Use BOOST_REQUIRE() and stop at the first failure 2017-02-08 21:24:29 +00:00
Alex Beregszaszi
f9357dbb22 Check the return value of RPC calls 2017-02-08 21:24:29 +00:00
Alex Beregszaszi
3be6d10525 Avoid crash if fdopen failed in IPC 2017-02-08 21:24:29 +00:00
Alex Beregszaszi
43bae9dd0b Ensure that a valid RPC response is received through IPC 2017-02-08 21:24:29 +00:00
chriseth
18a5c5ae1e Merge branch 'develop' into negative-length-arrays 2017-02-02 11:57:34 +01:00
Alex Beregszaszi
902f69640b Replace cpp-ethereum with solidity in the license headers 2017-02-02 10:06:28 +00:00
Alex Beregszaszi
697db80b48 Disallow arrays with negative length 2017-02-02 00:24:45 +00:00
Alex Beregszaszi
ee147e14d3 Cover both failure cases 2017-02-01 21:35:32 +00:00
Alex Beregszaszi
0b61f13c7f Add more tests for function type conversion 2017-02-01 12:23:47 +00:00
Alex Beregszaszi
ef7add8c2b Add tests for explicity fuction type to address casting 2017-02-01 12:23:47 +00:00
Alex Beregszaszi
eb530aa217 Add tests for invalid instruction 2017-01-27 21:24:58 +00:00
chriseth
b2c35fb41a Merge pull request #1598 from wuestholz/develop
Change translation of implicit throws
2017-01-27 14:10:22 +01:00
chriseth
636e480156 Merge pull request #1451 from LefterisJP/fix_build
Accept any kind of whitespace after natspec tags
2017-01-27 14:09:39 +01:00
Lefteris Karapetsas
f01c8c07e5
Tests for natspect parsing failure cases 2017-01-27 12:13:14 +01:00
Lefteris Karapetsas
cc7834f2a9
Doc tags followed by newline are now parsed properly 2017-01-27 00:00:05 +01:00
chriseth
a9c6ff4ac8 Refactor json return type generation. 2017-01-26 18:21:19 +01:00
Valentin Wüstholz
5b7cc018f0 Address feedback from code review. 2017-01-26 16:39:07 +01:00
Valentin Wüstholz
9bcbd93ac5 Change translation of implicit throws (issue #1589).
This adds a new invalid instruction that is used for encoding
implicit throws that are emitted by the compiler. This makes it
possible to distinguish such runtime errors from user-provided,
explicit throws.
2017-01-26 16:39:07 +01:00
Alex Beregszaszi
102fd7ee5d Merge pull request #1604 from ethereum/checksums
Warn about invalid checksums of addresses.
2017-01-26 14:42:34 +00:00
chriseth
873f2dddd6 Update error message. 2017-01-26 13:52:02 +01:00
chriseth
525758a130 Disallow assignment to non-identifiers. 2017-01-26 13:40:40 +01:00
chriseth
946a63c26f Add test for assignment. 2017-01-25 17:27:01 +01:00
chriseth
27ba665694 Moved test. 2017-01-25 17:24:43 +01:00
Alex Beregszaszi
7ff44bec94 Add test for shadowing inline assembly instruction 2017-01-25 11:28:09 +00:00
Lefteris Karapetsas
9ca0fde853 Fix and better output for tests 2017-01-25 11:01:52 +01:00
Lefteris Karapetsas
5738e865d5 Accept any kind of whitespace after natspec tags 2017-01-25 11:01:52 +01:00
chriseth
87f744ae5e Add some more tests for the checksum routine. 2017-01-25 10:45:21 +01:00
chriseth
605455f96b Tests for library checksums. 2017-01-24 23:37:48 +01:00
chriseth
1316bb7565 Warn about invalid checksums of addresses. 2017-01-24 23:37:48 +01:00
chriseth
8e5f1c0d50 Test double inclusion of bytecode. 2017-01-24 17:41:31 +01:00
chriseth
dea59bfbdc Test for initializing recursive structs. 2017-01-24 12:06:40 +01:00
chriseth
b52a60402d Merge pull request #1245 from ethereum/1215
Allow multiple events of the same name
2017-01-24 11:52:21 +01:00
Yoichi Hirai
3d8b56c2a4
test: add tests about functions and events of the same name 2017-01-23 15:25:13 +01:00
Yoichi Hirai
8dc306d62b
test: add a test case about inheriting multiple events of the same name 2017-01-23 15:25:13 +01:00
Yoichi Hirai
567139486f
test: somehow log counting system has changed 2017-01-23 15:25:13 +01:00
Yoichi Hirai
4c09e81c3e
test: check the results of function calls in the test for multiple events of the same name 2017-01-23 15:25:13 +01:00
Yoichi Hirai
133d1c05e1
test: fixing inconsistent usage of end-to-end test framework 2017-01-23 15:25:13 +01:00
Yoichi Hirai
0e85e35a7f
test: Add an end-to-end test about multiple events of the same name
See #1215
2017-01-23 15:25:13 +01:00
Yoichi Hirai
5a56496db9
test: Add a test for #1215
using the original example from @pipermerriam
2017-01-23 15:25:13 +01:00
chriseth
7159944f0f Reset AST node IDs between compilation runs. 2017-01-20 12:00:16 +01:00
chriseth
da178d967f Properly escape user strings and lists. 2017-01-19 13:23:58 +01:00
chriseth
3fed790a56 Type identifiers. 2017-01-19 13:23:57 +01:00
chriseth
d3a391c136 Provide fallback for linking. 2017-01-18 17:41:36 +01:00
Rhett Aultman
88a2ac25e5 Revert "Fix contract lookup in tests"
This reverts commit f8914c6b28.
2017-01-16 18:07:48 -05:00
Rhett Aultman
fda39afdba Modify library collision test
Since libaraies no longer collide on name but on fully-qualified name,
you can only induce collision by colliding them as idenfitiers.
2017-01-16 12:32:58 -05:00
Rhett Aultman
a7f8a1986a Revert "Move clashing libraries to common source in test"
This reverts commit c4a9ca5cfe7a8b4ba9d2d84392c57d5eefacd1f7.
2017-01-16 12:32:58 -05:00
Rhett Aultman
1f30982ab5 Use fully-qualified names for linking, too
Using libraries leaves behind a library link reference in the binary
which the linker must later resolve.  These link references were still
being generated by name and not by fully-qualified name.  This would
lead to a link-time collision between two libraries having the same
name but in different source units.

This change changes linker symbols over to fully-qualified names,
which resolves that issue.  This does potentially introduce a new
problem, which is that linker symbols appear to be limited to 36
characters and are truncated.  Storing paths extends the average
symbol size, and it would be great if truncation was from the tail
rather than the head.
2017-01-16 12:32:57 -05:00
Rhett Aultman
f8914c6b28 Fix contract lookup in tests
The fully-qualified name of a contract with no source unit is :<Name>
instead of just <Name>, so the test system needed to be adjusted
accordingly.
2017-01-16 12:32:57 -05:00
Rhett Aultman
220ccfb492 Move clashing libraries to common source in test
Since contracts and libraries only collide if they share a common
source file now, this test only works if both libraries are in the
same source.
2017-01-16 12:32:57 -05:00
chriseth
bde0b40634 Merge pull request #1479 from ethereum/function_variable_mixin
Disallow mixin of functions and attributes under the same name
2017-01-13 09:36:00 +01:00
Alex Beregszaszi
0cb95ac35e LLL: add test for (panic) in a sequence 2017-01-12 14:52:01 +00:00
chriseth
df4ef74199 Add tests for internal constructor. 2017-01-20 19:22:39 +01:00
VoR0220
b6508ca992
fixed
Signed-off-by: VoR0220 <rj@erisindustries.com>
2017-01-11 12:03:54 -06:00
VoR0220
4542f459f1
added fix and a test for order independence of nested prefixing
Signed-off-by: VoR0220 <rj@erisindustries.com>
2017-01-11 11:45:14 -06:00
Yoichi Hirai
9602318eab
test: allow multiple errors in modifier-function overriding 2017-01-11 18:28:11 +01:00
Yoichi Hirai
42b6726173
analysis: allow some shadowings explicitly 2017-01-11 18:28:11 +01:00
VoR0220
6d9020b3b8
fixed test and added solution
Signed-off-by: VoR0220 <rj@erisindustries.com>
2017-01-08 22:53:54 -06:00
VoR0220
4f62980d52
added test
Signed-off-by: VoR0220 <rj@erisindustries.com>
2017-01-08 22:53:51 -06:00
Yoichi Hirai
07f34e0023
test: add a test importing a file name starting with a period 2017-01-03 18:18:27 +01:00
Yoichi Hirai
96ca706353
test: add a test case for #1286 2017-01-02 17:58:33 +01:00
Yoichi Hirai
18f8f29c0a Merge pull request #1487 from ethereum/shift-ops
Shift operators
2016-12-14 16:31:27 +01:00
chriseth
08a11e309f Fix tests. 2016-12-13 17:02:28 +01:00
Yoichi Hirai
932e7887bd
test: add tests that tries different types on <<= 2016-12-13 16:35:42 +01:00
Federico Bond
de720e643d Improve error message when trying to modify constant variables 2016-12-13 00:32:37 -03:00
Yoichi Hirai
e62b98646f Merge pull request #1494 from ethereum/showtxhash
Display tx hash for debugging.
2016-12-12 19:51:49 +01:00
chriseth
2fac1d23a7 Tests for bytes. 2016-12-12 11:12:12 +01:00