Commit Graph

228 Commits

Author SHA1 Message Date
Bhargava Shastry
3b33ff1454 Adjust call to suffixedVariableNameList post refactoring in ABIv2 proto fuzzer and slim down dependencies. 2019-07-09 18:18:40 +02:00
chriseth
859dbaa2a3
Merge pull request #7053 from djudjuu/moveSuffixHelper
move SuffixHelper to StringUtils
2019-07-09 14:32:05 +02:00
djudjuu
cafa01cbf6 moved SuffixHelper to StringUtils 2019-07-09 13:50:07 +02:00
chriseth
479b843067
Merge pull request #7048 from ethereum/soltest-refactoring
[isoltest] Types and formatting refactoring
2019-07-09 12:50:15 +02:00
Bhargava Shastry
5bc1a68b40 ABIv2 proto fuzzer implementation for a limited set of value and non-value types (arrays included). 2019-07-09 10:50:43 +02:00
Erik Kundt
de34f7712d Separates types and conversion functions in soltest. 2019-07-04 14:11:07 +02:00
chriseth
a4ef435c07 Automated ABI Json tests. 2019-07-02 18:11:49 +02:00
chriseth
05a67c486e Use "what" in exception reports. 2019-06-18 17:34:10 +02:00
Bhargava Shastry
b5cbb1a3e9 For loop with custom init and post blocks and potentially unbounded conditional expression 2019-06-14 08:46:28 +02:00
Daniel Kirchner
226f8bb64d Use imported cmake targets for boost. 2019-06-06 18:49:34 +02:00
Bhargava Shastry
f57439035a Do not enclose string literal within double quotes before conversion to u256 2019-05-29 15:52:31 +02:00
chriseth
a3f721bbcc
Merge pull request #6583 from ethereum/reset_yulstringrepo
Reset YulStringRepository regularly
2019-05-28 14:20:53 +02:00
Bhargava Shastry
dbae0fa939 Reset Yul string repository before each compilation. 2019-05-28 13:12:39 +02:00
chriseth
cee1340113 Add mini-interpreter to check representation. 2019-05-28 11:35:07 +02:00
chriseth
6132f0aea9
Merge pull request #6800 from ethereum/skipEmptyDump
Skip empty entries in memory and storage dump.
2019-05-23 14:27:44 +02:00
chriseth
e5902c58a4
Merge pull request #6777 from sifmelcara/loop-cond-rewriter
[YulOpt] Implement ForLoopConditionIntoBody
2019-05-23 12:51:51 +02:00
chriseth
1ca3edf6a1 Remove side-effect-free instructions from the trace. 2019-05-23 12:42:11 +02:00
chriseth
3ef03258ec Remove memory logging. 2019-05-23 12:42:11 +02:00
chriseth
91312e657b Skip empty entries in memory and storage dump. 2019-05-23 12:27:56 +02:00
mingchuan
4ab377eb00
Add tests for ForLoopConditionIntoBody 2019-05-22 21:51:03 +08:00
Bhargava Shastry
804368bb51 First commit 2019-05-22 10:15:28 +02:00
chriseth
1dc15d5864 Modify parser and optimizer. 2019-05-20 17:32:56 +02:00
chriseth
4bdb981224 Make dialect const& and allocate single instances statically. 2019-05-17 12:54:24 +02:00
chriseth
570db164c9 Make Dialect const. 2019-05-16 21:51:54 +02:00
chriseth
dd4f9bf1a6 Really split structural simplifier. 2019-05-13 10:26:57 +02:00
Bhargava Shastry
495f7f9013 [Proto fuzzer] Add function calls, and multi variable declaration/assignment statements 2019-05-09 16:00:29 +02:00
Daniel Kirchner
76b88bdfd8 Allow test cases to indicate fatal errors. 2019-05-07 18:12:21 +02:00
Daniel Kirchner
0a99519142 Move gas cost tests from command line tests to interactive gas cost tests. 2019-05-07 18:12:21 +02:00
chriseth
18bc82e6fd Fix interpreter exp bug. 2019-05-07 11:40:33 +02:00
chriseth
f113f8e4a0 Implement datasize, dataoffset and datacopy for yul interpreter. 2019-05-06 16:59:47 +02:00
Bhargava Shastry
2d1faf53be Reset loop state (to default) before interpreting for-loop post block 2019-05-02 22:22:19 +02:00
Bhargava Shastry
a5524983f9 [Proto fuzzer]: Add terminating opcodes 2019-05-02 15:34:26 +02:00
Bhargava Shastry
ac7bfec2c0 Support generation of calldata, code, extcode and returndata opcodes 2019-05-02 10:14:25 +02:00
Bhargava Shastry
d894ffad16 Proto fuzzer: Add missing memory and log opcodes and fix visitation bug
for ternary ops
2019-04-30 14:18:00 +02:00
chriseth
1d5559c350
Merge pull request #6554 from ethereum/add-ternary-ops
ossfuzz: Generate addmod and mulmod builtin functions
2019-04-19 00:41:57 +02:00
Bhargava Shastry
836c466f09 ossfuzz: Generate addmod and mulmod builtin functions 2019-04-18 14:21:02 +02:00
Bhargava Shastry
68b7f40184 ossfuzz: Fixes buggy generation of duplicate case literals 2019-04-18 14:12:23 +02:00
chriseth
87a4ce2679
Merge pull request #6540 from ethereum/add-for-break-continue
Generate break and continue statements inside for loop body.
2019-04-18 12:57:40 +02:00
Bhargava Shastry
6f673f5e81 Generate break and continue statements inside for loop body. 2019-04-17 13:02:47 +02:00
chriseth
669df0d1e5 Allow more filters and rename member. 2019-04-17 12:00:01 +02:00
Erik Kundt
827e13a2d7 Refactors passing of options in isoltest. 2019-04-17 11:36:14 +02:00
Erik Kundt
11087422d6 Adds --test | -t option to isoltest. 2019-04-17 11:36:14 +02:00
Daniel Kirchner
a4fbb06c2a
Merge pull request #6491 from ethereum/increase-maxSteps-for-opt-yul
Increase upper bound for number of interpreted steps for optimized code
2019-04-12 12:34:47 +02:00
Bhargava Shastry
484c14af81 Increase upper bound for number of interpreted steps for optimized code 2019-04-10 12:57:54 +02:00
mingchuan
f1374066af
Add shortcuts for formatting error information 2019-04-10 18:44:45 +08:00
chriseth
ef413bb0b3 Throw exception to allow fuzzer to report which file it failed on. 2019-04-04 14:05:38 +02:00
Bhargava Shastry
762dd24784 Reference only those variables that are in scope. 2019-04-04 13:28:56 +02:00
Bhargava Shastry
f15cedad7a yulInterpreter: More fine-grained exception handling 2019-04-04 13:02:55 +02:00
chriseth
aeb260cde1 Add settings framework for interactive tests. 2019-04-03 14:58:20 +02:00
Bhargava Shastry
0cc6e1cb08 Use default EVMVersion instead of a hard coded one 2019-04-02 11:40:59 +02:00
chriseth
e894e0b967
Merge pull request #6410 from ethereum/eliminate-dead-code
Yul Optimizer: Remove dead code
2019-04-01 18:12:47 +02:00
Mathias Baumann
e20acf5d0a Yul Optimizer: Remove dead code 2019-04-01 17:16:04 +02:00
Mathias Baumann
30820dda99 Support multiple input files with solfuzzer 2019-04-01 16:57:32 +02:00
Mathias Baumann
101ca5c120 Fix --help parameter for solfuzzer
the `readStandardInput()` branch would be taken if "input-file" was not
given and only "help", thus never reaching the check for "help"
2019-04-01 15:50:34 +02:00
chriseth
3264e9abf0 Make optimiser settings available to assembly stack. 2019-03-28 18:24:13 +01:00
chriseth
2308904f68 Remove "using namespace" from header and move Instruction to dev::eth. 2019-03-28 13:48:11 +01:00
Bhargava Shastry
10c3b31fa4 yulInterpreter: Add timeout based on the number of interpreted statements. 2019-03-27 12:06:02 +01:00
Bhargava Shastry
b3c3a1f9cd Use visitor pattern for proto converter. 2019-03-26 16:39:44 +01:00
Bhargava Shastry
ef94d6d645 yul Interpreter: Move memory size limit to interpreter state. 2019-03-26 14:42:25 +01:00
Bhargava Shastry
a895ccba39 ossfuzz: Enable optimization in Assembly stack assembler call. 2019-03-26 13:42:51 +01:00
Bhargava Shastry
d1d3dd8571 yul proto: Add support for generating string and hex literals. 2019-03-21 12:25:52 +01:00
Bhargava Shastry
22f5a82edc yul proto: Add support for generating for and switch statements. 2019-03-20 18:50:27 +00:00
Bhargava Shastry
6c1d0b62b5 Adds oss-fuzz harnesses to fuzz AssemblyStack API calls for parsing/optimizing StrictAssembly and generating EVM bytecode. 2019-03-20 16:06:45 +01:00
chriseth
8514c0bc60 Provide max iterations for stack compressor as parameter. 2019-03-20 15:07:05 +01:00
chriseth
38cbf8d230 Pass "optimize stack allocation" flag down to the stack compressor. 2019-03-20 15:03:27 +01:00
chriseth
304ef77b4a
Merge pull request #6300 from ethereum/extractedTestsEVMVersionRules
Support EVM Version rules for extracted tests.
2019-03-18 15:29:04 +01:00
Daniel Kirchner
a178486436 Review suggestions. 2019-03-18 14:34:00 +01:00
chriseth
834c23fc38
Merge pull request #6289 from ethereum/strictasm_fuzzer_ascii_only
Discard fuzz input containing non ASCII character(s).
2019-03-18 11:44:06 +01:00
Bhargava Shastry
725fc898fd Discard fuzz input containing at least one character not in the following set: "isprint"able, newline, and horizontal
Co-Authored-By: bshastry <bshastry@ethereum.org>
2019-03-18 10:36:43 +01:00
Daniel Kirchner
4a28e1eb43 Support EVM Version rules for extracted tests. 2019-03-15 17:23:20 +01:00
Bhargava Shastry
5e8ed426df Add more binary operations to the yul proto spec. 2019-03-14 22:26:25 +01:00
Bhargava Shastry
5681086d2c Proto spec and translator bug fixes. 2019-03-14 15:40:54 +01:00
chriseth
db379403fc Fix assertion in yul interpreter. 2019-03-13 20:58:15 +01:00
Christian Parpart
05e2d362c8 [Yul] Adds break/continue statements and some general tests for for-loop syntax. 2019-03-11 15:05:05 +01:00
Bhargava Shastry
54d0d153fa Reduce input file size for solc and constant optimizer fuzzers. 2019-03-06 11:35:22 +01:00
chriseth
4740dc62df
Merge pull request #6193 from ethereum/yul-opt-different-types-6181
YulOpt: Extend StructuralSimplifier to work with all types
2019-03-05 19:11:13 +01:00
Mathias Baumann
921d52bfcd Move Literal to u256 conversions to extra functions
That way we can reuse them at different places
2019-03-05 18:39:27 +01:00
Bhargava Shastry
a370551ea2 ossfuzz: Reduce test input size to less than equal to 600 bytes. 2019-03-05 16:55:55 +01:00
Bhargava Shastry
d9bcbe6ad5 LibProtobuf Mutator (LPM) based fuzzer for yul subset 2019-03-05 12:32:55 +01:00
chriseth
bbda89c428 Create a differential fuzzer using tracing facility from the yul interpreter. 2019-03-04 20:44:17 +01:00
chriseth
38831e885d
Merge pull request #5855 from ethereum/cp
[Yul] Variable Name Canonicalization
2019-03-04 17:58:45 +01:00
Christian Parpart
609855546e Yul: Adds optimizer pass to make variable names suffix-canonical. 2019-03-04 17:26:56 +01:00
chriseth
9a949c1bda Set default EVM version to Petersburg. 2019-03-04 14:53:00 +01:00
Alex Beregszaszi
ecd246aeb6 Support petersburg in evmVersion 2019-03-04 14:10:41 +01:00
Bhargava Shastry
c48cc19fae yulInterpreter: Fix u256 overflow in logMemory. 2019-02-28 16:42:50 +01:00
chriseth
5123a2afa7 Allow positional arguments for yulrun. 2019-02-27 11:44:09 +01:00
chriseth
514c9910aa Fix implementation of signextend. 2019-02-26 17:56:32 +01:00
Erik Kundt
e4182e2add Fixes wrong EVMVersion namespace in yulrun. 2019-02-25 15:56:17 +01:00
chriseth
70bbdd8fac
Merge pull request #3464 from ethereum/iulia_interp
Yul interpreter
2019-02-25 15:38:41 +01:00
Leonardo Alt
2405b2151a EVMVersion in langutil namespace instead of solidity 2019-02-25 15:29:57 +01:00
chriseth
cc88c517a2 Review changes. 2019-02-25 11:58:37 +01:00
Bhargava Shastry
d564c24f30 POP is actually a valid instruction. 2019-02-25 11:58:37 +01:00
chriseth
0e471ab811 Review comments. 2019-02-25 11:58:37 +01:00
chriseth
5eb155b894 Interpreter tests. 2019-02-25 11:58:36 +01:00
chriseth
e91be8222c Yul interpreter executable. 2019-02-25 11:57:48 +01:00
chriseth
0c432a861c Yul interpreter. 2019-02-25 11:57:48 +01:00
chriseth
7f5b335b47 Make EVM version part of EVM dialect. 2019-02-21 21:59:46 +01:00
chriseth
6a1e339b9d
Merge pull request #6068 from ethereum/fix-no-color
Fix isoltest --no-color option
2019-02-21 17:08:10 +01:00
chriseth
98012135c6
Merge pull request #6060 from ethereum/soltest-formatting
[soltest] Create dedicated formatting
2019-02-21 16:43:50 +01:00
Mathias Baumann
7a40088d95 Fix isoltest --no-color option 2019-02-21 16:42:23 +01:00