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
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
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
efa4598c23
Mark functions static
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
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
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
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
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
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
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
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
Alex Beregszaszi
fe25bcf350
Library cannot have constructors
2017-08-21 11:03:55 +01: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
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
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
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
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
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
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
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
b7a59652f1
Merge pull request #2501 from ethereum/undef-macros
...
Move UndefMacros from libdevcore to libsolidity/parsing
2017-07-12 15:07:20 +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
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
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
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
46caff4597
Test for negative stack height.
2017-06-28 16:55:49 +01: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
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
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
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
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
chriseth
b86a4cad57
Check for constness of address constant.
2017-06-23 11:19:57 +02:00
Alex Beregszaszi
79ed529b3f
Merge pull request #2452 from ethereum/fixPassingEmptyString
...
Fix passing empty string
2017-06-22 22:33:06 +01:00
chriseth
f36e021ffc
Test for passing empty string literal as function argument.
2017-06-22 17:39:29 +02:00
chriseth
9eaf26a359
Check for address-like strings being treated as addresses.
2017-06-22 16:48:44 +02:00
Federico Bond
0f8ad1d68f
Fix segmentation fault with constant function parameters
2017-06-21 22:46:27 -03: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
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
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
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
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
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
98c9051174
Fix expected message in test case
2017-05-26 11:16:12 +01: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
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
56424bb202
Merge pull request #2262 from ethereum/interface-cleanup
...
Cleanup the external interfaces (ABI and Natspec)
2017-05-19 17:55:33 +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
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
chriseth
dea7b864e6
Compact format for AST-Json with backwards compatibility
2017-05-17 11:14:33 +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
chriseth
0582fcb93b
Merge pull request #2194 from ethereum/removeerrorlabel
...
Remove error label / invalid jump label.
2017-05-05 14:25:43 +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
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
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
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
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
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
chriseth
47cd8964b8
Require and Assert.
2017-03-14 14:21:33 +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
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
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
chriseth
2600fa0413
Test for declaring variable with empty tuple type.
2017-03-02 14:33:58 +01:00
chriseth
f35b70f3a3
Test case for external function type with calldata argument.
2017-03-01 15:53:24 +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
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
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
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
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
4cf44f1b41
Do not use modifyTimestamp where not needed
2017-02-10 13:24:56 +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
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
df4ef74199
Add tests for internal constructor.
2017-01-20 19:22:39 +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
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
chriseth
2fac1d23a7
Tests for bytes.
2016-12-12 11:12:12 +01:00
chriseth
7bc2ecf30a
Correct test expectations.
2016-12-12 11:12:12 +01:00
chriseth
2738045030
Cleaner shift handling and type conversion for binary operations.
2016-12-12 11:12:12 +01:00
chriseth
2df60bec92
Type after shift should be type of left operand.
2016-12-12 11:12:12 +01:00
Alex Beregszaszi
b8b4f5e9f9
Support bitshifting in variables
2016-12-12 11:12:10 +01:00
Federico Bond
05139500fb
Warn about using msg.value in non-payable function
2016-12-08 16:22:13 -03:00
chriseth
84443eb560
Merge pull request #1351 from ethereum/truncate_bit
...
Truncate a boolean from calldata into one bit
2016-12-08 16:15:35 +01:00
chriseth
e7ff4ac810
Merge pull request #1412 from ethereum/disallow-multiple-errors
...
disallow more than one errors in name and type tests
2016-12-08 16:07:46 +01:00
Yoichi Hirai
94536ccec8
test: check error messages in parser tests
2016-12-06 17:28:49 +01:00
Yoichi Hirai
1f345e527d
test: either fix tests to raise just one error, or mark them as raising multiple errors
2016-12-05 15:41:37 +01:00
Yoichi Hirai
01215694f6
test: disallow more than one errors in name and type tests
2016-12-05 15:41:37 +01:00
Federico Bond
70d246c834
Migrate remaining source code in tests to R literals
2016-12-03 17:52:51 -03:00
chriseth
5098e1eb15
Count instructions without metadata hash.
2016-12-01 16:04:47 +01:00
Alex Beregszaszi
4c15c465ef
Submit library addresses to the compiler in tests (and not link afterwards)
2016-12-01 16:04:00 +01:00
Alex Beregszaszi
c88f34c781
Remove unneeded optimised test from EndToEndTest
2016-12-01 16:04:00 +01:00
Alex Beregszaszi
1ad9640fa3
Optimizer tests to not interfere with the optimiser flag
2016-12-01 16:03:59 +01:00
chriseth
f91ae3f06b
Fix tests
2016-12-01 16:03:59 +01:00
chriseth
6a7ff039df
Use CBOR encoding.
2016-12-01 16:03:59 +01:00
chriseth
1e35526eb6
Fix tests.
2016-12-01 16:03:59 +01:00
chriseth
aa1fd6a879
Add test.
2016-12-01 16:03:59 +01:00
chriseth
5789eaa78d
Metadata stamp.
2016-12-01 16:03:59 +01:00
chriseth
55a719a79c
Merge pull request #1462 from ethereum/fix-incorrect-assertion
...
codegen: assertion did not assert non-nullness
2016-12-01 15:14:31 +01:00
chriseth
1367aef83b
Merge pull request #1461 from ethereum/reference-not-pointer
...
test: replace a pointer argument by a reference
2016-12-01 15:13:32 +01:00
chriseth
9db14ce673
Merge pull request #1458 from federicobond/r-literals
...
Use more R string literals in tests
2016-12-01 15:03:27 +01:00
chriseth
5d1d81d270
Merge pull request #1454 from ethereum/end-of-comment
...
parser: recognize an end of comment of the form `**/`
2016-12-01 12:40:52 +01:00
Yoichi Hirai
422140f603
test: more precise expectation about the error for assigning into storage in inline assembly
2016-12-01 12:27:27 +01:00
Yoichi Hirai
dd0bd57d67
test: change retrieveFunctionBySignature to take a constant reference rather than a pointer
...
The function `retrieveFunctionBySignature` expected the argument to be a non-null pointer.
This commit makes this assumption more explicit.
2016-12-01 11:53:06 +01:00
Federico Bond
29e304d3bc
Fix typos (existant -> existent)
2016-12-01 01:29:30 -03:00
Federico Bond
6ce41b566d
Use more R string literals in tests
2016-12-01 00:50:15 -03:00
Alex Beregszaszi
610027cd26
Test that contracts separated by comments are compiled
2016-11-30 23:54:02 +00:00
Yoichi Hirai
547deec4be
codegen: clean any data from the input
2016-11-30 17:42:03 +01:00
Yoichi Hirai
b16cdbb57e
test: add a test that witnesses #1318
2016-11-30 17:40:34 +01:00
Yoichi Hirai
eaab712944
parser: recognize an end of comment of the form **/
at the end of a multi-line doc comment
...
This fixes #1433
2016-11-30 17:28:07 +01:00
Alex Beregszaszi
ac357d1225
Merge pull request #1442 from ethereum/lll-testing
...
LLL: introduce testing framework
2016-11-30 15:46:20 +00:00
Alex Beregszaszi
9a6a5f219b
Fix sub-0 optimiser test
2016-11-30 11:51:00 +00:00
chriseth
4ff89dda1d
Update SolidityOptimizer.cpp
2016-11-30 11:16:43 +00:00
Alex Beregszaszi
8d0b80f944
Add test for SUB with 0 optimisation
2016-11-30 11:16:43 +00:00
Alex Beregszaszi
25c5dd48de
Rename testSolidityAgainstCpp* to testContractAgainstCpp*
2016-11-29 21:54:28 +00:00
Alex Beregszaszi
d83dd59178
Move ExecutionFramework to the dev::test namespace
2016-11-29 21:54:27 +00:00
Alex Beregszaszi
a226db7338
Split out Solidity-specific part of ExecutionFramework
2016-11-29 21:54:27 +00:00
chriseth
0933a4ff1a
Merge pull request #1429 from ethereum/unreachablepeephole
...
Some dead code elimination
2016-11-25 16:57:59 +01:00
chriseth
3a8a0708ff
Merge pull request #1381 from ethereum/overflown_enum_compared
...
Enum overflow checking before writing to storage
2016-11-25 16:22:12 +01:00
chriseth
f2872bfa99
Peephole optimizer for unreacheable code.
2016-11-25 16:10:02 +01:00
Yoichi Hirai
df5d5edd1b
test: add a test about explicitly converting a string literal to string
2016-11-25 13:54:13 +01:00
Yoichi Hirai
e136ec8704
ast: string literals that are not valid UTF are not convertible to strings
2016-11-25 13:36:06 +01:00
Yoichi Hirai
aaf58a8c4e
test: add a test case converting an invalid UTF-8 into a string
2016-11-25 13:13:47 +01:00
chriseth
9e7b608e78
Merge pull request #1392 from ethereum/check_warning_contents
...
Check warning text in tests
2016-11-24 21:22:17 +01:00
Yoichi Hirai
a81f556302
test: various fixes
2016-11-24 19:22:26 +01:00
Yoichi Hirai
384c4546f1
interface: move searchForSubstring out of Error class into a separate file
2016-11-24 16:45:17 +01:00
Yoichi Hirai
feb10d015f
test: add a test that stores an invalid enum value
2016-11-24 11:31:45 +01:00
Yoichi Hirai
d4173cd54a
test: add a test about trying to log an event with too big enum values
2016-11-24 11:31:45 +01:00
Yoichi Hirai
d49904c92a
test: add a test that compares overflown enums
2016-11-24 11:31:45 +01:00
Yoichi Hirai
2faaddca05
interface: fix the substring search
2016-11-23 17:38:41 +01:00
Yoichi Hirai
cace51fc47
test: wrapping the error message checking in a macro
2016-11-23 17:38:41 +01:00
Yoichi Hirai
ab3db782ae
test: check the error texts
...
by changing parseAnalyseAndReturnError to return the whole Error, not just the type
2016-11-23 17:38:41 +01:00
chriseth
c9293f2f23
Enable the optimizer for test runs.
2016-11-23 16:48:13 +01:00
chriseth
0c874bbf27
Merge pull request #1425 from ethereum/fixLicensing
...
Fix licensing headers
2016-11-23 12:45:57 +01:00
VoR0220
3f9f725737
Fix licensing headers
...
Signed-off-by: VoR0220 <rj@erisindustries.com>
2016-11-23 12:22:33 +01:00
Yoichi Hirai
75686e3d75
test: add a test case about returning a struct in memory from a library
...
This fixes #1378
2016-11-22 17:09:22 +01:00
chriseth
7fb7d5ae39
Optimizer: Clear state for JUMPDESTs.
2016-11-22 14:58:24 +01:00
Alex Beregszaszi
a35ca910c7
Rename test contract names to capitalised
2016-11-17 17:23:35 +00:00
Alex Beregszaszi
1d6fe5c4e4
Add payable to constructor ABI tests
2016-11-17 17:23:35 +00:00
Alex Beregszaszi
7af360882e
Add missing payable constructors
2016-11-17 17:23:35 +00:00
chriseth
2c14a96820
Some more assertions and style changes.
2016-11-16 15:09:01 +01:00
chriseth
b3eeb5fcf9
Some more tests.
2016-11-16 14:37:19 +01:00
chriseth
e1fec9b287
JSON tests.
2016-11-16 14:37:19 +01:00
chriseth
ec31d08775
Change encoding to address-funid and add "function" as ABI type.
2016-11-16 14:37:19 +01:00
chriseth
a8e7ed37a1
Disable broken tests that are not useful.
2016-11-16 14:37:19 +01:00
chriseth
739dabff8b
Fix tests.
2016-11-16 14:37:19 +01:00
chriseth
7a292c9a05
Fix parser for function type disambiguity.
2016-11-16 14:37:19 +01:00
Yoichi Hirai
f3d0433ec3
test: add a test about external function type taking/returning internal functions
2016-11-16 14:37:18 +01:00
chriseth
e51f852504
Converted sub assembly to smart pointer.
2016-11-16 14:37:18 +01:00
chriseth
e543bd34c0
Stored combined creation and runtime tags.
...
Includes a change to Assembly to allow tags from sub-assemblies to be
used.
Sorry, this get a bit bigger than I thought.
2016-11-16 14:37:18 +01:00
chriseth
ee3efa67a8
Fix tests.
2016-11-16 14:37:18 +01:00
chriseth
08763a206d
Test passing functions as arrays to other contracts.
2016-11-16 14:37:18 +01:00
chriseth
925d674146
Disallow payable internal functions.
2016-11-16 14:37:18 +01:00
chriseth
e1df3bd77f
Fix tests.
2016-11-16 14:37:18 +01:00
chriseth
f21f794f3c
delete for function types
2016-11-16 14:37:18 +01:00
Yoichi Hirai
c9f9b2ab4d
codegen: add a compilation mode and a runtime context to CompilerContext
2016-11-16 14:37:18 +01:00
chriseth
47794c1da4
Implement uninitialized storage functions.
2016-11-16 14:37:18 +01:00
chriseth
b6992d740a
Tests for uninitialized storage functions.
2016-11-16 14:37:18 +01:00
Yoichi Hirai
3158a8ea7b
test: add a test for storing an internal function in the constructor and then using the stored function in runtime
2016-11-16 14:37:18 +01:00
chriseth
87b148494b
Tests.
2016-11-16 14:37:18 +01:00
Yoichi Hirai
6172590b87
Add a test around storing functions in an array
2016-11-16 14:37:17 +01:00
Yoichi Hirai
708b7b35ad
Add a parser test for arrays containing functions
2016-11-16 14:37:17 +01:00
Yoichi Hirai
ab3d1b024d
Add tests around calling functions returning functions returning functions
2016-11-16 14:37:17 +01:00
chriseth
95d7555e3c
External functions in storage.
2016-11-16 14:37:17 +01:00
chriseth
6f19559de0
Fix some type checks and tests for internal / external function parameters.
2016-11-16 14:37:17 +01:00
chriseth
97a3588701
Function type state variables.
2016-11-16 14:37:17 +01:00
chriseth
dd173f83e3
Code generator for function types.
2016-11-16 14:37:17 +01:00
chriseth
cc8583ec7d
Function types.
2016-11-16 14:37:17 +01:00
Alex Beregszaszi
227f6aab4f
Change natspec/abi JSON expected message to be the same
2016-11-15 17:58:55 +00:00
Alex Beregszaszi
81c50143f2
Move JSON helpers to libdevcore/json
2016-11-15 17:38:18 +00:00
Alex Beregszaszi
9205662de9
Update tests to use JSON
2016-11-15 17:20:30 +00:00
Alex Beregszaszi
ae8403ed08
Rename ErrorTag to invalidJumpLabel in inline assembly
2016-11-15 10:30:33 +00:00
Alex Beregszaszi
bee926bf3f
Add tests for the ErrorTag
2016-11-15 10:30:33 +00:00
chriseth
dce80911e1
Add tests
2016-11-15 09:16:33 +01:00
Yoichi Hirai
e6247195dd
test: add a testcase about using an invalid enum value as an external call argument
2016-11-14 20:46:30 +01:00