Kamil Śliwak
4e4f46cde5
cmdlineTests: Allow tests with no input file
2021-04-13 13:37:12 +02:00
Kamil Śliwak
cc65b426d0
Merge pull request #11237 from ethereum/fix-wrong-exit-code-update-in-cmdline-tests
...
Fix exit code update in cmdlineTests
2021-04-13 13:34:57 +02:00
Kamil Śliwak
6a41b417a3
FileReader: Store files loaded by the callback under their source unit name
2021-04-13 13:25:59 +02:00
Kamil Śliwak
b9b483a0c3
cmdlineTests.sh: Make regex for stripping version from test output match even if there's no whitespace after colon
2021-04-13 13:25:32 +02:00
chriseth
0289994da5
Merge pull request #11221 from ethereum/fixCalldataDecodingOverflowBug
...
Fix calldata decoding overflow bug
2021-04-12 18:11:29 +02:00
chriseth
4912bfe639
Merge pull request #11229 from ethereum/antlrPath
...
Fix import paths in grammar and grammar testing details.
2021-04-12 16:30:41 +02:00
Daniel Kirchner
6fdfd8b62b
Fix import path grammar and grammar testing details.
2021-04-12 14:54:36 +02:00
chriseth
2ed17e4b43
Update tests.
2021-04-12 13:43:56 +02:00
chriseth
72d0a56a72
Fix array decoding offset overflow.
2021-04-12 13:43:51 +02:00
chriseth
32b8332867
Refactor array decoding.
2021-04-12 13:43:51 +02:00
Bhargava Shastry
033ee0e2bc
Permit Yul interpreter vs Evmone storage comparison.
2021-04-12 10:39:23 +02:00
hrkrshnn
382c488edd
Fix missing error when events are used without an emit statement.
...
Whenever there was a proper invocation of events, the compiler assumed that all the subsequent
invocations were proper.
2021-04-12 10:23:05 +02:00
Kamil Śliwak
7d37e37d95
cmdlineTests.sh: Fix error code update using the wrong value
2021-04-10 22:58:49 +02:00
Leonardo Alt
8a7e94c06f
Keep pragma in smoke test for bytecode compare script
2021-04-08 21:03:39 +02:00
Leonardo Alt
ad10bee8f0
update command line tests
2021-04-08 21:03:39 +02:00
Leonardo Alt
0a4afa71bd
Update old tests
2021-04-08 21:03:39 +02:00
Leonardo Alt
d617ef461e
Add new tests
2021-04-08 21:03:38 +02:00
chriseth
0cc0cabd30
Merge pull request #11224 from ethereum/lastAllocationUnbounded
...
Use unbounded allocation before returning.
2021-04-08 19:32:40 +02:00
Daniel Kirchner
96c8123b6b
Use unbounded allocation before returning.
2021-04-08 18:37:24 +02:00
hrkrshnn
e96a161115
Tests and changelog
2021-04-08 17:06:24 +02:00
chriseth
2856f56525
Merge pull request #10942 from ethereum/returnSlotAllocation
...
Delayed return slot allocation.
2021-04-08 16:42:07 +02:00
chriseth
f04adde664
Allow hex string literals in Yul.
2021-04-08 15:03:33 +02:00
chriseth
6d6112a81b
Merge pull request #11210 from anurag-git/issue_10738-2
...
Use range-v3 loops(transform)
2021-04-08 14:56:15 +02:00
anurag4u80
b2ca7916aa
Replaced boost::adaptors::transformed
2021-04-08 17:38:14 +05:30
Harikrishnan Mulackal
c060bd5633
Merge pull request #11211 from ethereum/someTests
...
Add some bytecode reference tests.
2021-04-08 09:29:51 +02:00
Christian Parpart
a5cae64a48
Merge pull request #11113 from ethereum/filereader
...
Extracts import file reading & remapping logic out of CommandLineInterface into their own classes.
2021-04-06 22:38:19 +02:00
chriseth
47728a083f
Add some bytecode reference tests.
2021-04-06 16:25:02 +02:00
Christian Parpart
3490577140
Extract import-file remapping logic out of CompilerStack into ImportRemapper.
2021-04-06 14:28:53 +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
Daniel Kirchner
6fc4b04d1d
Update test expectations.
2021-04-06 13:41:26 +02:00
Daniel Kirchner
4b0f8383a6
Reuse function argument slots and defer allocation of return variable slots in EVMCodeTransform.
2021-04-06 13:38:05 +02:00
Daniel Kirchner
04a051d380
Add test cases for return slot allocation.
2021-04-06 13:31:22 +02:00
chriseth
98a8640928
Merge pull request #11203 from anurag-git/issue_10738-1
...
Use range-v3 loops (reverse, keys, values)
2021-04-01 12:19:40 +02:00
anurag4u80
bbcdddeed9
Replaced keys, values and reverse with ranges
2021-03-31 23:33:04 +05:30
Djordje Mijovic
aeba059192
Fixing auto update for macos.
2021-03-31 16:51:01 +02:00
Martin Blicha
330fb8f4d0
[SMTChecker] Assignment refactoring
2021-03-31 13:36:50 +02:00
Leonardo
78d94737a4
Merge pull request #11188 from blishko/issue-11181
...
[SMTChecker] Fix crash when analysing try-catch clauses with function call.
2021-03-31 11:24:36 +02:00
Mathias Baumann
e590a99f39
Detect circular references for library and free functions
2021-03-30 23:06:30 +02:00
chriseth
79d7466e19
NatSpec for errors.
2021-03-30 21:16:58 +02:00
chriseth
517cd17a6f
Add errors to the ABI.
2021-03-30 21:16:58 +02:00
chriseth
e877e2bba7
Use all referenced errors.
2021-03-30 21:15:46 +02:00
chriseth
1057fd5355
Take revert statement into account in control flow graph.
2021-03-30 21:15:46 +02:00
chriseth
d5669696d5
Code generation for errors.
2021-03-30 21:15:46 +02:00
chriseth
fb67051467
Revert statement.
2021-03-30 21:15:46 +02:00
chriseth
b04b189959
Syntax for custom errors.
2021-03-30 21:15:18 +02:00
Martin Blicha
2d231f1859
[SMTChecker] Changed SMTEncoder::mergeVariables to work regardless which branch has been visited first
2021-03-30 20:35:44 +02:00
Leonardo Alt
ba97d6ac4e
Add local vars to cex
2021-03-30 17:55:21 +02:00
Leonardo Alt
dbd067d6db
Report out of bounds index access
2021-03-30 10:28:48 +02:00
chriseth
bb49bc5892
Merge pull request #10418 from ethereum/function-specializer
...
Function specializer
2021-03-29 15:48:01 +02:00
hrkrshnn
0100f48e05
FunctionSpecializer: skip specializing recursive functions
...
This avoids potential pathological behaviour, like in Ackermann function.
2021-03-29 11:02:31 +02:00
hrkrshnn
2c75d1dfe4
Isoltest gas update for FunctionSpecializer
2021-03-29 11:02:31 +02:00
hrkrshnn
09998ceb0c
Tests for FunctionSpecializer
2021-03-29 11:02:18 +02:00
Bhargava Shastry
f3f1ccc34f
Fix false positive caused by early termination due to nested expressions.
2021-03-26 13:35:57 +01:00
Đorđe Mijović
d75a132f33
Merge pull request #11166 from ethereum/cmdLineTestsDevVersionFix
2021-03-25 19:06:26 +01:00
Djordje Mijovic
08993a3282
Enabling running cmd line tests on currently unreleased version.
...
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2021-03-25 17:11:31 +01:00
Martin Blicha
85358dfe30
[SMTChecker] Do not create targets for contracts that cannot be deployed
2021-03-25 15:38:37 +01:00
Leonardo
7e1be52281
Merge pull request #11165 from blishko/smt-abi-no-args
...
[SMTChecker] Fix ICE on ABI functions with no arguments
2021-03-25 15:21:57 +01:00
Alex Beregszaszi
e071884bbf
Show proper error for misusing the custom natspec tag
2021-03-25 12:45:37 +00:00
Martin Blicha
5293f05ee3
[SMTChecker] Fix ICE on ABI functions with no arguments
2021-03-25 13:28:29 +01:00
Alex Beregszaszi
7a7ff7af2f
Add one more test for invalid custom tag
2021-03-25 12:24:18 +00:00
chriseth
6eac77aea2
Merge pull request #11107 from ethereum/extendedLowlevelInliner
...
Inline ordinary jumps to small blocks and jumps to terminating control flow.
2021-03-24 18:06:15 +01:00
Martin Blicha
98446782e2
[SMTChecker] Fix compound assignment to push
2021-03-24 14:54:13 +01:00
Leonardo
13d3b35141
Merge pull request #11116 from blishko/issue-10985
...
[SMTChecker] Handle InaccessibleDynamicType
2021-03-24 14:39:24 +01:00
hrkrshnn
4fbf5a3f12
Added few more tests for low level inliner.
2021-03-24 13:50:24 +01:00
Daniel Kirchner
8b3095920a
Inline ordinary jumps to small blocks and jumps to terminating control flow.
2021-03-24 13:50:24 +01:00
Martin Blicha
852e877ae7
[SMTChecker] Handle InaccessibleDynamicType
2021-03-24 11:53:06 +01:00
Djordje Mijovic
d0a854b312
Adding semantic tests for bytes.concat.
2021-03-24 11:49:21 +01:00
Djordje Mijovic
e7da9f3d52
Adding syntax tests for bytes.concat.
2021-03-24 11:49:21 +01:00
chriseth
d15ba987d1
Fix AST output if modifier invocation is base constructor call.
2021-03-24 11:24:26 +01:00
Leonardo
70c1720903
Merge pull request #11129 from blishko/smt-ci-tests
...
Run SMTChecker tests for all EVM versions
2021-03-24 10:31:44 +01:00
chriseth
e3ea5c631e
Merge pull request #11136 from ethereum/refactor-typepointer
...
Replace `TypePointer` with `Type const*`
2021-03-23 18:32:38 +01:00
Bhargava Shastry
f9182e9f88
Minor changes to Solidity compilation framework fuzzer.
2021-03-23 13:17:41 +01:00
Martin Blicha
145a03bdd6
Run SMTChecker tests on all EVM versions
2021-03-23 12:51:52 +01:00
Mathias Baumann
e197ebbdd1
Replace TypePointer
with Type const*
2021-03-23 11:47:19 +01:00
hrkrshnn
30e08ee3a5
Changelog and test for the KeccakCaching bug
2021-03-23 11:09:00 +01:00
Mathias Baumann
bccedf791b
Add creationCode/runtimeCode contract creation detection to call graph
2021-03-22 15:44:23 +01:00
chriseth
baf2ff2a6e
Proof.
2021-03-18 08:42:49 +01:00
chriseth
2c8540b1f9
Yul optimizer test updates.
2021-03-18 08:42:49 +01:00
chriseth
7aa51bcb40
Test updates.
2021-03-18 08:42:49 +01:00
Leonardo
25b31111df
Merge pull request #11040 from ethereum/smt_fix_virtual_one_more_time
...
[SMTChecker] Fix bug in virtual functions called by constructor
2021-03-17 16:54:36 +01:00
hrkrshnn
6d9e9e1b1e
Fix small bug in GasMeter calculation in creation context
...
Old calculation did not ignore `optimize-runs` parameter, when creation code gas computations were
done. This would lead to expanding values such as `shl(180, 1)` inside constructor code, even for
the default value for `--optimize-runs`, i.e., 200.
2021-03-17 12:33:10 +01:00
Harikrishnan Mulackal
35da404ca9
Merge pull request #11091 from ethereum/modifierInvocationAST
...
Add "kind" field to ModifierInvocation AST json element.
2021-03-16 19:44:40 +01:00
chriseth
0519473059
Add "kind" field to ModifierInvocation AST json element.
2021-03-16 18:50:37 +01:00
Martin Blicha
432944d0b4
[SMTChecker] Small refactoring of defining SMT expressions for structs/tuples
2021-03-16 15:34:43 +01:00
Alex Beregszaszi
7fd1a3132d
Merge pull request #11098 from ethereum/isoltest-yes
...
isoltest: add --accept-updates option
2021-03-15 19:10:02 +00:00
Kamil Śliwak
5376a3deb6
Merge pull request #10879 from ethereum/silence-remaining-shellcheck-warnings-and-remove-ignore-list
...
Silence remaining shellcheck warnings and remove ignore list
2021-03-15 19:58:42 +01:00
Alex Beregszaszi
1c176cc1ee
isoltest: add --accept-updates option
2021-03-15 14:31:01 +00:00
Martin Blicha
2f52affcc2
[SMTChecker] Correctly resolve current scope contract in VariableUsage.
2021-03-15 13:55:14 +01:00
Kamil Śliwak
8e44b59251
Disable shellcheck in the remaining situations where it's either wrong or the problem is not worth fixing
2021-03-15 12:16:43 +01:00
Kamil Śliwak
7929175db6
Add shellcheck source directive in places where it can't find sourced files on its own
2021-03-15 12:16:43 +01:00
Martin Blicha
6aa6c5f5f9
[SMTChecker] Reset reference variables on assignment to a variable of reference type
2021-03-12 19:51:31 +01:00
Leonardo Alt
998346e599
Fix bug in virtual functions called by constructor.
2021-03-12 16:42:28 +01:00
Martin Blicha
0cb75293f9
[SMTChecker] fix handling of assignments of array/mapping state variable accessed using contract name
2021-03-12 14:01:07 +01:00
Daniel Kirchner
1265b39904
Merge pull request #11095 from ethereum/fixGcc8
...
Fix compilation error with GCC 8.
2021-03-12 13:25:25 +01:00
Daniel Kirchner
6d19a25705
Fix compilation error with GCC 8.
2021-03-12 12:28:18 +01:00
Bhargava Shastry
788eb02825
EVMHost: Use std::map for storage so that slots are stored in some order.
2021-03-12 09:39:15 +01:00
Leonardo Alt
6fd76e830d
Fix CHC cex order
2021-03-11 10:36:40 +01:00
Bhargava Shastry
a30b071a5d
Update test/EVMHost.cpp
...
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2021-03-10 18:10:20 +01: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
chriseth
89946b15d2
Merge pull request #10863 from ethereum/isoltestGasCosts
...
[isoltest] Add gas costs to function call expectations
2021-03-10 15:11:20 +01:00
Djordje Mijovic
b73e9f3eef
Update tests.
2021-03-10 14:22:30 +01:00
Djordje Mijovic
63017bd510
Not showing gas used if it is equal to m_gas(in case of out of gas failures).
2021-03-10 14:22:30 +01:00
Djordje Mijovic
06171a3100
Changing enforceGasCost functionality.
2021-03-10 14:22:26 +01:00
Djordje Mijovic
2b14efbbcc
Adding debug info on gas costs when updating gas values.
...
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2021-03-09 21:48:11 +01:00
Djordje Mijovic
14a3731182
Don't run gas for ir if it is not explicitely added to expectations.
2021-03-09 21:27:44 +01:00
Djordje Mijovic
2c575db0ea
Show both expected and obtained gas expectations when failure happens.
2021-03-09 21:27:38 +01:00
Djordje Mijovic
12ef273d06
Setting metadata has and version type for semantic tests to be empty.
2021-03-09 21:26:45 +01:00
Djordje Mijovic
cf59d7fc13
Making order of gas expectations deterministic.
2021-03-09 21:26:45 +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
Djordje Mijovic
515f15f7a3
Small style fix for SemanticTest constructor.
2021-03-09 21:26:45 +01:00
Djordje Mijovic
5ea97a5d43
Running gas tests only on tests having expectations.
2021-03-09 21:26:45 +01:00
Djordje Mijovic
6d51dfb617
[isoltest] Adding gas used as semantic tests expectation.
2021-03-09 21:26:36 +01:00
Martin Blicha
4285c2803b
[SMTChecker] Fix ICE on array.pop nested inside 1-tuple
2021-03-09 20:00:51 +01:00
chriseth
ad5d34df74
Merge pull request #11071 from ethereum/fixCRInSourceRefFor
...
Fix handling of carriage return.
2021-03-09 17:52:34 +01:00
Leonardo
5677df86af
Merge pull request #11069 from blishko/smt-array-slice-fix
...
[SMTChecker] Use same sort name for array slice as for the underlying array
2021-03-09 16:39:12 +01:00
Daniel Kirchner
a75424eec4
Drop support for evm15 and eip-615.
2021-03-09 15:56:03 +01:00
chriseth
5c2cd8d553
Merge pull request #11073 from ethereum/extractStackReuseTests
...
Extract StackReuseCodegen tests.
2021-03-09 15:52:23 +01:00
Daniel Kirchner
e99da7e015
Extract StackReuseCodegen tests.
2021-03-09 15:47:24 +01:00
chriseth
eb85a4414c
Fix handling of carriage return.
2021-03-09 15:33:12 +01:00
chriseth
40c27ccc22
Move AND with constant inside OR.
2021-03-09 15:26:19 +01:00
Martin Blicha
5af01f6896
[SMTChecker] Use same sort name for array slice as for the underlying array.
2021-03-09 11:06:22 +01:00
Martin Blicha
385a664f3c
[SMTChecker] Fix public getter for array of structs.
2021-03-08 17:34:20 +01:00
Kamil Śliwak
093ea4612b
Merge pull request #10586 from ethereum/shellcheck-fixes-part1
...
Fixes for shellcheck warnings, part 1
2021-03-05 17:13:46 +01:00
Daniel Kirchner
acd3084076
Fuzzer for stack optimiser/code generator.
2021-03-04 17:35:56 +01:00
Bhargava Shastry
ca267e50d3
Merge pull request #11053 from ethereum/protoConverter-opcode-filter-flag
...
Proto yul converter: Provide a flag to filter stateful instructions.
2021-03-04 17:31:52 +01:00
Kamil Śliwak
c8fc241be5
Avoid using $? in conditions and do && exit 1 instead if !
2021-03-04 16:57:25 +01:00
Kamil Śliwak
e8a70e8e4b
Prefix globs with ./ or use -- to make commands safe with files named like command-line options
2021-03-04 16:57:25 +01:00
Kamil Śliwak
a05f3a608d
Don't use $ on variables inside (())
2021-03-04 16:53:05 +01:00
Kamil Śliwak
2784135c37
Use read with the -r option
2021-03-04 16:53:05 +01:00
Kamil Śliwak
75b87d159d
Declare variables separately when assigning the result of $()
2021-03-04 16:53:05 +01:00
Kamil Śliwak
4c186321c8
Replace some older shell syntax with newer and/or more reliable equivalents
2021-03-04 16:53:05 +01:00
Leonardo
d42d0faf41
Merge pull request #11052 from blishko/issue-10986
...
[SMTChecker] Correct handling of FixedBytes constants initialized with string literal
2021-03-04 16:51:22 +01:00
Bhargava Shastry
a34308e4cb
Proto yul converter: Provide a flag to filter stateful instructions.
2021-03-04 15:20:19 +01:00
Martin Blicha
0340510c53
[SMTChecker] correct handling of FixedBytes constants initialized with string literal
2021-03-04 15:14:47 +01:00
Alexander Arlt
94895822d2
[isoltest] Add support for builtin functions.
2021-03-04 08:49:59 -05:00
Martin Blicha
9e81c81560
[SMTChecker] updated tests
2021-03-03 17:11:42 +01:00
chriseth
d2023f5f95
Check for invalid tags.
2021-03-02 16:53:31 +01:00
chriseth
5690020d88
Allow custom natspec tags.
2021-03-02 16:13:28 +01:00
chriseth
2a25d04896
Merge pull request #11023 from ethereum/natspecparsinglocations
...
Provide locations for docstring parsing errors.
2021-03-02 14:03:42 +01:00
chriseth
ce5c5970d6
Merge pull request #11015 from ethereum/fixSelectorForInternal
...
[Sol->Yul] Provide selector for some internal functions.
2021-03-02 12:24:53 +01:00
Bhargava Shastry
e96a3e01f8
EVMHost: Add function to print storage at all addresses in the host.
2021-03-01 20:00:55 +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
chriseth
f4050e81c6
Provide locations for docstring parsing errors.
2021-03-01 17:34:25 +01:00
chriseth
5e94fce7df
Provide selector for some internal functions.
2021-03-01 16:19:59 +01:00
Kamil Śliwak
186d14d97f
FunctionCallGraph: Tests for constants, immutables and accessing function selectors
2021-02-25 16:00:53 +01:00
chriseth
eacf7c1cf9
Merge pull request #11009 from ethereum/properlyParseAddressMember
...
Properly parse address member.
2021-02-24 17:12:00 +01:00
chriseth
3d97e9a77b
Properly parse address member.
2021-02-24 16:44:16 +01:00
chriseth
5e9637bc39
Mapping access with multi-slot keys.
2021-02-24 13:44:23 +01:00