Daniel Kirchner
e93ad30e43
Remove obsolete enforce-via-yul logic and CI run.
2022-05-19 20:23:28 +02:00
nishant-sachdeva
7ff4cab0b9
issue has already been fixed. Adding test cases for confirmation
2022-05-19 15:36:59 +05:30
Matheus Aguiar
33ea6a679d
Fixed bug that added a superfluous empty slot for data when encoding an empty string coming from storage.
...
Added tests covering empty string, uninitialized string, emptry string literal, byte arrays and explicit call to `abi.encode`.
2022-05-18 14:50:26 -03:00
Marenz
0234e2aa6b
lsp.py: Fix broken console reading
2022-05-18 14:54:19 +02:00
Marenz
ca3af4b2a2
LSP: Implement semantic tokens
2022-05-18 14:54:16 +02:00
Kamil Śliwak
1164d1b4dd
Switch ENS external test to master branch
2022-05-17 13:02:12 +02:00
Kamil Śliwak
27e5afa23d
Patch external tests for the override data alignment issue until our patches are accepted upstream
2022-05-17 13:02:12 +02:00
chriseth
dfa0bcf760
More strict override check for data locations.
2022-05-17 13:02:12 +02:00
Kamil Śliwak
adf3eaac9b
gnosis: Update upstream repo URL
2022-05-17 10:57:21 +02:00
Kamil Śliwak
c57bc47060
gnosis: Disable newly added tests broken due to Hardhat heuristics
2022-05-17 10:57:21 +02:00
Kamil Śliwak
91177d74ee
perpetual-pools: Remove the ethers@5.6.1 workaround
2022-05-16 20:52:53 +02:00
Kamil Śliwak
e9f1bd00cc
gnosis: Workaround for problems caused by forcing ethers@5.6.1 in external tests
2022-05-16 20:52:30 +02:00
Kamil Śliwak
3bfb79df0c
gnosis: Workaround for getStorageAt() bug in Hardhat 2.9.5
2022-05-13 19:05:21 +02:00
Daniel Kirchner
12ee9aed50
Merge pull request #13013 from ethereum/revert-disallow-returndatacopy-in-pure-functions
...
Revert "Disallow RETURNDATASIZE and RETURNDATACOPY in inline assembly blocks in pure functions"
2022-05-13 18:52:37 +02:00
Leo Alt
6a126f6ccb
Update tests and hashes for z3 4.8.17
2022-05-13 15:25:10 +02:00
Matheus Aguiar
35661479b6
Revert "Disallow RETURNDATASIZE and RETURNDATACOPY in inline assembly blocks in pure functions"
...
This reverts commit f567eb1fb2
.
Correcting Bugfixes section of Changelog.
2022-05-13 08:35:21 -03:00
Daniel Kirchner
aafda389ea
Merge pull request #12907 from ethereum/calldataReencodeValidationBug
...
Calldatasize-check during ABI encoding from calldata values with nested dynamic arrays.
2022-05-12 17:56:44 +02:00
Daniel Kirchner
352a3c5f4b
Bug list entry, changelog entry and tests.
2022-05-12 13:08:30 +02:00
Leo Alt
cbaba6f913
update tests
2022-05-11 20:02:31 +02:00
Daniel Kirchner
d3a837b340
Bugfix.
2022-05-11 18:17:47 +02:00
Daniel Kirchner
d92ed3fd29
Test case for the buggy behaviour.
2022-05-11 18:17:47 +02:00
Daniel Kirchner
cbf9a4f1ed
Add bogus return to switch.
2022-05-11 13:58:06 +02:00
Kamil Śliwak
0e0d1972f9
Disable non-deterministic counterexamples in some SMT tests
...
- The counterexamples sometimes do appear and the tests fail.
2022-05-10 12:48:01 +02:00
Marenz
893122eb89
lsp.py: Support subdirectories
2022-05-09 14:54:55 +02:00
Marenz
02dfeb5427
lsp.py: Trigger fatal error when importing outside of test dir
2022-05-09 14:22:23 +02:00
Christian Parpart
e8d07772d9
lsp.py: Port to support running on Windows & adapt to changes due to prior merged PR.
...
- lsp.py: Fixes invalid-syntax by Python interpreter on Windows CI (older Python version).
- lsp.py: Savely strip CRLF from right side of the string, ignoring accidental multiple occurrences of \r (such as \r\r\n).
- lsp.py: Fixes reading single character from stdin (wrt. Windows platform).
- lsp.py: Adds header line reading to I/O tracing (useful for debugging).
- lsp.py: When running the tests on Windows, don't care test file content's newlines but simply expect LFs (instead of CRLF for example).
- Apply pylint notes.
- Fixing use of @functools.lru_cache for older python versions (CircleCI Windows)
2022-05-09 11:37:11 +02:00
Christian Parpart
c2f245b40a
Fixes to lsp.py with respect to Windows drive-letter paths in URI.
2022-05-09 11:37:11 +02:00
hrkrshnn
5ae17c8e65
Recommend via-ir
whenever a stack too deep error is encountered.
2022-05-05 19:22:03 +02:00
Leo Alt
201c6c6819
fix smt flaky test
2022-05-05 11:38:16 +02:00
Leo Alt
cba3d18f66
adjust for osx nondeterminism
2022-05-04 19:04:54 +02:00
Leo Alt
4fd7de36f1
update smt tests z3 4.8.16
2022-05-03 14:23:27 +02:00
chriseth
df29ea72f0
Merge pull request #12836 from ethereum/fixUsingGlobal
...
Fix using global with libraries.
2022-05-02 12:41:34 +02:00
chriseth
505fa7763f
Fix checks for "using for ... global" for libraries.
2022-05-02 12:40:56 +02:00
Alexey Shekhirin
cb24e5d545
fix(parser): error for unexpected token
2022-04-29 16:13:04 +04:00
chriseth
d55b84ff63
Merge pull request #12861 from ethereum/disallow-returndatacopy-in-pure-functions
...
Disallow RETURNDATACOPY and RETURNDATASIZE in inline assembly in pure functions
2022-04-28 13:15:04 +02:00
Christian Parpart
fbecdbe76d
Merge pull request #12798 from ethereum/lsp-tests-expectations
...
LSP.py: Implement expectations directly in the test files
2022-04-25 15:27:57 +02:00
Kamil Śliwak
8e085432bb
External test for Brink
2022-04-13 13:43:48 +02:00
Kamil Śliwak
e30d0a6199
externalTests: Allow adding extra settings to presets
2022-04-13 13:43:48 +02:00
Marenz
afd9feead4
LSP.py: Implement simple send/respond framework
2022-04-13 13:22:05 +02:00
Leo Alt
f9fa76c9d3
smt encode call
2022-04-11 12:19:41 +02:00
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
f567eb1fb2
Disallow RETURNDATASIZE and RETURNDATACOPY in inline assembly blocks in pure functions
2022-04-08 14:48:35 +02:00
Kamil Śliwak
fb7c969ce8
Tests for assembly instructions allowed with mutable/view/pure functions
2022-04-08 14:47:32 +02:00
Christian Parpart
e74f03056c
Merge pull request #12283 from ethereum/soltest-graceful-error-handling
...
Graceful error handling in soltest/isoltest + improved soltestAssert()
2022-04-07 13:12:43 +02:00
Daniel Kirchner
52f5ffd876
Merge pull request #12804 from ethereum/benchmark-differ
...
Benchmark differ
2022-04-07 09:24:01 +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
7c83559881
soltest: Handle CLI validation errors gracefully
2022-04-06 22:26:21 +02:00
Kamil Śliwak
cf6704ae06
isoltest: Do not return an error code from --help
2022-04-06 22:26:21 +02:00
Kamil Śliwak
7bace8d25d
soltest: Don't assume that parse() can never return false
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
Kamil Śliwak
0bb885dab2
Bring soltestAssert() up to date with solAssert()
...
- Allow omitting description.
- Provide a default description.
- Use a custom exception type derived from util::Exception rather than std::exception.
2022-04-06 22:26:10 +02:00
Daniel Kirchner
c71d0aec83
Merge pull request #12898 from ethereum/via-ir-equivalence-tests
...
Create split_on_empty_lines_into_numbered_files function in scripts/common.sh
2022-04-06 13:16:24 +02:00
wechman
4d8a34370e
Create split_on_empty_lines_into_numbered_files function in scripts/common.sh
2022-04-06 07:26:18 +02:00
Ryan
3a17274691
Improve error message for static array with size too large
2022-04-05 17:36:37 +02:00
Kamil Śliwak
8c9856c52c
benchmark_diff: Add table mode with support for json, console and markdown output
2022-04-05 15:43:18 +02:00
Kamil Śliwak
ee5e878ad7
benchmark_diff: A Python script for diffing summarized benchmarks from external tests
2022-04-05 15:40:28 +02:00
Damian Wechman
d0bd365d2c
Merge pull request #12179 from akali/pretty-json
...
Set handlers use unified jsonPrint with prettifier if needed
2022-04-05 07:05:53 +02:00
Daniel Kirchner
fd763fa6ad
Merge pull request #12851 from ethereum/via-ir-equivalence-tests
...
Tests for the equivalence of one and two-stage compilation via IR ports multi-file contracts
2022-04-04 20:19:27 +02:00
Aisultan Kali
96376264e8
Set handlers use unified jsonPrint with prettifier if needed
2022-04-04 20:17:11 +02:00
Kamil Śliwak
1bc1f8bdbb
Merge pull request #12835 from dtedesco1/develop
...
Fix MultiSigWallet.sol order of functions
2022-04-04 17:37:28 +02:00
Kamil Śliwak
c06308146a
Merge pull request #12828 from ethereum/errorForUnary
...
Use error message for unary operators.
2022-04-04 17:13:28 +02:00
dtedesco1
2fabb3db8f
attempt rebase, fix free function, fix check errors
2022-04-04 22:49:12 +08:00
Kamil Śliwak
c7222044a2
externalTests.sh: Fix broken ${} syntax in the script
2022-04-04 14:16:42 +02:00
chriseth
755e043a6d
Use error message for unary operators.
2022-04-04 16:53:36 +05:30
wechman
1e7688e8a1
Tests for the equivalence of one and two-stage compilation via IR supports multi-file contracts
2022-04-04 11:09:43 +02:00
Kamil Śliwak
73443c0ada
elementfi: Switch all presets to compile-only
2022-04-01 23:06:21 +02:00
Kamil Śliwak
5ef0048d85
zeppelin: Disable the newly added Polygon-Child test, failing via IR due to Hardhat heuristics
2022-04-01 23:06:21 +02:00
Kamil Śliwak
b445e7e74c
Revert "perpetual-pools: Use Hardhat 2.8.4 to work around @openzeppelin/hardhat-upgrades's problem with parallel compilation on Hardhat 2.9.0"
...
This reverts commit 30008465bf
.
2022-03-28 19:51:46 +02:00
Kamil Śliwak
34c06c27a5
Downgrade ethers.js to 5.6.1 in ens, gnosis, euler, perpetual-pools and uniswap external tests
2022-03-28 17:56:30 +02:00
nishant-sachdeva
4c6066bfad
typeCheckAbiEncodeCallFunction should type check the arguments on functionPointerType->asExternallyCallableFunction instead of teh plain function type
2022-03-24 18:53:46 +05:30
Alexander Arlt
1a0988e503
libevmasm: refactor asm-json export & add support for source list.
2022-03-23 15:58:07 -05:00
Christian Parpart
13a4c79a9b
lsp.py: Adds --fail-fast (-f) to terminate early on first failure.
2022-03-23 17:34:04 +01:00
Marenz
0bf674b442
LSP test: Minor refactoring and better exception reporting
2022-03-21 13:23:02 +01:00
chriseth
430ecb6e16
Merge pull request #12795 from ethereum/morePopRemovalInPeepholeOptimizer
...
More pop removal in peephole optimizer.
2022-03-17 12:22:48 +01:00
chriseth
af86a80536
Merge pull request #12796 from ethereum/refactorStackCompressor
...
Refactor stack compressor
2022-03-16 16:36:41 +01:00
Daniel Kirchner
4b9c01752d
Test updates.
2022-03-16 15:34:38 +01:00
chriseth
75abe92eb2
Refactor stack compressor.
2022-03-15 21:28:47 +01:00
Daniel Kirchner
5cd98006d4
Fill in junk in stack layouts on terminating control flow paths.
2022-03-15 18:36:55 +01:00
Daniel Kirchner
b6cd3e154c
Test case for current behaviour.
2022-03-15 18:36:30 +01:00
chriseth
5afa2adec2
Merge pull request #12775 from ethereum/refactorDataFlowAnalyzer
...
Refactor data flow analyzer state access.
2022-03-15 15:52:40 +01:00
Daniel Kirchner
8cb01a9953
Fix and updated test.
2022-03-15 10:23:09 +01:00
Daniel Kirchner
db27051024
Test for old behaviour.
2022-03-15 10:23:09 +01:00
chriseth
eab4ca906c
Refactor data flow analyzer state access.
2022-03-14 19:32:33 +01:00
chriseth
e154d43176
Merge pull request #12288 from ethereum/exportUsing
...
Using global
2022-03-14 18:57:26 +01:00
chriseth
9188519f11
Using for with global binding.
2022-03-14 17:39:14 +01:00
Bhargava Shastry
e19c366532
Merge pull request #12789 from ethereum/yulFuzzerCustomMutation
...
Permit control flow mutations in global scope of a Yul program.
2022-03-14 16:23:18 +01:00
chriseth
7f360e61fc
Merge pull request #12781 from ethereum/fixImportDirectiveVisits
...
Fix import directive visits in type checker and view pure checker.
2022-03-14 15:35:37 +01:00
chriseth
3d8fc6b126
Merge pull request #12760 from ethereum/viaIRNonExperimental
...
Mark viaIR code generation as non-experimental.
2022-03-14 15:30:15 +01: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
0f1a63c3fa
Fix import directive visits in type checker and view pure checker.
2022-03-14 14:53:06 +01:00
Daniel Kirchner
0172f61340
No longer mark Yul as experimental.
2022-03-14 14:48:01 +01:00
Daniel Kirchner
e58c0b561d
Mark viaIR code generation as non-experimental.
2022-03-14 14:48:00 +01:00
wechman
8a254b7a7f
Use sol file to validate test variants
2022-03-14 14:21:30 +01:00
wechman
4c1224e3bf
Generate ASTJSONTest variants only if a file with expected result exists
2022-03-14 14:21:30 +01:00
wechman
371a531381
Add "fail after parsing" scenario to ASTJSON tests
2022-03-14 14:21:30 +01:00
wechman
f431c6f058
Support compilation fail scenarios in ASTJSON tests
2022-03-14 14:21:06 +01:00
wechman
38639417e1
Non-fatal erros do not stop ASTJSON test execution
2022-03-14 14:21:06 +01:00
wechman
5f7ff667b9
Fix syntax errors in ASTJSON tests
2022-03-14 14:21:06 +01:00
wechman
d609409624
Add not_existing_import.json to ASTJSON tests
2022-03-14 14:21:06 +01:00
chriseth
3f6beaa0ad
Merge pull request #12121 from ethereum/extend-using-statement
...
Extend using statement
2022-03-14 14:10:16 +01:00
hrkrshnn
672951ccc7
Extend using-for.
2022-03-14 12:33:44 +01:00
Christian Parpart
2b2f8acc12
LSP: Implements goto-definition.
2022-03-14 11:59:41 +01:00
chriseth
60463cfd11
Merge pull request #12716 from ethereum/set-c-locale
...
Don't set locale used by C++ stdlib to the value from `LC_ALL` env variable even if it's valid
2022-03-14 10:38:19 +01:00
nishant-sachdeva
b7a9daa2f8
Generate warning when rational numbers are converted to their mobile type without explicit requests
2022-03-14 14:04:46 +05:30
Kamil Śliwak
2d834eaf67
A script and CI job for testing the compiler with different locales
2022-03-14 09:08:01 +01:00
Daniel Kirchner
26963775fe
Merge pull request #12736 from ethereum/reenable-tests-via-ir-in-ext-tests
...
Re-enable running tests via IR in external tests in cases where they don't pass due to Hardhat heuristics
2022-03-11 13:44:55 +01:00
Daniel Kirchner
09f667948b
Merge pull request #12746 from tfire/fix/remove-namespace-ast-annotations
...
Remove use of `using namespace` in header file
2022-03-11 12:49:13 +01:00
Nishant Sachdeva
1827df8a2d
Merge pull request #12779 from nishant-sachdeva/distinguish_different_types_in_error_messages_from_abiEncodecall
...
Error messages from abi encodecall are giving more details about the types of the involved variables
2022-03-11 16:50:45 +05:30
Daniel Kirchner
c13e611e98
Merge pull request #12768 from ethereum/euler-timeout-fix-attempt-2
...
Euler timeout fix: switch to TEST_TIMEOUT variable
2022-03-11 12:04:05 +01:00
nishant-sachdeva
624d2d3968
Error messages from abi encodecall are giving more details about the types of the involved variables
2022-03-11 16:14:55 +05:30
Tyler
3357567453
Fix CommonSyntaxTest.cpp and others
2022-03-10 18:16:12 -05:00
Tyler
1c58b91075
Merge branch 'develop' of github.com:tfire/solidity into fix/remove-namespace-ast-annotations
2022-03-10 17:39:29 -05:00
Tyler
1653b6c5b7
more qualifying
2022-03-10 17:36:46 -05:00
chriseth
4f02be110c
Unused store eliminator.
2022-03-10 18:25:28 +01:00
Kamil Śliwak
b5caa77482
euler: Use project's own TEST_TIMEOUT var for changing the timeout instead of mocha settings
2022-03-10 14:52:51 +01:00
chriseth
b3fe042884
Optimize eq iszero jumpi to xor jumpi and remove double jump.
2022-03-10 14:41:41 +01:00
Kamil Śliwak
e9f3f9361d
Re-enable running tests in external tests via IR in cases where they don't pass due to Hardhat heuristics
2022-03-10 14:13:00 +01:00
Daniel Kirchner
794752c649
Merge pull request #12765 from ethereum/euler-timeout-fix
...
Increase Hardhat timeout in Euler ext test
2022-03-10 13:15:59 +01:00
chriseth
6ab31420af
Remove unneeded header files.
2022-03-10 09:55:05 +01:00
chriseth
eff76f0f82
Merge pull request #12195 from ethereum/update-gnosis-ext-test
...
Run GnosisSafe external tests with Hardhat and directly on upstream
2022-03-10 08:42:11 +01:00
Tyler
047034544e
Merge branch 'develop' of github.com:tfire/solidity into fix/remove-namespace-ast-annotations
2022-03-09 18:55:22 -05:00
Kamil Śliwak
9ef600e572
euler: Override Hardhat test timeout
2022-03-09 20:37:08 +01:00
Kamil Śliwak
304c3984ad
Update gnosis external test to use upstream directly and use Hardhat
2022-03-09 19:57:16 +01:00
Kamil Śliwak
bebdcccacd
Merge pull request #12764 from ethereum/elementfi-disable-flaky-mockerc20yearnvault-tests
...
Disable flaky ElementFi tests in `mockERC20YearnVaultTest`
2022-03-09 19:55:05 +01:00
Kamil Śliwak
68bdb7f2e0
Disable flaky ElementFi tests
2022-03-09 18:58:02 +01:00
Daniel Kirchner
e7a3814977
Unit test.
2022-03-09 17:53:28 +01:00
Daniel Kirchner
e0c837b33b
Remove isCreation flag from OptimiserSettings.
2022-03-09 17:53:28 +01:00
Daniel Kirchner
0a9d752b8b
Add test case and adjust tests.
2022-03-09 17:53:28 +01:00
Daniel Kirchner
ce0a3e93f2
Store whether an evmasm Assembly is creation code.
2022-03-09 17:42:29 +01:00
Tyler
519e1c9402
Specify namespaces
...
Fix references into solidity::util
2022-03-08 00:09:17 -05: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
chriseth
57e012da98
Merge pull request #12663 from ethereum/assemblyAnnotationDialectString
...
Assembly annotation as memory-safe using assembly flags.
2022-03-07 13:03:08 +01:00
chriseth
79eba921b8
Merge pull request #12659 from paarthmadan/pm/base-64-test-cases
...
Add Base64 test cases with and without inline assembly
2022-03-07 12:57:49 +01:00
chriseth
4f19d68ee9
Merge pull request #12620 from ethereum/assemblyAnnotation
...
Memory-safety annotation for inline assembly.
2022-03-07 12:48:41 +01:00
Paarth Madan
17fa85a2fb
Add Base64 test cases with and without inline assembly
...
Adds two implementations of Base64 encoding as specified in RFC4648.
Implementation (1) uses inline assembly, while Implementation (2) is
written purely in Solidity.
Assertions are added to replicate the test vectors specified in the RFC
for Base64 to ensure both implementations to specification.
2022-03-05 19:51:46 -05:00
Daniel Kirchner
c9373061aa
Merge pull request #12742 from msooseth/style_fix
...
Fixing style issue in ExecutionFramework.cpp
2022-03-04 15:23:25 +01:00
Mate Soos
66a779d267
Fixing style issue in ExecutionFramework.cpp
...
It should be `auto const&` not `const auto&`
2022-03-04 12:20:57 +01:00
nishant-sachdeva
beabc51c20
returnSize assigned according to truth value of returnInfo.dynamicReturnSize
2022-03-03 18:55:10 +05:30
Daniel Kirchner
b3764ad4ef
Merge pull request #12733 from ethereum/perpetual-pools-fix-race-condition-due-to-hardhat-parallel-compilation
...
Workaround for a race condition in Perpetual Pools ext test due to parallel compilation on Hardhat 2.9.0
2022-03-02 17:22:26 +01:00
Daniel Kirchner
93dd8ad553
Tests.
2022-03-02 17:07:11 +01:00
Kamil Śliwak
30008465bf
perpetual-pools: Use Hardhat 2.8.4 to work around @openzeppelin/hardhat-upgrades's problem with parallel compilation on Hardhat 2.9.0
2022-03-02 16:47:55 +01:00
Daniel Kirchner
6b6e163be5
Tests.
2022-03-02 16:42:28 +01:00
Daniel Kirchner
ad13062978
Patch external tests with a safe inline assembly annotation.
2022-03-02 16:42:28 +01:00
Daniel Kirchner
e6848caac1
Allow annotating inline assembly as memory-safe.
2022-03-02 16:42:28 +01:00
chriseth
b0dcd7b915
Split out disassemble to remove numeric from instruction includes.
2022-03-02 15:30:41 +01:00
Leo Alt
bef69b595b
Ignore cex in SMT test
2022-02-28 18:56:20 +01:00
chriseth
ebd584fcfb
Merge pull request #12206 from ethereum/extractExternalFunctionPart
...
Extract external function part
2022-02-28 13:04:14 +01:00
Kamil Śliwak
8962d53e3c
Merge pull request #12701 from a3d4/fix-running-tests-from-any-drive
...
Fix running path-related tests from any Windows drive
2022-02-28 12:58:45 +01:00
chriseth
ca4c983973
Merge pull request #12695 from ethereum/less-confusing-err
...
Make error message less confusing
2022-02-28 12:36:47 +01:00