Alex Beregszaszi
7effc94f24
Rename EVMToEWasmTranslator to EVMToEwasmTranslator
2019-12-18 16:57:45 +00:00
Alex Beregszaszi
b3caf35e88
Change writeU256/writeU128/writeAddress not to return anything in Yul Ewasm interpreter
2019-12-18 14:58:28 +00:00
Alex Beregszaszi
9f1e8086bb
Fix returning code size in Yul Ewasm interpreter
2019-12-18 14:58:28 +00:00
Alex Beregszaszi
7d60cc1729
Fix tracing LOG instruction in the Yul Ewasm interpreter
2019-12-18 13:35:05 +00:00
Alex Beregszaszi
2a808e4f32
Add trace for unreachable in Yul Ewasm translation tests
2019-12-15 13:28:38 +00:00
Bhargava Shastry
f5bd483dfa
yul proto fuzzer: Target default evm version
2019-12-11 16:52:00 +01:00
Christian Parpart
8682af2216
libsolc: Overhauls memory management.
2019-12-11 15:17:39 +00:00
chriseth
f6916a637e
Merge remote-tracking branch 'origin/develop' into develop_060
2019-12-09 17:16:58 +01:00
Leonardo Alt
225041738e
Add SMTCheckerTest for isoltest
2019-12-09 15:32:08 +01:00
chriseth
f7fc42d8c3
Merge pull request #7826 from ethereum/develop
...
Merge develop into develop_060
2019-11-28 13:37:19 +01:00
chriseth
301215f186
Merge pull request #7461 from sifmelcara/licm
...
[YulOpt] Implement loop-invariant code motion
2019-11-28 12:00:19 +01:00
mingchuan
db60d123d0
[YulOpt] Implement loop-invariant code motion
2019-11-28 11:59:29 +01:00
chriseth
1ebcc757e1
Merge remote-tracking branch 'origin/develop' into develop_060
2019-11-27 19:14:08 +01:00
Paweł Bylica
38a20190f4
test: Use evmc::VM directly
...
The evmc::VM works as a RAII wrapper similarly to unique_ptr, so there is no point in using additional unique_ptr.
2019-11-27 18:53:02 +01:00
Bhargava Shastry
ea9e849ee4
Use pointer to string for efficiency
2019-11-26 17:12:56 +01:00
Bhargava Shastry
41bdc9b673
yul proto fuzzer: Generalize variable references
2019-11-26 17:12:56 +01:00
chriseth
b0db64ff5b
Merge remote-tracking branch 'origin/develop' into develop_060
2019-11-26 16:19:35 +01:00
chriseth
d4d0df021d
EWasm translation tests.
2019-11-26 15:46:33 +01:00
chriseth
6625f634fc
Wasm Interpreter
2019-11-26 15:46:33 +01:00
Alex Beregszaszi
eedfafbbc4
Introduce callback context in libsolc
2019-11-22 11:42:39 +00:00
chriseth
a00f824479
Merge pull request #7773 from ethereum/develop
...
Merge develop into develop_060
2019-11-21 21:49:22 +01:00
chriseth
a26dd5a428
Remove trailing spaces in output.
2019-11-21 20:09:03 +01:00
Leonardo Alt
389da5228e
Merge remote-tracking branch 'origin/develop' into merge_develop_060
2019-11-20 12:27:40 +01:00
chriseth
5deaac0849
Merge pull request #7740 from ethereum/istanbul
...
Enable support for Istanbul
2019-11-20 10:49:27 +01:00
chriseth
32f321e416
Merge pull request #7751 from ethereum/replace_boost_variant_std
...
Replace boost::variant by std::variant in libyul
2019-11-19 19:40:39 +01:00
Leonardo Alt
be849b3c47
Replace boost::variant by std::variant in libyul
2019-11-19 17:23:18 +01:00
Alex Beregszaszi
71a310a2ea
Run fuzzer for istanbul
2019-11-19 17:09:18 +01:00
Erik K
94272d44aa
Merge pull request #7745 from ethereum/develop
...
Merge develop into develop_060
2019-11-19 15:30:31 +01:00
Alex Beregszaszi
1432f0ad28
Adapt EVMHost for EVMC7
2019-11-19 12:21:03 +01:00
Bhargava Shastry
62ae015552
docker: Add versioning and edit naming scheme
2019-11-18 15:16:53 +01:00
Bhargava Shastry
a8a50c4e0e
Upgrade evmone to v0.2.0 and adapt fuzzer build
2019-11-18 15:16:53 +01:00
Bhargava Shastry
505b5deaf9
Add chainid and selfbalance opcodes to yul proto converter and enable it
...
in the yul proto differential fuzzer.
2019-11-18 09:26:00 +01:00
chriseth
2e5a42836c
Merge pull request #7681 from ethereum/develop
...
Merge develop into develop_060
2019-11-11 16:42:03 +01:00
Christian Parpart
f15d47f165
Yul: Remove obsoleted FunctionalInstruction.
2019-11-11 16:04:39 +01:00
Bhargava Shastry
9772cc44a0
abiv2 proto fuzzer: Fuzz return data coding
2019-11-06 23:42:10 +01:00
chriseth
46ac16d25c
Merge remote-tracking branch 'origin/develop' into develop_060
2019-11-04 19:09:11 +01:00
Bhargava Shastry
6a55949c04
yul proto fuzzer: Increase step limit upper bound for optimized code
2019-11-04 18:38:56 +01:00
Bhargava Shastry
04becb9458
Minor refactoring
2019-11-04 15:47:04 +01:00
Bhargava Shastry
12ed08eddb
Place upper bound number on number of array dimensions
2019-11-04 15:47:04 +01:00
Bhargava Shastry
3cfeca33c1
Abiv2 proto fuzzer: Refactor and add support for structs
2019-11-04 15:47:04 +01:00
chriseth
08cf616157
Merge pull request #7609 from ethereum/fix-7608
...
yul proto fuzzer: Catch exception early and propagate termination reason
2019-11-04 13:29:50 +01:00
chriseth
5d6e983be3
Conditional simplifier.
2019-11-01 14:01:56 +01:00
Bhargava Shastry
e4ba1c02e8
yul proto fuzzer: Catch exception early and propagate termination reason to harness
2019-11-01 12:26:35 +01:00
Bhargava Shastry
edc5059208
yul proto: Add leave statement
2019-11-01 11:18:05 +01:00
chriseth
42b8c98567
Merge remote-tracking branch 'origin/develop' into develop_060
2019-10-31 18:03:25 +01:00
chriseth
ceb8ee9124
[Yul] leave statement.
2019-10-29 14:32:16 +01:00
chriseth
5d906cd58d
Merge pull request #7568 from ethereum/fixtest
...
Fix failing tests on ArchLinux and potentially MacOS
2019-10-29 12:37:51 +01:00
Mathias Baumann
b3a5c9c9c0
Fix failing tests on ArchLinux and potentially MacOS
2019-10-29 12:02:50 +01:00
chriseth
edf1e83fda
Merge remote-tracking branch 'origin/develop' into develop_060
2019-10-28 15:21:49 +01:00
chriseth
81e2d1ed14
Merge pull request #7528 from ethereum/fix-7434
...
yul interpreter: Initialize calldata with random data
2019-10-28 12:39:27 +01:00
Christian Parpart
df729b3084
Make use of C++17 std::optional<> instead of boost::optional<>.
2019-10-28 11:39:30 +01:00
Christian Parpart
3c1d12b16c
Assembly: Remove errorTypeForLoose property from AsmAnalyzer.
2019-10-25 15:01:26 +02:00
Bhargava Shastry
128c3c7cf6
yul interpreter: Initialize calldata with random data
2019-10-21 10:37:35 +02:00
chriseth
9ce1ca2340
Refactor Optimiser Steps Interface.
2019-09-24 14:52:01 +02:00
chriseth
5a950908b6
Merge pull request #7432 from ethereum/fix-ossfuzz-build
...
ossfuzz: Create a separate cmake toolchain file for ossfuzz
2019-09-17 15:24:50 +02:00
Bhargava Shastry
9b31d72f43
solc fuzzer: Use randomly chosen evm version
2019-09-17 13:43:22 +02:00
chriseth
7a79742f3d
Out of body again.
2019-09-17 12:30:15 +02:00
Bhargava Shastry
48da5f07a5
ossfuzz: Create a separate cmake toolchain file for ossfuzz so that multiple fuzzing backends may be used
2019-09-16 18:35:15 +02:00
Bhargava Shastry
403fb7d88c
Update logic to track dynamically encoded parameters
2019-09-16 14:25:37 +02:00
chriseth
192946c1ba
Merge pull request #7413 from ethereum/ossfuzz-link-correctly
...
Link ossfuzz targets with -fsanitize=fuzzer instead of libFuzzingEngine
2019-09-12 20:22:53 +02:00
Bhargava Shastry
a7c987d931
Link ossfuzz targets with -fsanitize=fuzzer instead of libFuzzingEngine supplied by docker image
2019-09-12 11:26:05 +02:00
chriseth
4f80117eef
Use builtin iszero for for loop condition rewriting.
2019-09-12 10:26:16 +02:00
chriseth
fcfe829534
Introduce LiteralRematerializer and thus simplify StructuralSimplifier.
2019-09-11 19:50:24 +02:00
chriseth
a064e0fc97
Merge pull request #7236 from ethereum/proto-add-object-access
...
Experimental support for object access builtins
2019-09-11 18:28:10 +02:00
chriseth
e9346ca38a
Merge pull request #7400 from ethereum/evmoneSearch
...
Fix evmone filename for auto-discovery for windows and macos.
2019-09-11 17:55:12 +02:00
Daniel Kirchner
2535091168
Replace preprocessor macros with constexpr expressions.
2019-09-11 13:03:05 +02:00
Christian Parpart
ccdca32f39
isoltest: Fixes matching tests on platforms that don't use forward slahes as path separators.
2019-09-11 12:53:20 +02:00
Flash Sheridan
733d40ddb5
Fix evmone filename for auto-discovery for windows and macos.
2019-09-11 12:28:05 +02:00
Bhargava Shastry
34022a2c8c
Pseudo-randomly choose object/data identifier that is in scope
2019-09-11 10:57:54 +02:00
Bhargava Shastry
d677a15507
Add object access builtin functions
2019-09-11 10:57:54 +02:00
Dimitry
fd3ae0b24a
add chainid and selfbalance to lllc
2019-09-09 23:35:36 +03:00
Bhargava Shastry
e349fb1ce1
Abiv2 proto fuzzer: Crop at least 32 bytes if last dynamically encoded parameter is right padded
2019-09-09 10:07:30 +02:00
chriseth
7f797bc6ae
Merge pull request #7342 from ethereum/extendedMemorySizeInterpreter
...
Make memory addresses wrap in interpreter.
2019-09-05 13:14:57 +02:00
Bhargava Shastry
137a898eca
Yul proto fuzzer: Fix typo in low level call
2019-09-04 21:14:26 +02:00
chriseth
5b4b4011c7
Extend memory beyond 32 byte addresses in interpreter.
2019-09-04 20:10:42 +02:00
Bhargava Shastry
c889e6e015
Yul proto fuzzer: Add create and call opcodes
2019-09-04 19:13:40 +02:00
Bhargava Shastry
6b27ef8fcb
Yul proto fuzzer: Additional blockchain opcodes
2019-09-04 19:13:40 +02:00
Bhargava Shastry
fce65ec811
Randomize calldataload and storage slots and use dictionary tokens as function argument
2019-09-04 09:54:57 +02:00
Bhargava Shastry
d066ba71a4
Force call of every valid func declaration
2019-09-04 09:54:57 +02:00
Bhargava Shastry
4837ef4ada
Yul proto fuzzer: Make function definition a statement
2019-09-04 09:54:36 +02:00
Leonardo Alt
d131784714
Add Load Resolver to Yulopti
2019-09-03 15:51:33 +02:00
chriseth
6e4e54cbc6
Merge pull request #7309 from ethereum/yulproto-refactor
...
Yul proto fuzzer: Do not shadow variables
2019-09-03 12:29:13 +02:00
chriseth
029941a168
Merge pull request #7251 from ethereum/sideEffectsForUserDefinedFunctions
...
Side effects for user defined functions
2019-09-03 12:10:56 +02:00
Bhargava Shastry
6427ec661a
Yul interpreter: Out of bounds mloads return zero
2019-09-03 09:51:15 +02:00
chriseth
127bcfc69d
Take user function side-effects into account for unused pruner.
2019-09-02 17:41:51 +02:00
chriseth
1c5845e3f2
Side-effects of user-defined functions.
2019-09-02 17:41:51 +02:00
Bhargava Shastry
bcf0c1810c
Yul proto fuzzer: Do not reuse variable names
2019-09-02 15:23:10 +02:00
chriseth
9a6357ab09
Merge pull request #7188 from ethereum/abiv2-use-bytes-string-longer-than-32-bytes
...
Abiv2 use bytes string longer than 32 bytes
2019-09-02 15:05:43 +02:00
chriseth
bdf29277a2
Change interpreter memory to be non-contiguous.
2019-09-02 13:51:47 +02:00
Bhargava Shastry
46a133e848
Generate bytes and string literals that are longer than 32 bytes
2019-09-02 12:43:47 +02:00
Bhargava Shastry
3963d0ca02
Create bytes/string values of shorter than 32 bytes and adjust invalid encoding length accordingly
2019-09-02 11:30:38 +02:00
chriseth
01e0a12c3b
Fix handling of scopes in Yul Interpreter.
2019-09-02 10:41:26 +02:00
Bhargava Shastry
922790730c
Do not create duplicate case statements
2019-08-26 12:44:06 +02:00
Bhargava Shastry
86c981d9fa
proto fuzzer: Use a yul optimizer dictionary
2019-08-26 12:44:06 +02:00
chriseth
3c4f558242
Tests
2019-08-15 16:30:05 +02:00
Mathias Baumann
ccfcee5b80
YulInterpreter: Fix wrong context passed to called function
2019-08-12 17:12:53 +02:00
chriseth
f3f3cac864
Fix for ossfuzz.
2019-08-08 17:35:46 +02:00
chriseth
c4638cc5cb
Remove mention of IPC.
2019-08-08 17:35:46 +02:00
chriseth
ac43c3bd18
Construct VM with path.
2019-08-08 17:35:46 +02:00
chriseth
f692cec11d
Provide path to libevmone.
2019-08-08 17:35:46 +02:00
chriseth
3dec3af638
Use evmone for testing.
2019-08-08 17:35:44 +02:00
Bhargava Shastry
2f815c5c35
While compiling abiv2 proto generated solidity test program, silently ignore stack too deep errors (exception), throw exception otherwise.
2019-08-06 11:06:09 +02:00
Bhargava Shastry
bf16f2f75e
Test low level calls with correct and incorrect encodings
2019-08-06 09:43:55 +02:00
Bhargava Shastry
e018d62a67
Dynamically sized array dimensions can be zero sized
2019-08-01 16:33:57 +02:00
Bhargava Shastry
90d421352a
Add bool type and array of bool and dynamic byte types
2019-07-17 14:24:43 +02:00
Bhargava Shastry
00bca77cca
Updated evmc to version tracked by evmone v0.1.0
2019-07-17 14:24:27 +02:00
Christian Parpart
810a0de1aa
Add evmc and host interface implementation. Modify fuzzer harness to make use of evmc host/vm.
2019-07-17 10:55:33 +02:00
Bhargava Shastry
5aa571e56f
Update fuzzing deps in docker image and ossfuzz CMakeLists.txt
2019-07-16 09:10:02 +02:00
chriseth
869d69d293
Supply full object to stack compressor and Optimizer Suite.
2019-07-10 18:49:42 +02:00
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
Erik Kundt
d1ad431887
Moves soltest function call to separate class.
2019-02-21 16:39:31 +01:00
Mathias Baumann
1672902abb
Unify isoltest and soltest options code
...
Also provide a default value for ipc-path, which is the same one as aleth uses.
2019-02-21 14:04:39 +01:00
Mathias Baumann
f4110b295b
Use env variable to get IPC path for isoltest
2019-02-21 13:27:24 +01:00
Erik Kundt
dacad629ef
Adds semantic tests to test framework and isoltest.
2019-02-15 13:27:15 +01:00
Erik Kundt
190634e1f9
Implements infrastructure for semantic tests.
2019-02-13 13:05:58 +01:00
chriseth
91d224dfb6
Merge pull request #5966 from ethereum/AnsiColorized
...
Adapts tests/ to use AnsiColorized (the generalized/moved version of FormattedScope, which in turn is removed in this PR)
2019-02-11 16:41:14 +01:00
Christian Parpart
53f9be8a23
Adapts tests/ to use AnsiColorized (the generalized/moved version of FormattedScope, which in turn is removed in this PR)
2019-02-11 16:00:24 +01:00
chriseth
83083d2208
Stack compressor.
2019-02-11 15:48:29 +01:00
Bhargava Shastry
4cac45dc4a
Add fuzzer config files for oss-fuzz and a solidity fuzzing dictionary.
...
Update ossfuzz README.md.
2019-02-04 15:58:41 +01:00
chriseth
bb46e91677
Merge pull request #5891 from ethereum/const-opt-assembly
...
Take only Assembly instance as an input to ConstantOptimiser
2019-01-31 18:54:12 +01:00
Alex Beregszaszi
ae1cd252b0
Take only Assembly instance as an input to ConstantOptimiser
2019-01-31 16:02:29 +00:00
Alex Beregszaszi
554511b68e
Introduce solidity_free in libsolc
2019-01-31 15:53:55 +00:00
Alex Beregszaszi
1276f3c4f3
Clean up includes in the fuzzer
2019-01-29 16:14:51 +00:00
Alex Beregszaszi
0e2b43e141
Pass by reference in fuzzer
2019-01-29 16:14:48 +00:00
Alex Beregszaszi
c537321309
Add more debuggin in the fuzzer
2019-01-29 16:08:25 +00:00
Alex Beregszaszi
c19afd5ad3
Fix fuzzer_common to keep assembly intact
2019-01-28 16:18:49 +00:00
Alex Beregszaszi
06998bc8e1
Run constant optimiser on fresh inputs in the fuzzer
2019-01-28 10:40:33 +00:00
Bhargava Shastry
24b1de7df0
This PR refactors and shares oss-fuzz specific test harness code with the afl fuzzer harness. ChangeLog updated.
2019-01-23 11:06:25 +01:00
Daniel Kirchner
29f66b2674
Stabilize SSAReverser.
2019-01-17 21:05:32 +01:00
Daniel Kirchner
6de2d92f20
Add SSAReverser to the yul optimiser.
2019-01-17 20:37:43 +01:00
Daniel Kirchner
81f24f24e6
Add equivalent function combiner as Yul optimizer step.
2019-01-15 17:21:03 +01:00
chriseth
5b73c2ae3b
Take special functions that require literals into account.
2019-01-07 17:23:38 +01:00
chriseth
9222eff08f
Make the dialect available everywhere.
2019-01-07 16:41:03 +01:00
chriseth
2e9c70add0
Use rematerializer if variable is unreferenced or value is "cheap".
2019-01-07 14:03:32 +01:00
chriseth
bc22a25a60
Remove VarDeclPropagator.
2018-12-13 16:51:10 +01:00
chriseth
fb3a0ac1c7
Codegen for object access.
2018-12-11 19:24:44 +01:00
Mathias Baumann
55d7d327c4
Have only one source where testsuits are defined
2018-12-10 16:49:33 +01:00
Daniel Kirchner
1eb60cbb39
Add structural simplifier as optimization step for Yul.
2018-12-06 18:37:35 +01:00
chriseth
b7cfa499b0
Add tests.
2018-12-06 14:43:14 +01:00
chriseth
0e8841005c
Merge pull request #5554 from ethereum/cp-SourceReferenceFormatter-refactor
...
[2/3] Refactor SourceReferenceFormatter (split-out data extraction & make use of new SourceLocation knowledge)
2018-12-06 14:01:39 +01:00
Christian Parpart
073b03d90c
liblangutil: refactor SourceReferenceFormatter, splitting out retrieval and making use of new SourceLocation's CharStream knowledge
2018-12-06 14:01:01 +01:00
Mathias Baumann
6e5160efa0
Relax assertion about jumps in loose mode
2018-12-05 10:25:59 +01:00
chriseth
99db4e3ff4
Introduce the concept of builtin functions.
2018-12-04 12:06:33 +01:00
Christian Parpart
435f7b3b72
liblangutil: Scanner: remove superfluous sourceName field (it's in CharStream already)
...
Also, ParserBase::sourceName() was dead code. Eliminating it should
increase test coverage (how sneaky) :-)
2018-11-30 17:07:17 +01:00
Christian Parpart
22eff22492
liblangutil: extends CharStream to know about the respective (file-)name (and adapt codebase to it)
2018-11-29 12:45:27 +01:00
chriseth
0b474d5299
Merge pull request #5497 from ethereum/langutil-SourceReferenceFormatter
...
Moving SourceReferenceFormatter into langutil namespace.
2018-11-26 12:44:25 +01:00
Lazaridis
56d5dd4668
decouple TestCase class from test/libsolidity
2018-11-25 02:34:59 +02:00
Christian Parpart
aeb66905de
Moving SourceReferenceFormatter into langutil namespace.
2018-11-24 12:33:36 +01:00
chriseth
9a94e503da
Merge pull request #5491 from ethereum/libyul-as-library
...
Libyul as static library (version 3 ;( )
2018-11-23 17:01:18 +01:00
Christian Parpart
ec47c8946b
Isolating libyul library API into its own namespace yul
.
2018-11-23 14:29:00 +01:00
Leonardo Alt
0ff4cbe51b
Add SMTChecker tests for standard JSON
2018-11-23 10:51:06 +00:00
Christian Parpart
0f4ed52a71
Rewrite header paths to adapt to recent git mv
of libsolidity/inlineasm to libyul
2018-11-23 11:18:57 +01:00
Christian Parpart
d67322a186
Introduce namespace langutil
in liblangutil directory.
...
Also:
- Use {}-style list initialisation for SourceLocation construction
- Introduce new system includes
- Changes the API of the Scanner to take source as value (with move) as opposed to as a reference
2018-11-21 19:13:44 +00:00
Christian Parpart
87821c53c3
Isolating files shared between Yul- and Solidity language frontend.
2018-11-21 18:58:12 +00:00
Christian Parpart
f705a45d43
[Yul] Implements a pass to rewrite for-loop's pre block into the parent's Block.
2018-11-16 13:15:41 +01:00
Alex Beregszaszi
b6c3257752
Remove old libsolc API (compileJSON, compileJSONMulti, compileJSONCallback)
2018-11-13 13:54:01 +00:00
chriseth
37766ee8e4
Add VarDeclPropagator to full suite and interactive optimizer.
2018-11-07 23:19:42 +01:00
chriseth
0e9127a7c8
Add rematerializer to interactive optimizer.
2018-10-28 13:27:21 +01:00
chriseth
f92623063d
Add redundant assign and ssa.
2018-10-24 17:54:35 +02:00
chriseth
57843f790c
Interactive optimizer tool.
2018-10-24 17:52:28 +02:00
Leonardo Alt
e4851cf59e
[SMTChecker] Inline calls to internal functions
2018-10-15 15:11:21 +02:00
Christian Parpart
1304361b9c
Renaming namespace dev::julia to dev::yul.
2018-10-15 11:58:51 +02:00
Christian Parpart
9a4bec7e47
Renaming libjulia to libyul
2018-10-15 11:52:35 +02:00
chriseth
4607118d2e
Add Yul optimizer test framework.
2018-10-11 16:59:57 +02:00
chriseth
9da62384ee
Combine test path discovery.
2018-10-11 15:01:43 +02:00
chriseth
50247dc8d1
Extract test suite runs.
2018-10-11 15:01:43 +02:00
chriseth
9081f803c7
Extract function.
2018-10-11 15:01:43 +02:00
chriseth
5b5a4d0172
Merge pull request #5134 from ethereum/fuzzer-input-file
...
solfuzzer: adds --input-file=FILENAME command line argument (defaulting to stdin)
2018-10-10 16:00:58 +02:00
Christian Parpart
212a6e146a
adds --input-file=FILENAME to solfuzzer
2018-10-10 11:13:03 +02:00
Alex Beregszaszi
9e032bff43
Use nullptr instead of NULL where appropriate
2018-10-09 18:06:39 +01:00
Alex Beregszaszi
24563dd3ce
Do not use compileJSON wrapper in the fuzzer
2018-09-29 14:58:59 +01:00
Daniel Kirchner
967bb6d999
Initialize `TestTool::m_formatted
`.
2018-08-07 21:23:01 +02:00
Daniel Kirchner
a6df7b1fb8
Always count all test cases in isoltest and exit early on user request.
2018-08-07 19:28:21 +02:00
Daniel Kirchner
d923926ff7
Infrastructure for extracting JSON AST tests.
2018-08-03 20:35:50 +02:00
Alex Beregszaszi
a5a61a0b77
More consistent catch statements
...
Also take const& in all cases.
2018-07-25 01:18:09 +01:00
Christian Parpart
05121eebd1
isoltest: adds support for properly handling ANSI escape sequences on Win32/Win64 builds.
2018-07-16 16:34:23 +02:00
Alex Beregszaszi
b248fc6436
Catch the proper exceptions in solfuzzer
2018-07-11 23:49:14 +02:00
Daniel Kirchner
14d0f8c2f1
Refactor syntax test infrastructure to prepare introducing semantics tests.
2018-06-15 10:51:40 +02:00
Daniel Kirchner
9f546cfafc
Improve exception handling in soltest and isoltest.
2018-06-12 11:06:14 +02:00
Alex Beregszaszi
0bed065ee7
Fix source location assertion in isoltest
2018-05-16 15:52:43 +02:00
mingchuan
dbd0a7ed60
Fix link error when using boost shared library
2018-05-11 11:20:19 +08:00
Daniel Kirchner
f03695731b
Add source locations to syntax test expectations.
2018-04-10 14:08:22 +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
Alex Beregszaszi
8fd53c1c03
Merge pull request #3744 from ethereum/useUsrBinEditor
...
Use /usr/bin/editor if exists.
2018-03-21 15:28:21 +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
ea8d5f8afc
Use /usr/bin/editor if exists.
2018-03-15 18:20:23 +01:00
Daniel Kirchner
7fa892eca9
Add interactive test tool isoltest.
2018-03-15 16:23:49 +01:00
Daniel Kirchner
121f87b043
Move test tools to the subdirectory test/tools and adjust CMakeLists.txt.
2018-03-12 18:40:20 +01:00