Kamil Śliwak
a72857df03
CommonIO: Replace readStandardInput() with readUntilEnd() with a configurable stream
2021-07-02 14:58:30 +02:00
Kamil Śliwak
6ad6fa2382
Do not hard-code the default 'runs' value as 200 in code that fills out optimizer settings
2021-06-28 14:12:28 +02:00
Kamil Śliwak
65e23ff171
CommonIO: Make readFile() check if the file is not a directory and if not fail with a sensible exception rather than std::length_error
2021-06-25 16:04:58 +02:00
Daniel Kirchner
06a9199967
Change loading of VMs and error messages during test.
2021-05-12 14:48:37 +02:00
Daniel Kirchner
6104ac1cdf
Remove more imports of ranges namespace.
2021-05-07 15:42:17 +02:00
Djordje Mijovic
e404b6e7a6
Refactoring yul source locations.
2021-05-04 16:05:23 +02:00
chriseth
3548049c61
Merge pull request #10356 from ethereum/isoltest-add-enforce-ewasm
...
[test] Add support for --enforce-compile-to-ewasm.
2021-04-27 17:51:33 +02:00
Alexander Arlt
da38149f57
[test] Add support for --enforce-compile-to-ewasm.
2021-04-26 20:31:03 -05:00
Alexander Arlt
481971cbcf
[isoltest] Add support for external sources.
2021-04-26 08:27:30 -05:00
chriseth
2969bc0f3e
Merge pull request #11302 from ethereum/drop-u160
...
Drop the util::u160 type
2021-04-26 15:12:20 +02:00
anurag4u80
c4cf412fed
Replaced boost remove_erase and remove_erase_if
2021-04-24 08:10:41 +05:30
Alex Beregszaszi
37be1b3ed9
Remove dependency on util::160 in yulInterpreter
...
Instead apply explicit truncation or masking for readability.
2021-04-23 14:35:05 +01:00
hrkrshnn
1f5b874eaf
Optimizer context has parameter expectedExecutionsPerDeployment
2021-04-22 17:27:57 +02:00
Alex Beregszaszi
8fb7a18800
Small refactorings for isoltest
2021-04-22 01:04:34 +01:00
Leonardo
7bbf3a694b
Merge pull request #11261 from ethereum/smt_choose_target
...
[SMTChecker] Add option to choose contracts to be analyzed
2021-04-21 13:11:33 +02:00
Leonardo Alt
dd1865873e
Choose contracts to be analyzed by the SMTChecker
2021-04-21 10:34:14 +02:00
Bhargava Shastry
69dd1771b7
Remove as many boost usages as possible in protoToYul.cpp
2021-04-20 18:46:19 +02:00
Bhargava Shastry
14d2170b46
Merge pull request #11238 from ethereum/yul-interpreter-storage-state
...
Permit Yul interpreter vs Evmone storage comparison.
2021-04-19 12:22:59 +02:00
Bhargava Shastry
6941143613
Merge pull request #11216 from ethereum/fix-abiv2-fuzzer-bug
...
Fix use of const ref in Abiv2 and other proto fuzzers.
2021-04-14 15:03:57 +02:00
Bhargava Shastry
15bf6af77a
Remove output parameters from function call since they are generated on the fly in the converter.
2021-04-14 13:53:37 +02:00
Bhargava Shastry
7c806217fb
Changes to yul proto mutator.
2021-04-14 13:53:37 +02:00
Bhargava Shastry
cf08c9b255
Correct use of emplace_back
2021-04-14 13:53:37 +02:00
Bhargava Shastry
1709b2924b
Changes to how function calls are generated.
2021-04-14 13:53:37 +02:00
Bhargava Shastry
b1392ac988
Fix use of const ref in Abiv2 and other proto fuzzers.
2021-04-13 19:38:43 +02:00
Bhargava Shastry
033ee0e2bc
Permit Yul interpreter vs Evmone storage comparison.
2021-04-12 10:39:23 +02:00
Bhargava Shastry
6f3095a199
Merge pull request #11141 from ethereum/compilation-framework-fuzzer
...
Enable multi-source fuzzing.
2021-04-06 14:00:11 +02:00
anurag4u80
bbcdddeed9
Replaced keys, values and reverse with ranges
2021-03-31 23:33:04 +05:30
Bhargava Shastry
f3f1ccc34f
Fix false positive caused by early termination due to nested expressions.
2021-03-26 13:35:57 +01:00
Bhargava Shastry
f9182e9f88
Minor changes to Solidity compilation framework fuzzer.
2021-03-23 13:17:41 +01:00
Alex Beregszaszi
1c176cc1ee
isoltest: add --accept-updates option
2021-03-15 14:31:01 +00:00
Bhargava Shastry
8023fdb537
Extract state printing to a separate class.
2021-03-10 17:41:03 +01:00
Bhargava Shastry
24f42c5541
Filter false positives due to EVM errors.
...
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2021-03-10 17:41:03 +01:00
Bhargava Shastry
34c08ea2c6
EVMHost: Add tracing features needed for fuzzing.
2021-03-10 17:41:03 +01:00
Djordje Mijovic
aed3832b27
Implementing enforcing gas expectations in isoltest.
...
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2021-03-09 21:26:45 +01:00
Daniel Kirchner
a75424eec4
Drop support for evm15 and eip-615.
2021-03-09 15:56:03 +01:00
Daniel Kirchner
e99da7e015
Extract StackReuseCodegen tests.
2021-03-09 15:47:24 +01:00
Daniel Kirchner
acd3084076
Fuzzer for stack optimiser/code generator.
2021-03-04 17:35:56 +01:00
Bhargava Shastry
a34308e4cb
Proto yul converter: Provide a flag to filter stateful instructions.
2021-03-04 15:20:19 +01:00
Bhargava Shastry
069ac9c9a9
Merge pull request #10878 from ethereum/refactor-solProtoFuzzer
...
Fuzzer: Refactor utility methods shared by proto fuzzers.
2021-03-01 19:56:10 +01:00
Bhargava Shastry
c9f1b55073
Merge pull request #10967 from ethereum/proto-mutator
...
Proto mutator: Add control flow to basic blocks
2021-02-23 12:03:52 +01:00
Bhargava Shastry
758d159d87
yul proto mutator: Add control flow to block statements.
2021-02-22 15:10:41 +01:00
Alexander Arlt
c44bb7e7ef
Replace raw throw with BOOST_THROW_EXCEPTION.
2021-02-18 20:23:59 -05:00
Bhargava Shastry
febccdd96a
Fuzzer: Refactor utility methods shared by proto fuzzers.
...
Co-authored-by: Leonardo <leo@ethereum.org>
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2021-02-10 11:43:57 +01:00
Bhargava Shastry
75e7e1bee7
Consistent use of returns documentation tag.
2021-02-09 12:51:36 +01:00
Bhargava Shastry
896de75bcb
Solidity fuzzer: Add test state.
2021-02-09 12:49:35 +01:00
Bhargava Shastry
7e343987fc
Update solidity dictionary with TestReader syntax.
2021-02-08 11:16:11 +01:00
Bhargava Shastry
2f001bb91c
Unify solc fuzzers.
2021-02-08 11:14:38 +01:00
Bhargava Shastry
c7ee2c1f39
Clang tidy fixes in protoToYul.cpp.
2021-02-07 23:27:11 +01:00
Bhargava Shastry
0a59bd825b
Solidity fuzzer: Add simple import statements.
...
Co-authored-by: Leonardo <leo@ethereum.org>
2021-02-03 17:03:57 +01:00
Bhargava Shastry
8e691293e4
ossfuzz: Clang tidy suggested fixes in Solidity generator
2021-01-27 14:55:49 +01:00
Bhargava Shastry
be733d5f61
Reorganized code for better readability.
2021-01-26 16:16:03 +01:00
Bhargava Shastry
f5e0faaa37
Add documentation and/or comments.
...
Co-authored-by: Leonardo <leo@ethereum.org>
2021-01-26 15:48:42 +01:00
Bhargava Shastry
d7e3d3f75f
Add visitors for automatic test case generation.
2021-01-26 15:48:42 +01:00
Leonardo
a75b87c80e
Merge pull request #10813 from ethereum/smt_targets_option
...
Add CLI and JSON option to select SMTChecker targets
2021-01-20 18:37:08 +01:00
Leonardo Alt
3b23cadbdc
Add CLI and JSON option to select SMTChecker targets
2021-01-20 17:35:37 +01:00
Bhargava Shastry
b3dd83a20b
Enable fine grained yul optimizer fuzzing
2021-01-19 18:22:59 +01:00
chriseth
359c70649d
Merge pull request #10752 from ethereum/yulopti-option-order
...
[yulopti] Options ordered by name and in columns rather than rows
2021-01-18 15:59:58 +01:00
Bhargava Shastry
42c05df0a9
Yul optimizer test: Separate test parsing and optimisation
2021-01-18 10:27:58 +01:00
Kamil Śliwak
0f75582e12
[yulopti] Rewrite the check against overlapping abbreviations using ranges-v3
2021-01-16 01:10:55 +01:00
Kamil Śliwak
88a7dddfbd
[yulopti] Sort options by step name, with special options on top of the list
2021-01-16 01:10:55 +01:00
Kamil Śliwak
18c0e70ccf
[yulopti] Print options in column-wise rather than row-wise
2021-01-16 01:10:55 +01:00
Bhargava Shastry
a6a2b58e57
ossfuzz: Add option to force SMT pragma and set it in solc fuzzers
...
Co-authored-by: Leonardo <leo@ethereum.org>
2020-12-21 11:55:58 +01:00
chriseth
3c270ca7f7
Merge pull request #10608 from ethereum/develop
...
Merge develop into breaking.
2020-12-15 15:24:53 +01:00
Bhargava Shastry
b273e52628
Abiv2 fuzzer: Enable differential fuzzing and remove support for string coding
...
co-authored-by: Leonardo <leo@ethereum.org>
2020-12-15 11:13:10 +01:00
Bhargava Shastry
39f1893956
Fix integer overflow due to large unsigned cpp_int
2020-12-15 11:12:51 +01:00
chriseth
561280a5cc
Merge remote-tracking branch 'origin/develop' into breaking
2020-12-14 11:33:40 +01:00
Leonardo
adead3072d
Merge pull request #10570 from ethereum/abiv2-isabelle-test-values-fix-bugs
...
Ensure empty arrays are not visited and fix formatting issues
2020-12-11 17:38:15 +01:00
Bhargava Shastry
9bd4a1095e
Ensure empty arrays are not visited and fix formatting issues
2020-12-10 22:43:45 +01:00
Alex Beregszaszi
bd641a5206
Enable more C++ compiler warnings
2020-12-10 21:03:58 +00:00
chriseth
d0551b67d7
Merge remote-tracking branch 'origin/develop' into breaking
2020-12-10 17:07:56 +01:00
Bhargava Shastry
dc1c0e9d4e
Abiv2 fuzzer: Retrieve values to be encoded from the fuzzer
2020-12-10 16:33:14 +01:00
Bhargava Shastry
3c8caabf2e
Remove unused code
2020-12-10 12:56:04 +01:00
Bhargava Shastry
693548b787
Abiv2 fuzzer: Make integer value generation consistent with range for that integer type
2020-12-10 12:34:14 +01:00
chriseth
482bda6887
Merge remote-tracking branch 'origin/develop' into breaking
2020-12-10 12:15:52 +01:00
Bhargava Shastry
2e3cba996a
Isabelle abiv2 fuzzer: Add type string
2020-12-09 18:10:10 +01:00
chriseth
806453aca9
Merge remote-tracking branch 'origin/develop' into breaking
2020-12-08 21:00:09 +01:00
Alex Beregszaszi
7e88ba8da0
Enable the -Wconversion warning
2020-12-08 16:45:24 +00:00
chriseth
b045195c1e
Merge remote-tracking branch 'origin/develop' into breaking
2020-12-08 17:42:31 +01:00
Bhargava Shastry
fe6543a7c8
Abiv2 isabelle: Add fuzzer test harness skeleton and update CMake
2020-12-08 13:05:23 +01:00
chriseth
329b8f2a60
Merge remote-tracking branch 'origin/develop' into breaking
2020-12-07 13:04:14 +01:00
Bhargava Shastry
32fd692c51
Yul interpreter: Introduce expression evaluation maximum nesting depth
2020-12-04 17:27:03 +01:00
Bhargava Shastry
0d6cae304b
abiv2 proto fuzzer: Move anon namespace utility functions to common source
2020-12-04 15:33:41 +01:00
chriseth
d56a7bb89e
Merge pull request #10489 from ethereum/develop
...
Merge develop into breaking.
2020-12-03 18:11:12 +01:00
Bhargava Shastry
e1b44500dd
Yul interpreter: Smaller execution timeout for tests and additional test cases
2020-12-03 10:08:41 +01:00
chriseth
9a5902f9d7
Merge remote-tracking branch 'origin/develop' into breaking
2020-12-02 12:28:02 +01:00
chriseth
c193ce6c07
Rename SourceReferenceFormatterHuman.
2020-12-01 16:09:46 +01:00
Alex Beregszaszi
1dedba8538
Only use SourceReferenceFormatterHuman
2020-12-01 16:09:46 +01:00
chriseth
8279d90ba2
Merge pull request #10403 from ethereum/rename-asmdata
...
Rename AsmData* to AST*
2020-12-01 14:33:11 +01:00
chriseth
1944d5ce44
Merge pull request #9722 from ethereum/fix-9676
...
Add Solidity test case generator framework
2020-12-01 14:26:12 +01:00
Alex Beregszaszi
9640cfd77e
[ewasm] Add i32.select/i64.select
2020-11-30 11:58:33 +00:00
Alex Beregszaszi
a22077f736
Rename AsmData -> AST
...
Also attempt to only include ASTForward where appropriate.
2020-11-25 17:58:02 +00:00
Bhargava Shastry
864458922a
Add solidity generator
...
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-11-23 22:27:40 +01:00
Alex Beregszaszi
3c7f642227
Change readFile/readFileAsString to throw FileNotFound exception
2020-11-04 16:35:19 +00:00
Alex Beregszaszi
bcd31daf94
[ewasm] Terminate on out-of-bounds access in EwasmInterpreter
2020-10-29 10:26:41 +00:00
Alex Beregszaszi
6b2942e7f0
[ewasm] Properly touch memory in EwasmInterpreter
2020-10-28 11:57:18 +00:00
Alex Beregszaszi
9dc5ceae94
[ewasm] Implement "create" properly in EwasmInterpreter
2020-10-28 11:57:18 +00:00
Alex Beregszaszi
62028c90f0
[ewasm] Overhaul memory handling in EwasmInterpreter
...
Introduce writeMemory and read/writeBytes32/Address helpers.
Fix read/writeU128/U256 to be little-endian.
Update each instruction to follow the specification.
2020-10-28 11:57:18 +00:00
Bhargava Shastry
5023d3decb
ossfuzz: Remove antlr4 build deps
2020-10-15 12:59:18 +02:00
Leonardo Alt
8eba66daf9
Extract boost smt and remove unused tests
2020-09-23 17:55:55 +02:00
Kamil Śliwak
89e696ca1b
Allow using zero in patterns passed to isoltest --test
2020-09-17 17:28:49 +02:00
chriseth
9bcc2f1713
Make ReasoningBasedSimplifier available as step.
2020-09-15 15:57:59 +02:00
chriseth
f73fb726af
Reasoning based optimizer.
2020-09-15 15:57:58 +02:00
Alexander Arlt
23d9b1567e
Add support for ewasm evmc vm.
2020-09-08 12:41:42 -05:00
Bhargava Shastry
6101590d93
ossfuzz: Generate antlr4 runtime deps
2020-08-27 17:33:29 +02:00
chriseth
0226d104b7
Fix literal arguments in interpreter.
2020-08-06 14:16:59 +02:00
chriseth
845c1ae91f
Merge pull request #9469 from ethereum/fix-9468
...
Yul fuzzer: Enable nested object references
2020-07-23 13:26:42 +02:00
chriseth
6bb6783d39
Merge remote-tracking branch 'origin/develop' into breaking
2020-07-22 15:26:44 +02:00
Bhargava Shastry
115380ca76
Yul fuzzer: Enable nested object references
...
Co-authored-by: Đorđe Mijović <djordje.mijovic@gmail.com>
2020-07-22 14:02:41 +02:00
Bhargava Shastry
18fbbfa5ca
Fuzzer: Count step by number of interpreted statements
...
Co-authored-by: chriseth <chris@ethereum.org>
2020-07-21 15:38:02 +02:00
Bhargava Shastry
4067bab7dd
Add corpus based multi source fuzzer
...
Co-authored-by: Leonardo <leo@ethereum.org>
2020-07-21 13:43:29 +02:00
chriseth
9be5ed1220
Merge remote-tracking branch 'origin/develop' into breaking
2020-07-21 11:35:28 +02:00
chriseth
2c7359de1e
Merge pull request #9394 from ethereum/fix-9391
...
Yul interpreter: Return addresses of type u160 for create and create2…
2020-07-20 18:38:43 +02:00
Bhargava Shastry
deffb7ffc8
Yul interpreter: Return addresses of type u160 for create and create2 calls
2020-07-20 11:26:47 +02:00
Sachin Grover
b7adb2aa42
Add SPDX license identifier if not present already in source file
...
Fixes : #9220
2020-07-17 20:24:12 +05:30
chriseth
f945163909
Merge pull request #9432 from ethereum/develop
...
Merge develop into breaking.
2020-07-16 17:14:45 +02:00
Alex Beregszaszi
870ea98c21
Prefix EIP-615 opcodes with EIP615 in Instructions
2020-07-13 17:34:19 +01:00
chriseth
289fc7a9d0
Merge pull request #9371 from ethereum/refactorInterpreter
...
Refactor yul interpreter.
2020-07-13 18:27:47 +02:00
Daniel Kirchner
38c6ecbbe2
Remove finney and szabo denominations.
2020-07-13 18:07:10 +02:00
chriseth
1d666335f8
Merge pull request #9367 from ethereum/wasm-dialect
...
Add ctz and popcnt to WasmDialect
2020-07-13 15:02:34 +02:00
chriseth
8eee3ed3a2
Merge pull request #9388 from ethereum/develop
...
Merge develop into breaking.
2020-07-13 14:55:21 +02:00
Djordje Mijovic
a72b0deea6
Disabling -Wsign-conversion for yul_proto_diff_custom_mutate_ossfuzz target
2020-07-13 14:01:53 +02:00
Alex Beregszaszi
8df4baac42
Implement ctz/popcnt in yulInterpreter
2020-07-13 11:18:10 +01:00
chriseth
b3566ad0d5
Merge pull request #9082 from ethereum/conversionWarnings
...
Adding `-Wsign-conversion` flag and fixing errors
2020-07-13 11:28:09 +02:00
Daniel Kirchner
65ed93d99f
Merge pull request #9366 from ethereum/wasm-clz
...
Fix yulInterpreter to correctly handle i32.clz
2020-07-10 20:36:24 +02:00
Alex Beregszaszi
f5ae9c5761
Fix yulInterpreter to correctly handle i32.clz
2020-07-10 15:38:25 +01:00
Djordje Mijovic
3781ee6349
Removing -Wsign-conversion flag for ossfuzz targets
2020-07-09 17:22:52 +02:00
Djordje Mijovic
547590b972
Fixing additional signedness errors after adding -Wsign-conversion flag
...
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-07-09 17:22:45 +02:00
chriseth
9ef050af9a
Merge pull request #9373 from ethereum/develop
...
Merge develop into breaking.
2020-07-09 16:15:43 +02:00
chriseth
2b94ced65f
Merge pull request #8305 from ethereum/fix-7947
...
yul proto fuzzer: Use custom mutation routines
2020-07-09 15:40:16 +02:00
chriseth
3cf5ed9514
Use plain strings for comparison.
2020-07-09 15:00:13 +02:00
chriseth
ec2393d3b6
Refactor interpreter.
2020-07-09 15:00:13 +02:00
Bhargava Shastry
7272129354
yul fuzzer: Add framework for yul optimizer custom mutation routines
...
Co-authored-by: Leonardo <leo@ethereum.org>
2020-07-09 13:32:07 +02:00
Bhargava Shastry
48ac4b2954
Disable more than one reference to a variable on the LHS of a tuple assignment
2020-07-08 13:16:07 +02:00
chriseth
982a269b2b
Merge pull request #9325 from ethereum/develop
...
Merge develop into breaking.
2020-07-06 19:11:02 +02:00
Alex Beregszaszi
60d4b1e8cc
Rename drop to i64.drop in WasmDialect
...
Also properly implement support for both i32.drop and i64.drop in BinaryTransform, TextTransform, and YulInterpreter
2020-07-06 15:47:17 +01:00
chriseth
ab68406006
Merge remote-tracking branch 'origin/develop' into breaking
2020-07-06 15:25:25 +02:00
chriseth
ea46636ad2
Merge pull request #9281 from ethereum/fix-6772
...
Fuzzer: Add a specialized StackTooDeepError Exception that is caught …
2020-07-01 11:47:35 +02:00
Bhargava Shastry
1a0391bceb
Fuzzer: Add a specialized StackTooDeepError Exception that is caught in the fuzzing harness
2020-07-01 11:08:20 +02:00
Bhargava Shastry
b82590322c
yul proto fuzzer: Remove assertion that no errors/warnings while parsing yul code
2020-06-30 21:46:38 +02:00
chriseth
3e3f9a472f
Merge remote-tracking branch 'origin/develop' into breaking
2020-06-30 18:56:51 +02:00
Bhargava Shastry
d0ea1f97fd
Yul interpreter: Return selfbalance constant for the expression
...
balance(address()) and balance constant otherwise.
2020-06-30 16:59:13 +02:00
Mathias Baumann
02328f3bbb
Add unit denomination `gwei
`
2020-06-24 18:24:56 +02:00
chriseth
af0cd4ab98
Merge pull request #9252 from ethereum/develop
...
Merge develop into breaking.
2020-06-23 18:28:24 +02:00
Bhargava Shastry
0397266351
Implement multi source semantic tests
...
Co-authored-by: chriseth <chris@ethereum.org>
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-06-23 17:29:16 +02:00
chriseth
f97b376f7e
Merge pull request #9040 from ethereum/yulproto-remove-pc
...
ossfuzz: Remove PC from yul proto specification
2020-06-04 10:19:26 +02:00
Djordje Mijovic
4b6c322279
Fixing various signedness warnings
2020-06-03 10:37:18 +02:00
Djordje Mijovic
1ee6c49028
Adding fixes for signedness warnings in test/tools/yulInterpreter
2020-06-02 16:35:41 +02:00
Bhargava Shastry
61431d2c59
ossfuzz: Remove PC from yul proto specification
2020-05-28 10:09:38 +02:00
Bhargava Shastry
596ac018f5
Fuzzer: Add test harness for solidity inheritance protobuf fuzzer
...
Co-Authored-By: Leonardo <leo@ethereum.org>
2020-05-11 23:56:27 +02:00
Bhargava Shastry
00946f3ea0
ossfuzz: Add sol proto fuzzer skeleton
...
Co-Authored-By: Leonardo <leo@ethereum.org>
2020-05-11 23:56:27 +02:00