chriseth
5a3dbb0269
Cleanup and overflow checks for data pointers.
2017-11-29 17:08:44 +01:00
chriseth
98c38108e8
Decoder tests.
2017-11-29 17:08:44 +01:00
chriseth
f77480cd88
Patch truffle to ignore pre-release compiler warning.
2017-11-27 17:13:25 +01:00
chriseth
a1f59cbb17
Merge pull request #3220 from ethereum/IuliaIf
...
If statement for Iulia / Inline Assembly
2017-11-27 09:02:46 -05:00
chriseth
1d91b65b72
Force condition to be bool in iulia mode.
2017-11-23 18:52:04 +01:00
Federico Bond
14fd647b85
Fix event parsing. Refs #3175
2017-11-22 23:08:12 -03:00
Alex Beregszaszi
ea18bed319
Merge pull request #3235 from ethereum/explicit-tests
...
Improve expected test errors for some old cases
2017-11-22 17:05:01 +00:00
Alex Beregszaszi
4c50d3f8e1
Improve expected test errors for some old cases
2017-11-22 15:41:07 +00:00
chriseth
9232cd2621
Tests.
2017-11-22 16:27:32 +01:00
chriseth
6dbc34e16e
If statement for Iulia / inline assembly.
2017-11-22 16:25:24 +01:00
Kwang Yul Seo
4876c58f91
success(text) -> CHECK_SUCCESS(text)
...
success(text) does not assert the result. Use CHECK_SUCCESS macro.
2017-11-22 23:07:42 +09:00
chriseth
19d5c42429
For loop.
2017-11-22 02:35:34 +00:00
chriseth
5e2c066778
Test for multi-branches.
2017-11-22 02:35:34 +00:00
chriseth
95a65dc04c
Fix boolean constants.
2017-11-22 02:35:34 +00:00
chriseth
90fb14f525
Tests.
2017-11-22 02:35:34 +00:00
chriseth
e5de4a66ed
Tests.
2017-11-22 02:35:34 +00:00
Alex Beregszaszi
455e51a608
Improve cyclic constant error message
2017-11-22 02:11:22 +00:00
Balajiganapathi S
d102deaec9
Detect cyclic constant definitions
2017-11-22 02:07:56 +00:00
Balajiganapathi S
c0b4969451
Add more tests for constant var as array lengths
2017-11-22 01:41:50 +00:00
Balajiganapathi S
165857b1d4
Allow constant integer variables as array lengths.
2017-11-22 01:41:46 +00:00
Alex Beregszaszi
53796c0fe8
Add tests for getChecksummedAddress
2017-11-17 00:46:45 +00:00
Alex Beregszaszi
f7249abe28
Extend address checksum tests
2017-11-17 00:46:45 +00:00
Federico Bond
3cd6ac418a
Add missing name resolver tests
2017-10-26 14:13:33 -03:00
Alex Beregszaszi
cacc0e4b46
Merge pull request #2607 from federicobond/better-error-output
...
cmdlineTests: print solc output instead of contract code on error
2017-10-24 12:16:55 +01:00
Boris Kostenko
3c91564dd9
Include modexp precompile in genesis for testing ( #3114 )
2017-10-24 10:42:48 +01:00
Alex Beregszaszi
dcbcd36be7
Do not use the precompile address 0x05 in the wallet tests (but a randomized address)
2017-10-23 20:20:32 +01:00
Alex Beregszaszi
faa0a662c7
Always create the correct account even if gaps are needed
2017-10-20 14:23:37 +01:00
Alex Beregszaszi
81e9c679c4
Add helper RPCSession::createAccount
2017-10-20 14:23:37 +01:00
Alex Beregszaszi
3a8324266f
More detailed errors for invalid array lengths (such as division by zero).
2017-10-20 11:59:18 +01:00
chriseth
4e7d1440ab
Merge pull request #3101 from ethereum/compilerstack-header
...
Remove the reliance on empty contract name equals "last contract" in CompilerStack
2017-10-19 13:43:17 +02:00
chriseth
892c3ef8ef
Merge pull request #3111 from ethereum/test-close-failure
...
Close IPC socket on connect failure
2017-10-19 13:33:40 +02:00
Alex Beregszaszi
362615c9c4
Close IPC socket on connect failure
2017-10-19 11:12:46 +01:00
chriseth
c58d9d2c42
Merge pull request #3106 from ethereum/test-cleanup
...
Move contract related code to test/contracts
2017-10-19 11:15:49 +02:00
Alex Beregszaszi
10677125ae
Turn usage of callcode into an error as experimental 0.5.0 feature
2017-10-19 02:20:30 +01:00
Alex Beregszaszi
4ca160d9fb
Move contract related code to test/contracts
2017-10-19 00:12:50 +01:00
Alex Beregszaszi
2ce35b77be
Implement CompilerStack.lastContractName()
2017-10-18 23:54:32 +01:00
Alex Beregszaszi
039cc25b1f
Always require a contract/sourceName in CompilerStack
2017-10-18 23:32:33 +01:00
Jared Wasinger
9acc2ea711
Add test for each assembly opcode/instruction in LLL
2017-10-18 11:56:52 +01:00
Yoichi Hirai
fda8499c15
Merge pull request #3070 from ethereum/lll-assembly
...
lll: disallow useless PUSHn in assembly
2017-10-18 12:02:14 +02:00
chriseth
e854da1a8c
Merge pull request #2925 from ethereum/tuple-value-check
...
Validate each tuple literal
2017-10-18 11:59:40 +02:00
chriseth
58139e8613
Adjust tests.
2017-10-18 00:19:36 +02:00
chriseth
a3db1fc197
Do not accept truncated function selectors.
2017-10-17 23:17:36 +02:00
chriseth
8a8a71de84
Only check tuples for valid rational numbers if they have more than one element.
2017-10-17 19:14:49 +02:00
Alex Beregszaszi
c99d2aae04
Validate each tuple literal
2017-10-17 18:59:01 +02:00
chriseth
6001bd1406
Allocate one byte per memory byte array element instead of 32.
2017-10-16 22:29:31 +02:00
chriseth
7989fc4c35
Merge pull request #3077 from ethereum/optimze_pops
...
Assume peephole optimizer was successful if number of pops increased.
2017-10-16 22:11:45 +02:00
chriseth
082e7b6a9e
Allow `gas
` in view functions.
2017-10-16 13:28:44 +02:00
chriseth
7c94e5462a
Assume peephole optimizer was successful if number of pops increased.
2017-10-13 19:00:56 +02:00
Alex Beregszaszi
15517b571d
lll: disallow useless PUSHn in assembly
2017-10-13 02:04:36 +01:00
Yoichi Hirai
c35496bf4a
Merge pull request #3038 from ethereum/interface-external
...
Force interface functions as external (0.5.0)
2017-10-10 12:21:08 +02:00
Alex Beregszaszi
9ee619c9bb
Snarks test using Byzantium precompiles
...
* Snark tests.
* Verifying routine.
* Example proof.
* Update precompiled positions to Byzantium ruleset.
2017-10-09 11:09:20 +02:00
Alex Beregszaszi
c45e55675c
Force interface functions as external (0.5.0)
2017-10-06 13:48:38 +01:00
chriseth
094012dbb0
Merge pull request #3036 from ethereum/constant-eval-refactor
...
Refactor error reporting in ConstantEvaluator
2017-10-06 13:50:15 +02:00
Alex Beregszaszi
c28ed2a619
Add tests for ConstantEvaluator
2017-10-05 20:08:12 +01:00
Federico Bond
ae91510765
Improve cmdline error output
2017-10-05 15:48:14 -03:00
Alex Beregszaszi
b8be060b30
Ensure unused variables are not warned for in interfaces/abstract contracts
2017-10-05 19:31:53 +01:00
Federico Bond
eea88f33aa
Use local variables inside bash functions
2017-10-05 15:21:16 -03:00
Federico Bond
cd420dc0bc
cmdlineTests: print solc output instead of contract code on error
2017-10-05 15:21:16 -03:00
Alex Beregszaszi
81519845bc
Require location keyword for local variables (0.5.0)
2017-10-05 19:02:30 +01:00
chriseth
d0fa56a217
Merge pull request #2981 from ethereum/no-address-overload
...
Do not add members of address to contracts in experimental 0.5.0
2017-10-05 16:12:21 +02:00
Alex Beregszaszi
8b26d65b62
Merge pull request #3020 from ethereum/smt-functioncall
...
SMT should not crash on special function calls (typecast)
2017-10-05 14:04:16 +01:00
Alex Beregszaszi
6ba0c2bba8
Merge pull request #2982 from ethereum/encoderFixes
...
ABI encoder fixes and test.
2017-10-05 11:59:42 +01:00
Alex Beregszaszi
09276cb9d3
Do not add members of address to contracts in experimental 0.5.0
2017-10-05 11:42:34 +01:00
Alex Beregszaszi
10529e994f
SMT should not crash on typecast/structs
2017-10-05 11:41:11 +01:00
chriseth
54cf15ac4f
Merge pull request #2901 from ethereum/compiler-names
...
Provide optional list of contract names to CompilerStack.compile
2017-10-05 11:23:46 +02:00
Alex Beregszaszi
f86cd06b97
Add contract depedendency tests to standardcompiler
2017-10-05 09:53:43 +01:00
Alex Beregszaszi
a0394a1bfa
Restrict contracts compiled via outputSelection (but not the individual output details)
2017-10-04 20:30:14 +01:00
Federico Bond
76d3d24842
Do not consider shadowing in variable names inside event declarations
2017-10-04 13:30:26 -03:00
chriseth
f6fb7d96d3
Merge pull request #2990 from ethereum/someMoreSMTStuff
...
Basic SMT tests.
2017-10-04 14:56:24 +02:00
chriseth
30908415bf
Merge pull request #3013 from ethereum/evmasm-cleanup
...
Cleanup instruction / gasmeter
2017-10-04 11:33:16 +02:00
wadeAlexC
73f17876e9
Better error message when using fractional number as array size expressions
2017-10-03 22:01:58 +01:00
Federico Bond
2b82352692
Disallow non-pure constant state variables in 0.5.0
2017-10-03 15:30:16 +01:00
Alex Beregszaszi
4d1c48eeee
Remove duplicate EVMSchedule
2017-10-03 11:59:53 +01:00
Alex Beregszaszi
fe947006ff
Format chainparams fields properly in tests
2017-10-03 10:45:00 +01:00
Alex Beregszaszi
e7a1e1abe7
Merge pull request #2997 from federicobond/duplicate-events
...
Emit error when declaring event with same name and arguments twice
2017-10-02 20:21:16 +01:00
Alex Beregszaszi
d010d6300c
LLL: Add compiler tests
2017-10-02 12:44:34 +01:00
benjaminion
cafc0885c4
LLL: Tests for the proposed switch expression.
2017-10-02 12:01:15 +01:00
Federico Bond
6d95447955
Emit error when declaring event with same name and arguments twice
2017-09-29 19:17:31 -03:00
Rhett Aultman
e434437eb7
Unary + now a synax error (experimental 0.5.0)
...
The unary + was deprecated with a warning, but will be elevated to an
error in 0.5.0. This adds the syntax error for the 0.5.0 pragma, and
for a true 0.5.0 release we should consider removing the operator from
the parser.
2017-09-29 17:50:25 +01:00
Alex Beregszaszi
b1741b7735
Validate array length in type checker
2017-09-29 16:44:00 +01:00
chriseth
5028ccbe84
Tests for SMT checker.
2017-09-29 15:31:00 +02:00
chriseth
a1f3046647
Add SMT tests.
2017-09-29 12:44:39 +02:00
chriseth
08effa0af5
More verbose error messages.
2017-09-29 12:05:45 +02:00
chriseth
9d8edb46f2
Allow test frameworks to filter out some warnings.
2017-09-29 12:05:45 +02:00
Alex Beregszaszi
7cb4d714c7
Fix overload resolution when conflict is with members of address (balance, transfer, etc)
2017-09-28 13:57:19 +01:00
chriseth
acd70557cc
Test encoder for empty structs.
2017-09-27 17:55:04 +02:00
chriseth
2940964044
ABI encoder fixes and test.
2017-09-27 15:57:39 +02:00
Alex Beregszaszi
9ea812598d
Fix other test to use ABI_CHECK
2017-09-27 00:50:35 +01:00
chriseth
95ec2fd0b6
Fix encoded EndToEnd inputs.
2017-09-25 19:33:38 +02:00
Alex Beregszaszi
a72237f275
Merge pull request #2954 from wadeAlexC/develop
...
Better message for unexpected trailing commas in parameter lists
2017-09-25 15:36:34 +01:00
chriseth
8e4f242274
Improved error messages for EndToEnd tests.
2017-09-25 10:49:25 +01:00
wadeAlexC
0099911ace
Better error message for unexpected trailing comma in parameter lists
2017-09-25 10:42:01 +01:00
chriseth
a844bbda48
Cleanup test helper macros.
2017-09-22 16:17:28 +02:00
chriseth
8af298ade3
Merge pull request #2902 from ethereum/warn-obsolete
...
Warn about obsolete sha3/suicide calls
2017-09-20 18:00:40 +02:00
Alex Beregszaszi
3b813ed295
Support multiple assignment in inline assembly
2017-09-20 11:16:23 +02:00
Alex Beregszaszi
f958463416
Rename MiniMoustache to Whiskers in tests
2017-09-20 01:23:21 +01:00
Alex Beregszaszi
efa4598c23
Mark functions static
2017-09-20 01:23:21 +01:00
Alex Beregszaszi
1c0c5d923a
Mark constructors explicit
2017-09-20 01:23:21 +01:00
Alex Beregszaszi
aad829948a
Ensure parameter names match between headers and implementation
2017-09-20 01:23:21 +01:00
Alex Beregszaszi
ed1fd49ab0
Warn about obsolete sha3/suicide calls
2017-09-19 11:11:19 +01:00
Alex Beregszaszi
ada68bcee6
Add tests for constant bytes/strings
2017-09-18 22:25:50 +01:00
chriseth
3a9a9db6d6
Merge pull request #2910 from ethereum/fallback-restrict-external
...
Force fallback to be external (experimental 0.5.0 change)
2017-09-18 16:38:55 +02:00
Alex Beregszaszi
a3380ea8d0
Force fallback to be external (experimental 0.5.0 change)
2017-09-18 11:58:37 +01:00
chriseth
c001903cdc
Fixed tests with mappings in structs and added some more.
2017-09-16 12:31:13 +01:00
chriseth
c5063d3155
Use "tuple" for struct types in ABI JSON.
...
Only use tuple as a type in the ABI (and remove all "anonymous struct" references too)
2017-09-16 12:31:12 +01:00
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