Commit Graph

857 Commits

Author SHA1 Message Date
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
Yoichi Hirai
454e7618c8
test: add tests about returning invalid enum values from interface functions 2016-11-14 16:44:04 +01:00
Yoichi Hirai
4b6e7e0677
test: add a test conerting an enum into another enum, which should fail 2016-11-11 17:48:03 +01:00
Yoichi Hirai
eee629652e
parsing: ban empty enum definition. 2016-11-11 17:48:03 +01:00
Yoichi Hirai
457daecba1
test: add a test converting -1 as a literal into an enum
This shows #1334 fixes #1344
2016-11-11 17:48:03 +01:00
Yoichi Hirai
08a889a908
test: add a test case for #1343
The test witnesses that #1334 fixes #1343.
2016-11-11 17:48:03 +01:00
Yoichi Hirai
8856adce8f
test: add tests that witness issue #1311 2016-11-11 17:47:48 +01:00
Yoichi Hirai
33590d513e
test: add a test for #621 2016-11-11 15:51:54 +01:00
chriseth
a40dcfef12 Merge pull request #768 from roadriverrail/do_while_loops
Add support for do/while loops
2016-11-10 17:13:45 +01:00
Rhett Aultman
4524ad0870 Add support for do/while loops
This commit adds support for a standard do <statement> while <expr>;
form of statement.  While loops were already being supported; supporting
a do/while loop mostly involves reusing code from while loops but putting
the conditional checking last.
2016-11-10 07:07:25 -08:00
chriseth
81118de512 Merge pull request #1339 from ethereum/typo
test: fix a typo in calling_payable test
2016-11-09 11:29:41 +01:00
chriseth
63bde109a1 Fail if parsing fails in type checker tests. 2016-11-09 10:48:45 +01:00
Yoichi Hirai
88547a1c66
test: fix a typo in calling_payable test 2016-11-08 17:09:24 +01:00
Yoichi Hirai
2e92966684
libevmasm: fix comparison of SourceLocations 2016-11-08 11:11:08 +01:00
chriseth
681b130dc8 Test case for overflow in storage. 2016-10-31 16:40:19 +01:00
Yoichi Hirai
578b02bb37
Add tests for #1246 2016-10-25 16:48:26 +02:00
chriseth
e00a4b47c0 Merge pull request #1264 from ethereum/988
State variable under contract's name
2016-10-25 12:50:24 +02:00
Yoichi Hirai
58477c233d
test: add more tests about state variable access under base contract names 2016-10-24 19:31:51 +02:00
chriseth
6b028701a0 Test. 2016-10-24 16:43:08 +02:00
Yoichi Hirai
922e4b3ce7
test: add tests from #988 2016-10-24 16:34:52 +02:00
Yoichi Hirai
47b11ef2b8
test: add a test case for accessing a state variable under the contract's name
The test comes from the description of #988
2016-10-24 16:28:14 +02:00
Yoichi Hirai
df900c5583
test: add a test about using an inherited enum definition as an expression,
with an explicit mention of the base contract.  The test is about #1131.
2016-10-24 15:28:23 +02:00
chriseth
2b00804d1d Fix crash in throw. 2016-10-24 14:32:49 +02:00
chriseth
cb1fcaf6f6 Merge pull request #1240 from ethereum/1151
ast: super contract type does not contain native members
2016-10-24 11:45:54 +02:00
Yoichi Hirai
4b7fdaa0bd
test: add a test about accessing an enum member without the name of the enum 2016-10-21 13:01:45 +02:00
Yoichi Hirai
f967623a5b
test: add tests for #1131
The tests are about enum inheritance.
2016-10-21 13:01:45 +02:00
Alex Beregszaszi
13b2101ea7 Add tests for inline assembly in modifiers 2016-10-20 23:57:14 +01:00
Yoichi Hirai
6781ec105f
Add a test for #1151 2016-10-20 16:09:52 +02:00
Alex Beregszaszi
6cb2770344 Add two test cases for unbalanced inline assembly 2016-10-20 13:25:28 +01:00
Alex Beregszaszi
0e33b63468 Allow warnings for inline assembly block 2016-10-20 13:25:28 +01:00
Alex Beregszaszi
59603f7b8e Add tests for constant shifts 2016-10-20 00:03:09 +01:00
Alex Beregszaszi
0a3faf48d4 Add tests for magic variables in inline assembly 2016-10-19 20:44:15 +01:00
Alex Beregszaszi
8317eb0383 Add test case for bound types without self 2016-10-19 10:40:45 +01:00
Yoichi Hirai
0542df25df
Add a test for #1242
This is about `super` as an expression.
2016-10-18 13:25:00 +02:00
RJ
d9af51be51 Merge pull request #1079 from VoR0220/fixedTypeTestFramework
Solidity helper function for testing fixed points
2016-10-13 15:18:45 -05:00
chriseth
5fb0bcce45 Replace fixed by standard encode function.
This way, we can use
```
BOOST_CHECK(callContractFunction("t(fixed8x128)", make_pair(rational(2, 3), 128)) == encodeArgs(u256(9)));
```
which is a bit more self-explanatory, I would say.
2016-10-12 17:28:47 +02:00
Alex Beregszaszi
d0791fb365 Fix assignment after tags in inline assembly 2016-10-11 12:28:49 +01:00
chriseth
c4f4d6b971 Fix build error. 2016-10-10 22:14:46 +02:00
chriseth
0b1d449057 Merge pull request #1168 from ethereum/rename-dev-sha3
Rename dev::sha3 to dev::keccak256
2016-10-10 21:23:27 +02:00
Alex Beregszaszi
9f61ae924e Add test for address in inline assembly 2016-10-06 22:05:01 +01:00
Alex Beregszaszi
34df80c502 Add alias keccak256() for sha3() 2016-10-06 16:34:41 +02:00
Alex Beregszaszi
aefb6e5fcf Rename dev::sha3 to dev::keccak256 2016-10-06 14:53:40 +01:00
Alex Beregszaszi
c7508942fe Add test for suicide/selfdestruct 2016-10-06 12:44:33 +01:00
chriseth
212e016091 Merge pull request #1104 from ethereum/fixmemcosts
Fix memory resize costs during call
2016-09-17 12:30:41 +02:00
chriseth
5a45990458 Access output memory area so that we do not pay for resize during call. 2016-09-17 11:29:54 +02:00
chriseth
dd2f878e59 Test case. 2016-09-17 11:29:54 +02:00
chriseth
727c6fac85 Allow value transfer to library functions. 2016-09-17 11:29:27 +02:00
chriseth
031fd568cc Fix crash for TypeName[k]. 2016-09-15 18:16:34 +02:00
VoR0220
cbd933ceed
Solidity helper function for testing fixed points
Signed-off-by: VoR0220 <rj@erisindustries.com>
2016-09-09 21:03:23 -05:00
chriseth
6a55405160 Fix problem with release version string. 2016-09-08 17:56:28 +02:00
Alex Beregszaszi
65c4e65cb3 Tests for constructor visibility 2016-09-06 17:53:13 +02:00
Alex Beregszaszi
05ae5e4f5a Tests for constant constructors 2016-09-06 17:31:39 +02:00
chriseth
3588125692 Merge pull request #1014 from ethereum/strict-fallback
Reject constant modifier on the fallback function
2016-09-06 15:51:45 +02:00
Alex Beregszaszi
6ec40b3cde Reject constant modifier on the fallback function 2016-09-06 11:40:00 +01:00
chriseth
9ca7472089 Provide gas stipend manually for send(0). 2016-09-06 12:37:01 +02:00
chriseth
f687635e47 Merge pull request #665 from axic/feature/accept-ether
BREAKING: Add payable modifier
2016-09-06 12:25:19 +02:00
chriseth
171c74843b Merge pull request #995 from chriseth/fixutf8astjson
Do not emit non-utf8 strings for ast json.
2016-09-06 12:25:04 +02:00
chriseth
43c28c1ede Test case for non-utf8 characters in string literal. 2016-09-06 11:07:56 +02:00
chriseth
dff9633084 Test and fixes for payable fallback in ABI. 2016-09-06 10:59:13 +02:00
chriseth
384f189a6a Tests for payable / private combination. 2016-09-06 10:58:56 +02:00
chriseth
ff11aa1927 Change placeholder style. 2016-09-05 21:32:27 +02:00