Commit Graph

591 Commits

Author SHA1 Message Date
Joshua Quinones
e1a59397c6 Renamed AssemblyStack to YulStack
All files, references, variables, comments, etc. were renamed to YulStack.
2022-04-08 20:28:55 +02:00
Kamil Śliwak
b3048ccf07 Use EXIT_FAILURE and EXIT_SUCCESS constants in exit() and when returning from main() 2022-04-06 22:27:08 +02:00
Kamil Śliwak
cf6704ae06 isoltest: Do not return an error code from --help 2022-04-06 22:26:21 +02:00
Kamil Śliwak
ed8403f456 isoltest: Handle parsing errors differently from unexpected exceptions 2022-04-06 22:26:21 +02:00
Bhargava Shastry
e0d9dec874 Permit control flow mutations in global scope of a Yul program. 2022-03-14 15:04:32 +01:00
Daniel Kirchner
ce0a3e93f2 Store whether an evmasm Assembly is creation code. 2022-03-09 17:42:29 +01:00
chriseth
77c40cd2af
Merge pull request #12740 from ethereum/remove-locale-dependent-operations
Replace all locale-dependent operations with locale-agnostic counterparts
2022-03-07 17:56:58 +01:00
wechman
52dfccca98 Replace all locale-dependent operations with locale-agnostic counterparts 2022-03-07 17:23:08 +01:00
Daniel Kirchner
6b6e163be5 Tests. 2022-03-02 16:42:28 +01:00
Marenz
46075d04d9 Include used events in `--hashes` output 2022-02-09 13:50:42 +01:00
Marenz
3e7c68d9b0 Merge identifier query methods into one 2022-02-08 17:44:21 +01:00
Bhargava Shastry
4bcd69e7bd Code transform fuzzer: Only test against latest EVM version. 2022-01-27 14:49:44 +01:00
Bhargava Shastry
cfda0e41ce Filter log statements and remove gas comparison. 2022-01-26 15:58:12 +01:00
chriseth
679f73c1e0
Merge pull request #12276 from ethereum/fuzz-RSE
Yul interpreter: Changes required before merging Redundant store eliminator
2022-01-05 11:23:51 +01:00
chriseth
6dbe0d0933
Merge pull request #12436 from ethereum/testBatcher
Test batcher.
2022-01-04 16:21:56 +01:00
Bhargava Shastry
b8ad2b2718 Yul interpreter: Add flag to disable memory tracing and dump for fuzzing.
Model revert in yul interpreter.
Add logTrace for a few more instructions and clear trace on revert.
2022-01-04 11:56:27 +01:00
Bhargava Shastry
259a98b82c Impose stricter upper bound on memory accesses in order to prevent overflow/wrap around. 2022-01-03 18:22:42 +01:00
chriseth
2a7f26e2c0 Test batcher. 2021-12-30 15:02:05 +01:00
nishant-sachdeva
bd819c87fa added warning if isoltest gas-cost-expectations are not enforced 2021-12-30 18:51:55 +05:30
Daniel Kirchner
95c973d6c2 Refactoring of optimiser suite and yulopti. 2021-11-03 19:33:01 +01:00
Daniel Kirchner
0cbb297c7b Non-interactive mode for yulopti. 2021-11-03 19:33:01 +01:00
Kamil Śliwak
a039431627 isoltest: Do not try to enforce gas costs when ABIEncoderV1 is used 2021-10-27 18:56:45 +02:00
Kamil Śliwak
eb2425bd7c isoltest: Fix gas tests always being enforced regardless of evm version 2021-10-27 18:56:45 +02:00
Leo Alt
2cbd496576 Adjust ModelCheckerSettings in tools tests 2021-10-26 11:30:30 +02:00
chriseth
9417d6775f Control flow side-effects for user-defined functions. 2021-10-14 17:46:07 +02:00
Kamil Śliwak
bcfefc79d9 Pass DebugInfoSelection down to the code handling assembly printing 2021-10-11 20:34:48 +02:00
Kamil Śliwak
2cd1c644b6 Remove unused includes and sort existing includes in a few places 2021-10-11 20:34:48 +02:00
Kamil Śliwak
a30348715b Use boost::current_exception_diagnostic_information() to print extra info about exceptions caught by (...) 2021-10-07 17:41:25 +02:00
Kamil Śliwak
7f7107405f Try out the new assertion macro variants with less arguments 2021-10-04 12:05:00 +02:00
chriseth
1531863835 Split Common.h into Numeric.h. 2021-09-23 15:27:29 +02:00
hawkess
4fd5093d94 Removed pointer to external editor resource in IsolTestOptions, changed TestTool::handleResponse() to get editor value from m_options member variable 2021-09-21 14:12:26 -05:00
Sean Hawkes
a875d1225a Explicity set default values for program options based on initialized values from constructor 2021-09-20 08:34:28 -05:00
Sean Hawkes
f2e59923ab Added call to CommonOptions base class validate method to derived IsolTestOptions validate method to validate against both common and extended options 2021-09-18 06:59:37 -05:00
Sean Hawkes
76fa00abed Added invocation of base class addOptions in derived to populate list with common and derived options, fixed errors with editor member variable type mismatch 2021-09-18 06:22:27 -05:00
Sean Hawkes
ae7c617711 Added call to addOptions virtual helper in CommonOptions::parse to add options from base/derived classes, modified interface of IsolTestOptions to include editor member variable set based on provided parameter in constructor as it is now needed by addOptions helper function 2021-09-18 05:43:09 -05:00
Sean Hawkes
f47e918caa Moved program_options add_options to a helper function to allow defaults to be set by derived class constructor before immutable options are created by parent 2021-09-18 04:55:50 -05:00
Leo Alt
e72fa7fc10 Add new info severity 2021-09-13 22:48:22 +02:00
Daniel Kirchner
f881409ea4 Stack layout generator for new code generation. 2021-09-02 17:47:19 +02:00
benldrmn
58e4cc62e0 Increase use of C++ constexpr constant expressions in code base as described in issue #7720 2021-08-31 15:03:59 +02:00
chriseth
90c4623460 Some more base fees. 2021-08-12 16:37:21 +02:00
hrkrshnn
543ccf5287 Added the basefee instruction in YulInterpreter 2021-08-09 16:18:08 +02:00
Leo Alt
08c065ee04 Add option divModWithSlacks 2021-08-06 15:50:25 +02:00
Leo Alt
685d7a8c99 Bundle all unproved targets in a single message and only show all if setting chooses that 2021-08-04 13:54:50 +02:00
Christian Parpart
6294aa871a Simplify AsmParser::parse(.) usage 2021-08-03 15:43:17 +02:00
chriseth
ffc5cfd9a5 Remove scanner from compiler stack. 2021-08-03 15:43:17 +02:00
Leo Alt
6c8ecfa82c Add option to choose solver 2021-07-27 17:14:21 +02:00
Daniel Kirchner
f3707f2ab0 Control flow graph for Yul. 2021-07-15 15:24:12 +02:00
chriseth
f75b55071e Remove CharStream from SourceLocation. 2021-07-14 15:12:07 +02:00
chriseth
09578e7e22
Merge pull request #11550 from ethereum/runs-constant
Constant for default --runs
2021-07-06 10:44:07 +02:00
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