Commit Graph

1439 Commits

Author SHA1 Message Date
Erik Kundt
6c656a9391 Adds unit test that covers long typeDescription and renames suite. 2018-04-12 21:14:50 +02:00
Erik Kundt
34da3e634f Separates tests for legacy and compact output. 2018-04-12 21:14:50 +02:00
Erik Kundt
824008340a Adds type expectations to legacy tests. 2018-04-12 21:14:50 +02:00
Erik Kundt
8935c0dd2f Uses short string representation of TypePointer 2018-04-12 21:14:50 +02:00
chriseth
7054defdd6
Merge pull request #3364 from ethereum/revertWithReason
Revert with reason
2018-04-12 21:01:08 +02:00
chriseth
44416d1ac6
Merge pull request #2980 from ethereum/abi-api
Add abi.encode and abi.encodePacked
2018-04-12 20:55:03 +02:00
chriseth
966367305a Remove dead code and clarify throw. 2018-04-12 20:13:16 +02:00
Daniel Kirchner
db40bd46af Add additional test for `var` for storage variables. 2018-04-12 16:46:35 +02:00
chriseth
75b8828666 Allow struct encoding with new encoder. 2018-04-12 16:37:16 +02:00
Daniel Kirchner
6862f22943 Fix internal compiler error when parsing `var` declaration without identifier. 2018-04-12 14:57:14 +02:00
chriseth
b25598126e Update documentation and minor changes. 2018-04-12 13:09:38 +02:00
chriseth
4faa839813 Use error signature for revert data. 2018-04-12 13:09:38 +02:00
chriseth
338a875134 Update expectation. 2018-04-12 13:09:38 +02:00
chriseth
e133b1a0cd Adjust expectations in case of homestead VM. 2018-04-12 13:09:38 +02:00
chriseth
42c4c78390 Adjust tests. 2018-04-12 13:09:38 +02:00
chriseth
167ee2fcbb Update source location tests. 2018-04-12 13:09:38 +02:00
chriseth
aa715f8759 Tests about error bubbling for create and transfer. 2018-04-12 13:09:38 +02:00
chriseth
7a9ee69e98 Bubble up error messages. 2018-04-12 13:09:38 +02:00
chriseth
ae1d040285 Allow error string for `require`. 2018-04-12 13:09:37 +02:00
chriseth
a06249c984 Tests for revert with reason string. 2018-04-12 13:09:37 +02:00
chriseth
c3dc67d0e0
Merge pull request #3848 from ethereum/constantDivisionByZero
Error on invalid arithmetic with constant expressions.
2018-04-12 11:49:08 +02:00
Daniel Kirchner
d42476e241 Add test to check ConstantEvaluator for pure non-rational functions. 2018-04-12 11:33:54 +02:00
chriseth
7343c40283 Check partial function parameters if rest is arbitrary. 2018-04-12 00:10:25 +02:00
chriseth
c4a6a63f36 Tests for view and pure. 2018-04-12 00:10:25 +02:00
chriseth
44c0d7ca5e Tests. 2018-04-12 00:10:25 +02:00
Daniel Kirchner
932915633b Add tests for literal operations as well. 2018-04-11 23:20:40 +02:00
Alex Beregszaszi
d56acb68ab Add abi.encode, abi.encodePacked, abi.encodeWithSelector and abi.encodeWithSignature. 2018-04-11 22:32:10 +02:00
chriseth
b5a696ad48 Properly cope with constructor headers. 2018-04-11 22:00:21 +02:00
chriseth
52f68d3b63 Update expectations. 2018-04-11 22:00:21 +02:00
chriseth
4e1ea0866d Extract modifier tests. 2018-04-11 22:00:21 +02:00
chriseth
2ad1acaf72 Warn if modifiers are applied to functions without implementation. 2018-04-11 22:00:21 +02:00
chriseth
42b90ad4c3 New tests for function state variables. 2018-04-11 22:00:04 +02:00
chriseth
08e807aea0 Add expectations. 2018-04-11 22:00:04 +02:00
chriseth
bd27ce0e25 Extract function type tests. 2018-04-11 22:00:04 +02:00
chriseth
ae3fca6db2
Merge pull request #3863 from ethereum/fixGasEstimation
Correctly ignore costs of fallback for other functions.
2018-04-11 21:53:41 +02:00
Daniel Kirchner
daa69df447 Error on invalid arithmetic with constant expressions. 2018-04-11 21:17:10 +02:00
chriseth
928ce08845 Correctly ignore costs of fallback for other functions. 2018-04-11 19:42:34 +01:00
Daniel Kirchner
cb548f6f53 Fix ConstantEvaluator to correctly handle single element tuples. 2018-04-11 18:30:34 +02:00
Daniel Kirchner
fdcbf1337a Syntax Tests: extract array_length_* tests. 2018-04-11 18:01:24 +02:00
chriseth
d50d1f0ac1
Merge pull request #3580 from ethereum/asm-bitshift-optim
Add simplification rule for bitwise shifting
2018-04-11 17:18:31 +02:00
chriseth
05781c955b Fix line numbers for errors. 2018-04-11 16:37:49 +02:00
chriseth
c9bdbcf470
Merge pull request #3309 from ethereum/limit-errors
Limit the number of errors output in a single run to 256
2018-04-11 16:13:41 +02:00
Jason Cobb
3b7b962b66 Fix bug in typechecking when comparing rational literals 2018-04-11 12:03:08 +02:00
Alex Beregszaszi
2e73ef5ac5 Ignore shift warnings on constantinople tests 2018-04-10 15:29:55 +01:00
Alex Beregszaszi
5f76f47f2e Add end to end tests for SHL/SHR/SAR instructions (constantinople only) 2018-04-10 15:29:54 +01:00
Daniel Kirchner
f03695731b Add source locations to syntax test expectations. 2018-04-10 14:08:22 +02:00
Daniel Kirchner
3eedbc6a9c Error when using no parentheses in modifier-style constructor calls. 2018-04-10 12:09:34 +02:00
Daniel Kirchner
b918a105a4 Move constructor argument override check to TypeChecker and reuse annotations in ContractCompiler. 2018-04-09 15:26:08 +02:00
Daniel Kirchner
b8fdb666e2 Allow duplicated constructor calls, if no arguments; support for multiple inheritance; backwards compatibility.
# tmp
2018-04-09 15:26:05 +02:00
Federico Bond
4e037281ac Error on duplicated super constructor calls 2018-04-09 11:22:35 +02:00
Alex Beregszaszi
d5f40c141b Limit the number of errors output in a single run to 256 2018-04-06 13:52:19 +02:00
chriseth
5b1c0506fa Allow `memory` suffix for internal elementary type parsing. 2018-04-05 16:06:04 +02:00
Daniel Kirchner
037eba20fc
Merge pull request #3824 from ethereum/baseArgumentsEmptyParenthesis
Error when using empty parentheses for base class constructors that r…
2018-04-05 14:43:28 +02:00
Alex Beregszaszi
36d6c27e68
Merge pull request #3745 from ethereum/fixRecursion
Fix invalid recursion errors for structs
2018-04-05 12:04:54 +02:00
chriseth
c6da5c1650
Merge pull request #3822 from ethereum/swap-comparison
Replace comparison operators with opposites if preceded by SWAP1
2018-04-05 11:57:26 +02:00
Daniel Kirchner
96eff0ff6a Error when using empty parenthesis for base class constructors that require arguments. 2018-04-05 11:52:22 +02:00
Alex Beregszaszi
8dc9113e37 Add end-to-end test for SwapComparison and CommutativeSwap peephole optimisers 2018-04-05 10:54:39 +02:00
chriseth
65f18a18de More specific push implementation. 2018-04-04 16:50:45 +02:00
chriseth
016f562348
Merge pull request #3808 from ethereum/parserTests
SyntaxTests: extend syntax tests and isoltest to support parser error…
2018-04-04 14:52:01 +02:00
chriseth
0cbe55005d Create empty dynamic memory arrays more efficiently. 2018-04-04 12:37:04 +02:00
Daniel Kirchner
87ad337ae0 Adds parsing sub-directory in syntaxTests and moves two example tests from SolidityParser.cpp to test contracts. 2018-04-03 19:54:46 +02:00
Daniel Kirchner
6f9644add1 SyntaxTests: extend syntax tests and isoltest to support parser errors and compiler exceptions. 2018-04-03 19:54:45 +02:00
Daniel Kirchner
c98464db06 Remove redundant test and enforce success without warnings. 2018-04-03 18:21:55 +02:00
Daniel Kirchner
d664a599e6 Constructors are defined using the `constructor` keyword. 2018-04-03 18:21:55 +02:00
Alex Beregszaszi
0edce4b570
Merge pull request #3693 from ethereum/optimizeMLOAD
Optimize across MLOAD if MSIZE is not used.
2018-04-03 15:58:11 +01:00
chriseth
8fdbd19a05 Extract constant cycle tests. 2018-04-03 16:29:18 +02:00
chriseth
5bdadff0d8 Fix detection of recursive structs. 2018-04-03 16:27:28 +02:00
chriseth
c42caedec2 Extract recursive struct tests. 2018-04-03 16:27:28 +02:00
Alex Beregszaszi
7753249f64
Merge pull request #3699 from ethereum/interfaceExternalVisibility
Defaults to external visibility for interfaces.
2018-04-03 15:15:36 +01:00
chriseth
a54fdc495f Fix: Treat empty base constructor argument list as not provided. 2018-04-03 14:53:48 +02:00
chriseth
e64e397f24 Add memory array init test. 2018-04-03 14:34:32 +02:00
chriseth
138dba1a3f Test number of sstore operations. 2018-04-03 14:34:32 +02:00
chriseth
6777f7a57f Optimize across MLOAD if MSIZE is not used. 2018-04-03 14:34:32 +02:00
Erik Kundt
f9efa41749 Makes visibility warning more concise. 2018-04-03 11:16:50 +02:00
Erik Kundt
601659c384 Moves all interface function visibility related tests. 2018-04-03 11:16:50 +02:00
bitshift
8fe1cfb12e Defaults to external visibility for interfaces. 2018-04-03 11:16:44 +02:00
Jason Cobb
e37b619593 Set default fixed point decimal places to 18 2018-03-31 00:56:36 +01:00
Alex Beregszaszi
076c0754ea Update tests for empty structs 2018-03-31 00:27:01 +01:00
chriseth
326d656a55
Merge pull request #3790 from ethereum/empty-structs
Disallow empty structs
2018-03-30 13:58:35 +02:00
chriseth
5c8a6aac69 Prevent encoding of weird types and support packed encoding of external function types. 2018-03-29 09:57:11 +01:00
chriseth
3bb54e8bd5
Merge pull request #3775 from federicobond/improve-error-fractional-shift
Improve error message when attempting to shift by fractional number
2018-03-28 11:16:44 +02:00
Alex Beregszaszi
ebb12756ad Still allow empty structs for non-0.5.0 mode 2018-03-27 15:49:41 +01:00
Alex Beregszaszi
b540ba527a Disallow empty structs 2018-03-27 15:49:41 +01:00
chriseth
62559cf127
Merge pull request #3681 from ethereum/interface-external
Allow overriding external functions in interfaces with public in a child
2018-03-27 15:47:59 +02:00
chriseth
59538e9a04
Merge pull request #3686 from ethereum/doNotIncludeItnernal
Do not include internal functions only used by constructor
2018-03-27 15:28:08 +02:00
chriseth
af26228159
Merge pull request #3748 from ethereum/extractScopingTests
Extract scoping tests
2018-03-27 15:23:36 +02:00
chriseth
f8f50e14d2 Test that internal functions only used by constructor are not included in runtime context. 2018-03-27 04:00:12 +01:00
bitshift
2c56e53046 Changes deprecation and adjusts tests. 2018-03-27 03:30:03 +01:00
bitshift
be35a65eb3 Adds unit tests for moved function. 2018-03-27 03:30:03 +01:00
Alex Beregszaszi
ef3595b000 Allow overriding external functions in interfaces with public in an implementing contract 2018-03-26 11:35:17 +01:00
Federico Bond
b79531bebf Improve error message when trying to shift by fractional number 2018-03-22 10:05:49 -03:00
chriseth
cc0f70263f Tests for returning dynamic data. 2018-03-21 14:53:29 +00:00
chriseth
c2709a2d8e Decode dynamic data. 2018-03-21 14:53:29 +00:00
Daniel Kirchner
e68c19c47b Only consider files ending with .sol and not starting with ~ in syntax tests. 2018-03-16 12:28:21 +01:00
chriseth
c9db105ad7 Extract scoping tests. 2018-03-16 00:47:32 +01:00
Daniel Kirchner
50ad89d369 Only colour error type, not error message in isoltest. 2018-03-15 16:27:54 +01:00
Daniel Kirchner
269241e910 Add formatted printing to SyntaxTest and expand its public interface. 2018-03-15 16:23:46 +01:00
chriseth
78abe81f08
Merge branch 'develop' into externalFunctionsInLibraries 2018-03-14 18:07:55 +01:00
chriseth
d0c96d53e9
Merge pull request #3734 from ethereum/soltestOptions
test: Rename test/TestHelper.* to test/Options.* and add Options::val…
2018-03-14 18:05:48 +01:00
chriseth
abc7a45230
Merge pull request #3725 from ethereum/blockhashNoCall
Allow ``block.blockhash`` without it being called.
2018-03-14 18:04:40 +01:00
Alex Beregszaszi
59658afa30
Merge pull request #3722 from ethereum/fixMods
Fix modifier lookup in libraries.
2018-03-14 17:20:51 +01:00
Daniel Kirchner
d63d41b3b5 test: Rename test/TestHelper.* to test/Options.* and add Options::validate(). 2018-03-14 12:04:04 +01:00
Daniel Kirchner
9d079fd126 DocStringParser: Add Changelog entry and test case for empty descriptions. 2018-03-14 10:34:16 +01:00
Daniel Kirchner
09420f1a44 Store filenames in static variable to guarantee sufficient lifetime. 2018-03-13 18:14:57 +01:00
chriseth
834d63de2c Allow `block.blockhash` without being called. 2018-03-13 17:34:21 +01:00
chriseth
eecc26deec Make external library functions accessible. 2018-03-13 17:18:46 +01:00
chriseth
51f9e350b1 Tests. 2018-03-13 16:55:41 +01:00
chriseth
58af150c3d Changelog entry. 2018-03-13 16:55:41 +01:00
Daniel Kirchner
7091b6c8b5 Minor adjustments. 2018-03-13 12:30:56 +01:00
Daniel Kirchner
3232561d97 Refactoring; fuse SyntaxTestParser and SyntaxTester to SyntaxTest. 2018-03-13 11:20:11 +01:00
Daniel Kirchner
317c1f7fa3 Workaround for boost < 1.59.0 2018-03-13 11:20:11 +01:00
Daniel Kirchner
49eaf7c3fd Infrastructure for extracting syntax tests in separate test files. 2018-03-13 11:20:11 +01:00
Leonardo Alt
c2d26eb6a2 [SMTChecker_Bool] Fix PR comments; Add support to gt, ge, lt, le. and tests. 2018-03-12 20:16:47 +01:00
Leonardo Alt
6a940f0a99 [SMTChecker] Support to Bool variables 2018-03-12 20:16:47 +01:00
Alex Beregszaszi
a59d6d2e53 Support constantinople in evm-version 2018-03-12 18:13:19 +01:00
chriseth
ea48d8ade3 Fix test. 2018-03-06 20:15:43 +01:00
Alex Beregszaszi
ba8819542f
Merge pull request #3611 from ethereum/warn-using-address-overload
Warn if using address overloads on contracts
2018-03-06 19:13:55 +01:00
chriseth
84d711fd1d Tests for warnings/errors for loose assembly. 2018-03-06 17:45:34 +01:00
Alex Beregszaszi
14b12ae745
Merge pull request #2966 from ethereum/useStaticCall
Use STATICCALL for pure function calls.
2018-03-06 17:07:03 +01:00
Alex Beregszaszi
83dacbf669
Merge pull request #3549 from ethereum/fixmultidim
Properly detect which array and struct types are unsupported by the old ABI encoder.
2018-03-06 15:51:17 +01:00
chriseth
a3593df43b Test for using staticcall for view and pure functions. 2018-03-06 15:30:18 +01:00
chriseth
f6c0daec14
Merge pull request #3652 from ethereum/gasleft_v2
Use StaticAnalyzer to deprecate msg.gas instead of conditionally remo…
2018-03-06 09:26:14 +01:00
Daniel Kirchner
91b13b734d Use StaticAnalyzer to deprecate msg.gas instead of conditionally removing it in MagicType. 2018-03-05 23:16:26 +01:00
chriseth
3793aa405b
Merge pull request #3643 from ethereum/gasleft
Move msg.gas to global function gasleft(). Closes #2971.
2018-03-05 20:11:37 +01:00
Daniel Kirchner
2213f9946b Improved gasleft tests. 2018-03-05 18:45:02 +01:00
Alex Beregszaszi
fd60c1cf86 Warn if using address overloads on contracts 2018-03-05 15:50:27 +01:00
Daniel Kirchner
29fb5fe1c9 Add test cases for shadowing gasleft with local functions/variables. 2018-03-05 13:28:57 +01:00
Daniel Kirchner
298bdeec49 Remove unstable test case. 2018-03-05 13:28:27 +01:00
chriseth
477571e190 Do not warn about 0.5.0 experimental pragma. 2018-03-05 12:14:44 +01:00
chriseth
6dc137317f
Merge pull request #3569 from ethereum/evmVersion
EVM version
2018-03-05 12:10:49 +01:00
chriseth
6ec4517929 Use EVM version in gas meter and optimizer. 2018-03-05 11:36:33 +01:00
Daniel Kirchner
c633c0eacb Move msg.gas to global function gasleft(). Closes #2971. 2018-03-05 11:18:04 +01:00
chriseth
5982869e94
Merge pull request #3633 from ethereum/reserved-keywords-test
Parser: Add test case for reserved keywords.
2018-03-02 11:41:21 +01:00
chriseth
f78d6a9a1e
Merge pull request #3628 from ethereum/literalsHexUnit
Deprecate using unit denominations in combination with hex numbers.
2018-03-02 11:11:16 +01:00
Daniel Kirchner
0f64648203 Parser: Add test case for reserved keywords. 2018-03-02 10:45:28 +01:00
Alex Beregszaszi
5a54cd5c70 Only warn for shift instructions if not using constantinople 2018-03-01 17:19:35 +01:00
chriseth
982476f99d Add TangerineWhistle. 2018-03-01 17:19:35 +01:00
chriseth
7b0272ccfb CREATE2 test fix. 2018-03-01 17:19:35 +01:00
chriseth
1e26011d2c Returndatasize and staticcall test fixes. 2018-03-01 17:19:35 +01:00
chriseth
05cc5f22b2 Correctly set evm version in tests 2018-03-01 17:19:35 +01:00
chriseth
dc317a44e0 Provide EVM version to assembly analysis. 2018-03-01 17:19:35 +01:00
chriseth
a53d6b499d Use EVM version in type checker. 2018-03-01 17:19:35 +01:00
chriseth
f2f61f1c2f Test both EVM versions. 2018-03-01 17:19:35 +01:00
chriseth
60f7be5d4c Some tests. 2018-03-01 17:19:35 +01:00
Daniel Kirchner
bd4c2b9bde Deprecate using unit denominations in combination with hex numbers. Closes #3574. 2018-03-01 16:58:55 +01:00
chriseth
7540763196 Tests for multi-dimensional arrays. 2018-03-01 14:28:27 +01:00
Alex Beregszaszi
b6dfd9ef54 Ensure that library addresses supplied are of correct length and hex prefixed in JSONIO 2018-03-01 12:03:56 +01:00
chriseth
7938339572
Merge pull request #3617 from ethereum/jsonio-libraries
Add more comprehensive tests and checks for libraries in JSONIO
2018-02-28 17:40:29 +01:00
chriseth
fb8c4bd7c2
Merge pull request #3615 from ethereum/test-framework
Simplify contract compilation in the test framework
2018-02-28 16:35:22 +01:00
chriseth
22d26e059c
Merge pull request #3613 from ethereum/require-visibility
Issue error if no visibility is specified (on 0.5.0)
2018-02-28 16:33:39 +01:00
Alex Beregszaszi
7897301b71 Properly validate invalid hex characters in JSONIO libraries 2018-02-28 10:44:48 +01:00
Alex Beregszaszi
83fec0232d Add more comprehensive tests and checks for libraries in JSONIO 2018-02-28 10:36:07 +01:00
Alex Beregszaszi
029e19983c Split compileContract off compileAndRunWithoutCheck in SolidityExecutionFramework 2018-02-27 20:08:24 +01:00
chriseth
908b46e9a7
Merge pull request #3476 from ethereum/scoping
C99/C++ scoping rules
2018-02-27 17:06:10 +01:00
Alex Beregszaszi
a566825589 Issue error if no visibility is specified (on 0.5.0) 2018-02-27 16:31:53 +01:00
Alex Beregszaszi
73c5d99bfa Add basic test for shift opcodes 2018-02-27 13:43:04 +01:00
chriseth
d64aa0eaad Some more scoping tests. 2018-02-27 12:41:32 +01:00
chriseth
88a5c66f4a Only active variables at the point of their declaration. 2018-02-27 12:17:25 +01:00
chriseth
6b9dda06f3 Enable C99-scoping with the 0.5.0-experimental pragma. 2018-02-27 12:17:25 +01:00
chriseth
0005990382 Tests for new scoping behaviour. 2018-02-27 12:17:25 +01:00
chriseth
69f5f2eb65 Adjust tests. 2018-02-27 12:17:25 +01:00
Alex Beregszaszi
5c0d82059f Turn throw into a syntax error for 0.5.0 2018-02-27 02:10:24 +01:00
Alex Beregszaszi
b62d43912b
Merge pull request #3589 from ethereum/identifiers
Clean up type identifiers
2018-02-26 20:27:26 +01:00
Alex Beregszaszi
0736d91eaa Add test for escapeIdentifier 2018-02-26 19:09:44 +01:00
chriseth
8ae6a76c58 Test data location of getter return type. 2018-02-26 11:17:32 +01:00
chriseth
b5a3b6a429 Parser test. 2018-02-22 15:17:43 +01:00
chriseth
ad010f557b Tests for warnings. 2018-02-22 15:17:43 +01:00
chriseth
388718b59f Introduce emit statement. 2018-02-22 15:17:30 +01:00
chriseth
c182284d28 Do not warn about analysis-only experimental features. 2018-02-22 14:50:20 +01:00
Alex Beregszaszi
ae02bb5aad Raise error on oversized number literals in assembly 2018-02-22 01:02:19 +01:00
chriseth
98324d6c89
Merge pull request #3555 from ethereum/libraryTestCallInput
Provide proper input for test call.
2018-02-21 17:23:41 +01:00
chriseth
3076a434ba
Merge pull request #3554 from ethereum/reuseScannerOrNot
Expect end of string at end of top-level block for assembly parser.
2018-02-21 00:41:57 +01:00
chriseth
e2bf5de8a2 Expect end of string at end of top-level block for assembly parser. 2018-02-21 00:41:39 +01:00
Alexander Arlt
0f29ac4e56 Add new JSON API for better abstraction and for supporting strict JSON parsing 2018-02-20 21:58:26 +01:00
chriseth
89a8f4096c Provide proper input for test call. 2018-02-20 19:31:26 +01:00
chriseth
3ba8af4fd5 Provide input for two optimizer tests. 2018-02-20 18:03:39 +01:00
chriseth
decfa0eed0 Test aliasing in shadowing. 2018-02-20 13:06:28 +01:00
chriseth
a680cbd474 Test `_offset` for constants in inline assembly. 2018-02-19 19:22:39 +01:00
chriseth
abc23ac608
Merge pull request #3135 from federicobond/formatter-instance
Convert static SourceReferenceFormatter functions to member ones
2018-02-19 17:34:07 +01:00
Emilio Almansi
47a0e374e2 Fix indentation. 2018-02-19 16:45:38 +01:00
Emilio Almansi
ca6957da37 Added property _documentation_ to Function, Event, and Modifier definition classes. 2018-02-19 16:45:38 +01:00
Federico Bond
d7532f7b9c Convert static SourceReferenceFormatter functions to member ones 2018-02-19 15:04:22 +01:00
Alexander Arlt
1d4547ab03 Minor improvement: check sources
- returns error, if "sources" is an array, an empty object or not defined
- Added new test-cases in test/libsolidity/StandardCompiler.cpp
2018-02-16 18:44:46 +01:00
chriseth
2b5a5a8669 Make addmod and mulmod revert if the last argument is zero. 2018-02-15 13:52:17 +01:00
chriseth
e08a206070 Disallow uninitialized storage pointers as experimental 0.5.0 feature. 2018-02-15 11:58:50 +01:00
chriseth
23484ba6a4
Merge pull request #3498 from ethereum/allowthisfselector
Allow `this.f.selector` to be pure.
2018-02-13 17:08:35 +01:00
Balajiganapathi S
b1417b318f Move string distance function to utils and format error message 2018-02-13 14:59:33 +00:00
Balajiganapathi S
2859834e58 Suggest alternatives when identifier not found. 2018-02-13 14:54:36 +00:00
chriseth
aea9e7fe54 Add tests for selectors for public variables. 2018-02-13 14:15:02 +01:00
Alex Beregszaszi
8f8ad3840e
Merge pull request #3349 from federicobond/number-improv
Avoid output messages size blow-up using huge bignums literals
2018-02-13 12:36:05 +00:00
chriseth
560fbd0df1 Always use shortened literal number representation. 2018-02-13 11:43:47 +01:00
chriseth
5916cf1e0a Allow this.f.selector to be pure. 2018-02-13 11:00:59 +01:00
Federico Bond
a320ffeafd Avoid output messages size blow-up using huge bignums literals 2018-02-12 22:53:33 +00:00
Alex Beregszaszi
573aa01fd2 Adjust tests for multiple errors with the var keyword 2018-02-12 22:39:42 +00:00
Alex Beregszaszi
3ddbf1617f Do not use var where not neccessary in tests 2018-02-12 22:37:35 +00:00
chriseth
8795036919
Merge pull request #3479 from ethereum/multiError
Support searching inside multiple errors.
2018-02-12 22:20:58 +01:00
chriseth
676cf52264 Support searching inside multiple errors. 2018-02-12 16:41:31 +01:00
Federico Bond
75a3a707a2 Fix segfault with undeclared array types 2018-02-11 21:40:41 -03:00
Alex Beregszaszi
32300ea3ff
Merge pull request #3360 from federicobond/nonfatal-reference-errors
Replace some fatal errors when resolving references with normal ones
2018-02-04 13:07:55 +00:00
Federico Bond
aef9518039 Add more test cases for reference resolving error handling 2018-02-02 14:09:32 -03:00
Federico Bond
600e66e605 Replace some fatal errors when resolving references with normal ones 2018-02-02 14:09:32 -03:00
Alex Beregszaszi
b545987ec7 Issue warning for using public visibility for interface functions 2018-02-01 10:28:00 +00:00
chriseth
6807010dc7 Prevent libraries from being called. 2018-01-19 16:27:44 +01:00
Alex Beregszaszi
8b20a7cd53 Disallow non-functional instructions in parseExpression early 2018-01-10 14:16:46 +01:00
Alex Beregszaszi
42f8875770 Show restricted instruction warning before argument mismatch issue 2018-01-08 00:39:22 +00:00
chriseth
767052f2f7 Tests for strict mode. 2018-01-06 03:28:21 +00:00
Alex Beregszaszi
9e7e312fdf Properly support library file names containing a colon (such as URLs). 2018-01-05 13:24:07 +00:00
Leonardo Alt
d0abc5359b [SMTChecker] Variables are merged after branches (ite variables) 2018-01-04 18:20:12 +01:00
chriseth
7f4cf00f1b Provide easy way to update source location expectation. 2018-01-04 14:29:03 +01:00
Alex Beregszaszi
2cdd789b5d
Merge pull request #3297 from ethereum/separate_expression_and_statement
Separate expression and statement
2018-01-04 12:04:19 +00:00
Alex Beregszaszi
8901b38959
Merge pull request #3369 from ethereum/jsonio-colon
Properly handle colons in file names within jsonio
2018-01-04 11:58:29 +00:00
Federico Bond
a0771691ff Improve error message for wrong struct initialization (#3359) 2018-01-04 11:24:39 +01:00
Alex Beregszaszi
ff9fdfac57 Properly handle colons in file names within jsonio 2018-01-03 15:44:03 +00:00
Alex Beregszaszi
add4cde68c Populate the sourceLocation field properly in standard JSON on errors 2017-12-18 12:17:51 +00:00
chriseth
3d1830f3f2
Merge pull request #3232 from ethereum/simplifyConstant
Simplify ConstantEvaluator.
2017-12-14 16:14:46 +01:00
chriseth
ca0d244bf7 Adjust tests. 2017-12-13 12:28:15 +01:00
Yoichi Hirai
14707b27e2
Merge pull request #3183 from federicobond/fix-event-parsing
Fix event parsing. Refs #3175
2017-12-12 11:12:18 +01:00
chriseth
48c7ba72f3 Simplify ConstantEvaluator. 2017-12-12 09:44:18 +00:00
Alex Beregszaszi
7ff9a85592 Reduce the types of errors outputted by ConstantEvaluator 2017-12-12 09:40:29 +00:00
Alex Beregszaszi
5226d54ed1 Improve error message for constant evaluator 2017-12-12 09:39:26 +00:00
Alex Beregszaszi
1734d44561 Rename jsonCompiler to libsolc 2017-12-11 12:49:08 +00:00
Alex Beregszaszi
b32d7a84fc Move some struct tests to require ABIEncoderV2 2017-12-11 02:42:09 +00:00
Alex Beregszaszi
d57afb20fa Fix warning test for jumps in assembly 2017-12-05 20:27:50 +00:00
Alex Beregszaszi
bc875f6b9c Warn for assembly labels too 2017-12-05 19:27:12 +00:00
chriseth
6d609557b6 Fix test. 2017-12-04 12:57:36 +01:00
chriseth
00e252a39f Another test for division. 2017-11-30 01:20:21 +01:00
chriseth
19e067465a Unary operators and division. 2017-11-30 01:20:21 +01:00
Alex Beregszaszi
73d25c883f Specify output selection in tests 2017-11-29 20:10:18 +00:00
chriseth
9d8e3ff395 Also test short input for old decoder. 2017-11-29 17:08:44 +01:00
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
a1f59cbb17
Merge pull request #3220 from ethereum/IuliaIf
If statement for Iulia / Inline Assembly
2017-11-27 09:02:46 -05: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
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
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
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
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
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
082e7b6a9e Allow `gas` in view functions. 2017-10-16 13:28:44 +02: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
Alex Beregszaszi
b8be060b30 Ensure unused variables are not warned for in interfaces/abstract contracts 2017-10-05 19:31:53 +01: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
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