Commit Graph

6975 Commits

Author SHA1 Message Date
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
a3d4
50ae21d1bf Fix running tests from any drive 2022-02-22 18:11:42 +01:00
nishant-sachdeva
195f72e844 Added errorSelector field for custom errors 2022-02-21 19:14:33 +05:30
chriseth
e9592c3f8e Update tests. 2022-02-21 14:32:52 +01:00
Marenz
175580fe90 Make error message less confusing 2022-02-17 16:52:36 +01:00
Kamil Śliwak
8aa3b7fea0 Neutralize packaged Uniswap contracts in yield-liquidator external test 2022-02-16 13:16:44 +01:00
Kamil Śliwak
ccbc865beb elementfi: Bypass expiration check that won't pass due to test settings 2022-02-15 12:51:40 +01:00
Leo
947a599e91
Merge pull request #12441 from ethereum/benchmarking-ext-tests
Benchmarking external tests
2022-02-14 20:14:27 +01:00
Leo
e3e77c0f01
Merge pull request #12551 from ethereum/natspec-test
Add test for fixed natspec ICE
2022-02-14 19:51:03 +01:00
Leo
3915768753
Merge pull request #12594 from ethereum/solc-js-ext-test-local-checkout
solc-js external test on a local checkout
2022-02-14 19:44:46 +01:00
Daniel Kirchner
c47da51eab Consider all grandparents in override analysis. 2022-02-14 15:31:31 +01:00
Daniel Kirchner
3b6c99f3e8
Merge pull request #12572 from ethereum/fixStackShuffling
Improved stack shuffling in corner cases.
2022-02-14 13:00:56 +01:00
nishant-sachdeva
276851ff91 Added support for FunctionType::Kind::StringConcat and functions string.concat 2022-02-10 22:08:47 +05:30
Daniel Kirchner
290b9326e3 Move stray semantics test to proper directory. 2022-02-10 13:43:49 +01:00
Kamil Śliwak
c6094bb0c2 externalTests: Benchmark reports 2022-02-09 17:02:40 +01:00
Kamil Śliwak
a7852cba75 Python script for parsing eth-gas-reporter output 2022-02-09 17:02:40 +01:00
Kamil Śliwak
7fc2253841 externalTests: Make comments about failing presets less terse 2022-02-09 17:02:40 +01:00
Kamil Śliwak
3e1aee1745 externalTests: Clean the build/ dir for Hardhat too 2022-02-09 17:02:40 +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
joshieDo
9e62f21b25 Add event and error identifiers to cli hashes cmd 2022-02-08 17:44:21 +01:00
chriseth
5c3bcb6c2d
Merge pull request #12434 from ethereum/outputLocations
Output searched locations on import failure.
2022-02-08 17:16:46 +01:00
joshuatarkwski
6225dad332 Output searched locations on import failure. 2022-02-08 16:20:27 +01:00
chriseth
91b7d5fe5d
Merge pull request #12642 from ethereum/remove-solidityfixedfeeregistrar-ref
Remove a reference to unused SolidityFixedFeeRegistrar (retry)
2022-02-08 13:32:05 +01:00
Kamil Śliwak
28bc5db576
Merge pull request #12598 from a3d4/case-insensitive-root-in-normalizeclipathforvfs
Treat root path in normalizeCLIPathForVFS as case insensitive on Windows
2022-02-08 13:17:05 +01:00
Kamil Śliwak
122ad0770a
Merge pull request #12632 from a3d4/symlinks-on-windows
Clarify symlink handling on Windows
2022-02-08 13:16:24 +01:00
Mathias L. Baumann
c139d39b9b
Merge pull request #12589 from ethereum/emit-immutable-references
Emit immutable references for pure yul code
2022-02-07 13:21:44 +01:00
Marenz
b9fe628b70 Emit immutable references for pure yul code 2022-02-07 12:32:54 +01:00
chriseth
4715fafb82 Re-enable preset for poolTogether. 2022-02-07 11:31:59 +01:00
a3d4
a0dd2cd1ff Remove a reference to unused SolidityFixedFeeRegistrar 2022-02-05 15:14:18 +01:00
a3d4
0a17495cf9 Treat root path in normalizeCLIPathForVFS as case insensitive on Windows 2022-02-05 11:51:11 +01:00
a3d4
7634fc4ea9 Clarify symlink handling on Windows 2022-02-05 03:44:54 +01:00
Kamil Śliwak
32d64ce666
Merge pull request #12630 from ethereum/enable-full-tests-in-prb-math-ext-test
Enable full tests in PRBMath external test
2022-02-04 16:56:31 +01:00
Kamil Śliwak
4ebd839d3a Run full tests, not just test:contracts in PRBMath external test
- `test:contracts` does not seem to be running any tests at all.
2022-02-04 15:51:34 +01:00
Kamil Śliwak
b52032a452 Re-enable Bleeps and just disable the failing governor test 2022-02-04 15:18:37 +01:00
Kamil Śliwak
9e641e60e7 externalTests/solc-js: Allow using a local checkout of solc-js 2022-02-04 15:05:00 +01:00
Kamil Śliwak
b925250705 Make solc-js.sh run its tests directly
- Its structure has diverged a lot from other external tests and there's not point in keeping it abstracted like this.
2022-02-04 15:05:00 +01:00
Kamil Śliwak
f5b345504b When installing solc-js use the dist/ subdir, which contains the built JS files 2022-02-03 18:47:19 +01:00
Kamil Śliwak
e1a90b829e bleeps: Patch WETH9.sol for 0.8.x 2022-02-01 16:40:28 +01:00
Kamil Śliwak
57800529d1 bleeps: Switch to the main branch 2022-02-01 16:40:08 +01:00
Kamil Śliwak
6788f77541 Add missing SELECTED_PRESETS argument to some of the recently added external tests 2022-02-01 15:25:13 +01:00
Kamil Śliwak
1528d4b9e4 perpetual-pools: Switch the test to our fork (original repo is gone) 2022-02-01 14:34:03 +01:00
hrkrshnn
0fe5811459 Fixed a ICE on calldata to struct member copy 2022-01-31 17:26:11 +01:00
nishant-sachdeva
dec511aad8 Corresponding code in the .cpp file has been commented instead of begin removed pending preliminary reviews
Code generators needed fixing of the cleanup process during typecasting of bytes and integers
2022-01-28 19:56:15 +05:30
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
Kamil Śliwak
cdaa6dd591 Adjust workflow with solc-js checkout now that it's on TypeScrpt 2022-01-25 16:42:37 +01:00
Kamil Śliwak
2e1383eae1 Change the way we run solcjs now that it has been renamed in solc-js 2022-01-25 13:32:02 +01:00
Kamil Śliwak
cf024d9fa3 External test for ElementFi 2022-01-24 11:53:00 +01:00
Kamil Śliwak
36efd084df External test for PRBMath 2022-01-21 23:48:46 +01:00
Kamil Śliwak
aeb9637377 External test for Uniswap V3 2022-01-21 16:10:24 +01:00
Kamil Śliwak
d3cce85a8d externalTests: Make force_hardhat_unlimited_contract_size work with Typescript < 4.0
- The `??=` operator was added in Typescript 4. `??` Was already available on 3.7 so we can use it instead to get projects like Uniswap work.
2022-01-21 16:10:24 +01:00
Daniel Kirchner
de28f31716 Improved stack shuffling in corner cases. 2022-01-21 15:41:30 +01:00
Kamil Śliwak
a7cbb41bf9 externalTests: Add name_hardhat_default_export 2022-01-21 15:18:26 +01:00
Daniel Kirchner
76540b338e
Merge pull request #12561 from ethereum/perpetual-pools-ext-test
External test for Tracer Perpetual Pools
2022-01-21 11:42:26 +01:00
Marenz
a550048cf0 Fix too strict assert for calldata string -> bytes conversions 2022-01-20 15:11:26 +01:00
Daniel Kirchner
0b9ab33fce
Merge pull request #12557 from nishant-sachdeva/adding_stack_height_checker_to_address_provider_in_case_type_function
Adding Stack Height Checker and modifying the number of POP instructions
2022-01-19 21:18:15 +01:00
nishant-sachdeva
27d0480e96 Adding Stack Height Checker and modifying the number of POP instructions to appropriately provide the pointer address 2022-01-20 01:15:08 +05:30
Kamil Śliwak
7b4522f507 External test for Tracer Perpetual Pools 2022-01-19 20:24:25 +01:00
Kamil Śliwak
8f804333fe force_hardhat_unlimited_contract_size: Initialize 'hardhat' network if is not explicitly configured 2022-01-19 20:23:41 +01:00
Kamil Śliwak
93f7d5f8f0 External tests for Pool Together v4 2022-01-19 17:21:03 +01:00
Daniel Kirchner
c3c5937bd7
Merge pull request #12552 from ethereum/missing-bracket
Add missing bracket in test
2022-01-19 16:07:41 +01:00
Marenz
be7c7dd4a9 Make formatting more consistent in natspec tests 2022-01-19 15:35:27 +01:00
Marenz
6d05912d70 Require strict parsing for natspec JSON tests 2022-01-19 15:35:27 +01:00
Daniel Kirchner
92c262d116
Merge pull request #12553 from ethereum/ir-ice-12546
Fix .push() not considering external functions
2022-01-19 13:41:20 +01:00
nishant-sachdeva
a0d6c11860 Equality operator allowed for external function types 2022-01-19 15:20:31 +05:30
Marenz
89d6bff72a Fix .push() not considering external functions 2022-01-18 16:30:31 +01:00
Marenz
7fbf134ce3 Add test for fixed natspec ICE 2022-01-18 13:36:54 +01:00
Daniel Kirchner
cf8a7c3bea
Merge pull request #12544 from ethereum/natspec-ice-12528
Natspec: Fix ICE when overriding a struct getter with a Natspec-documented return value and the name in the struct is different.
2022-01-18 12:48:26 +01:00
Daniel Kirchner
79e9d619a3
Merge pull request #12545 from ethereum/yulGrammarFluke
Allow builtins in yul identifier paths in antlr grammar.
2022-01-17 20:42:14 +01:00
Daniel Kirchner
c91f995ec9
Update test/libsolidity/syntaxTests/inlineAssembly/assignment_to_function_pointer.sol
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2022-01-17 20:12:11 +01:00
Daniel Kirchner
2d0f6278bb Allow builtins as yul identifier paths in antlr grammar. 2022-01-17 18:42:54 +01:00
Marenz
7c0a121e45 Natspec: Fix ICE when overriding a struct getter with a Natspec-documented return value and the name in the struct is different. 2022-01-17 17:10:07 +01:00
Marenz
57d84c8bfb Fix genetic algorithms CI failure 2022-01-17 13:35:07 +01:00
Marenz
0004ad8764 Fix ICE when a constant variable declaration forward references a struct 2022-01-17 13:24:14 +01:00
Kamil Śliwak
1af0ce0f26 External test for Bleeps 2022-01-14 23:57:14 +01:00
Kamil Śliwak
4de1367ba7 External test for Yield Liquidator V2 2022-01-14 22:37:56 +01:00
Kamil Śliwak
054f1cb304 External test for Euler 2022-01-14 02:14:05 +01:00
Kamil Śliwak
f7a075bd48 externalTests: Add force_hardhat_unlimited_contract_size 2022-01-14 01:46:41 +01:00
Kamil Śliwak
f6ca4132b3 ens: Remove global solc replacement (only necessary with Truffle) 2022-01-14 01:36:47 +01:00
Marenz
2c4c8264e4 Fix wrong error with immutables when base contract c'tor uses return 2022-01-13 13:09:36 +01:00
Leo Alt
098a3cb537 adjust tests for nondeterminism 2022-01-12 18:43:18 +01:00
Daniel Kirchner
1655626e0a Remove counterexample from test. 2022-01-12 17:58:05 +01:00
Leo Alt
9f171c0f06 update smtchecker tests for new z3 2022-01-12 15:13:34 +01:00
Kamil Śliwak
cc49eeda3f trident: Note explaining the hard-coded commit 2022-01-10 21:36:58 +01:00
Kamil Śliwak
7142bfa548 trident: Sort test suites to make the order the same in CI and locally 2022-01-10 21:36:58 +01:00
Kamil Śliwak
823f0da3ee trident: Update to match changes done to other external tests in the preset selection PR 2022-01-10 21:28:32 +01:00
Kamil Śliwak
4842774ab8
Merge pull request #12440 from ethereum/preset-selection-in-ext-tests
Preset selection in external tests
2022-01-10 21:15:45 +01:00
Kamil Śliwak
b8b8fcb463 Switch the trident external test to and earlier, working revision 2022-01-10 18:54:50 +01:00
Kamil Śliwak
b60b596741 externalTests: Add support for cloning repos at a specific commit 2022-01-10 18:38:48 +01:00
Kamil Śliwak
1928b7843b externalTests: Preset selection via command-line arguments 2022-01-10 14:44:00 +01:00
Kamil Śliwak
2d038cddff trident ext test: Patch upstream instread of relying on our fork 2022-01-10 14:37:25 +01:00
Kamil Śliwak
6980fa32e2 External test for sushiswap/trident 2022-01-10 14:37:24 +01:00
Kamil Śliwak
19b1a13c6d externalTests: Add support for hardhat.config.ts 2022-01-10 14:37:24 +01:00
Bhargava Shastry
2c7aed1d7e Add FunctionHoister as a pre-requisite for equal store eliminator. 2022-01-06 14:16:02 +01:00
Mathias L. Baumann
63b6bbe15c
Merge pull request #12471 from ethereum/modifiers-control-flow-11483
Properly generated control flows for inherited modifiers
2022-01-06 13:39:50 +01:00
Marenz
e969aed780 Properly resolve virtual modifiers 2022-01-06 12:52:06 +01:00
chriseth
c16867cb83
Merge pull request #12272 from ethereum/equalStoreEliminator
Equal store eliminator.
2022-01-05 11:24:59 +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
Daniel Kirchner
671064b609 Use fixed seed for flaky phaser test for now. 2022-01-04 18:27:31 +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
hrkrshnn
85d1a57e65 Added more tests. Updated chromosome. Remove unused headers. 2022-01-04 13:27:39 +05:30
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
e7fc2a176a Test updates. 2022-01-03 15:52:05 +01:00
chriseth
772e100813 Equal store eliminator. 2022-01-03 15:52:05 +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
chriseth
692614df72
Merge pull request #12437 from ethereum/encodeCallForDeclarations
abi.encodeCall for declarations.
2021-12-29 18:40:18 +01:00
chriseth
4c838d9cf5 abi.encodeCall for declarations. 2021-12-29 12:26:04 +01:00
Leo Alt
fb8c138b8b Do not analyze unecessary contracts 2021-12-24 19:36:32 +01:00
Kamil Śliwak
7e91dba663 Switch ens external test to ens-contracts repo 2021-12-22 14:45:51 +01:00
chriseth
0769e4df5d
Merge pull request #12445 from ethereum/pylint-enable-more-warnings
[pylint] Enable more warnings
2021-12-21 18:20:52 +01:00
Kamil Śliwak
8cfecb45cc Fix ESLint warnings/errors in external test JS 2021-12-21 16:18:46 +01:00
Kamil Śliwak
5b10ff1216 pylint: Enable and fix singleton-comparison warnings 2021-12-21 15:30:11 +01:00
Kamil Śliwak
784ae91b41 pylint: Enable and fix no-self-use warnings 2021-12-21 15:30:11 +01:00
Kamil Śliwak
449f56c15b pylint: Enable and fix consider-using-sys-exit warnings 2021-12-21 15:30:11 +01:00
chriseth
a4b2fc9cb7
Merge pull request #12361 from mejsiej/improved-err-msg-when-getter-returns-nothing
Changed the message of the error thrown when the structure has all it's members omitted
2021-12-20 21:06:14 +01:00
Kamil Śliwak
1124e28628 externalTests: With COMPILE_ONLY=1 still do compilation on all levels if only JS tests fail 2021-12-20 19:14:37 +01:00
mejsiej
ddd9a84141 Improve failure message when generating getter. 2021-12-20 18:16:27 +01:00
chriseth
8da9239c83
Merge pull request #12396 from ethereum/ext-tests-via-ir
External tests via IR
2021-12-20 18:13:02 +01:00
Christian Parpart
b8e64a4883 Fixes CI build error for ArchLinux. 2021-12-20 13:11:00 +01:00
chriseth
3193dfbb5d
Merge pull request #11350 from ethereum/lsp
Language Server
2021-12-16 18:54:26 +01:00
chriseth
1594518cfc
Merge pull request #12417 from nishant-sachdeva/invalid_ir_generated_during_copy_of_dynamically_sized_storage_arrays_of_function_type
Added sameType check for fromType and toType in YulUtilFunctions.cpp and relevant tests in semanticTests
2021-12-16 18:33:54 +01:00
chriseth
835efea427
Merge pull request #12287 from ethereum/abi.encodeCall
Implement typechecked abi.encodeCall()
2021-12-16 18:24:33 +01:00
Christian Parpart
927b24df1f Initial implementation of Language Server 2021-12-16 17:52:49 +01:00
Marenz
7a96953e78 Implement typechecked abi.encodeCall() 2021-12-16 17:35:58 +01:00
nishant-sachdeva
7cc7a0f183 Added sameType check for fromType and toType in YulUtilFunctions.cpp and relevant tests in semanticTests 2021-12-16 21:51:09 +05:30
nishant-sachdeva
19a74506e3 trial test cases extracted from SoliidityEndToEndTest.cpp into .sol files.
removed libevmone.so files from the directory

trial test cases extracted from SoliidityEndToEndTest.cpp into .sol files. Corresponding code in the .cpp file has been commented instead of begin removed pending preliminary reviews

removed libevmone files

Added testcase packed_storage_structs_delete

added test case invalid_enum_logged

added test case enum_referencing

added test case memory_types_initialisation

added test case return string

added test case constant_string_literal.sol

removed extractable keyword from solidityEndtoEnd.cpp, moved copying_bytes_multiassigned.sol to array/copying folder, added recv() function to copying_bytes_multiassigned.sol but this test case is failing now

change typo error in the name of test case library_staticcall_delegatecal.sol to library_staticcall_delegatecall.sol

Added compileToEwasm:false to call_forward_bytes.sol test case and moved it to semanticTests/fallback

added compileToEwasm:false line to library_call_in_homestead

added compileToEwasm: false line to copying_bytes_multiassign, copy_from_calldata_removes_bytes, enum_referencing, library_call_in_homestead, struct_referencing

Added test case internal_types_in_library

Added test case mapping_arguments_in_library

Added test case mapping_returns_in_library

Added test case mapping_returns_in_library_named

Added test case using_library_mappings_public

Added test case library_function_external

Added test case library_stray_values

added test case using_library_mappings_return

added test case using_library_structs

Added test case using_for_function_on_struct and corrections to using_library_structs, using_library_mpapings_return, library_stray_values

Added test case using_for_overload

added test case using_for_by_name

added test case bound_function_in_function

added test case bound_function_in_var

added test case bound_function_to_string

added test case payable_function_calls_library

added function call corrections to copying_bytes_multiassign and call_forward_bytes

Made changes to the test cases as per comments on PR #12289

mentioned in Changelog.md : Extraced some test cases from SolEndToEnd.cpp
2021-12-16 16:56:38 +05:30
nishant-sachdeva
9b55d4788e Added sameType check for fromType and toType in YulUtilFunctions.cpp and relevant tests in semanticTests 2021-12-15 23:50:25 +05:30
Kamil Śliwak
3ec05d02b5 externalTests: Add extra viaIR runs 2021-12-14 13:19:54 +01:00
Kamil Śliwak
d304c84432 externalTests: Replace optimizer levels with named presets 2021-12-14 13:19:53 +01:00
Kamil Śliwak
adfa51c01c externalTests: Measure compilation time 2021-12-14 13:19:21 +01:00
Leo Alt
316be7206f Fix soundness of storage/memory pointers that were not erasing enough knowledge 2021-12-14 12:02:18 +01:00
chriseth
248bc387cd
Merge pull request #12393 from ethereum/dont-compile-twice-in-colony-ext-test
Avoid double compilation in Colony external test
2021-12-13 18:51:21 +01:00
chriseth
0e6388a907 Clarify FileReader interface. 2021-12-13 14:54:58 +01:00
chriseth
9131475b7c
Merge pull request #12394 from ethereum/make-optimizer-level-2-effective-again-in-ext-tests
Make optimizer level 2 in external tests actually different from level 3
2021-12-13 13:02:00 +01:00
Kamil Śliwak
6afb63200c externalTests: Use yarn install instead of yarn in colony ext test to avoid compiling contracts twice 2021-12-13 11:46:13 +01:00
Kamil Śliwak
eb8e304b47 externalTests: Add support for using a native binary 2021-12-10 17:43:57 +01:00
Kamil Śliwak
68ff073b3b externalTests.sh: Remove outdated commented-out command to run gnosis
- A newer command is already enabled above it
2021-12-10 17:40:54 +01:00
Kamil Śliwak
081b80ccb2 externalTests: Refactor setup and input verification 2021-12-10 17:40:54 +01:00
Kamil Śliwak
0edbd90f52 externalTests: Use fail() function to simplify error checks 2021-12-10 17:40:54 +01:00
Kamil Śliwak
5fb0246f1c Use the right config file name in ENS external test 2021-12-10 17:02:35 +01:00
Kamil Śliwak
937597c1cd Use unique name for gnosis-v2 ext test 2021-12-10 15:40:46 +01:00
Kamil Śliwak
8ada7db7e9 externalTests: Fix optimizer level 2 to make it actually run without Yul optimizer 2021-12-10 15:40:46 +01:00
chriseth
4e0f334107
Merge pull request #12275 from nishant-sachdeva/calldata-struct-arugment-with-internal-type-inside
Calldata struct array arugment with internal type inside
2021-12-06 16:55:56 +01:00
chriseth
9e9225eb60
Merge pull request #11800 from spiyer99/separate-control-flow-from-error-reporting-in-CommandLineParser
Separate control flow from error reporting in command line parser
2021-12-06 16:50:27 +01:00
chriseth
f9859135d5
Merge pull request #12354 from ethereum/addReadBytesFunction
Function to read a number of bytes from an input stream.
2021-12-06 11:50:58 +01:00
nishant-sachdeva
a4fbc607c6 Issue 11610 : Replced typeError with fataTypeError in lines 390 and 406. Test file added in test/libsolidity/syntaxTests/calldata_struct_argument_with_internal_type_inside.sol
Issue : 11610 : Test cases updated, Changelog.md file updated to include change on 0.8.11
2021-12-03 12:23:35 +05:30
Leo Alt
16535aae32 Fix ICE when unsafe targets are solved more than once and the cex is different 2021-12-03 00:21:38 +01:00
chriseth
d9a4020a92 Function to read a number of bytes from an input stream. 2021-12-01 16:24:56 +01:00
chriseth
5d571bb111
Merge pull request #12352 from ethereum/lineColumnTranslateForCharStream
LineColumn handling for CharStream.
2021-12-01 15:59:21 +01:00
chriseth
264b7bd857 LineColumn handling for CharStream. 2021-12-01 15:16:01 +01:00
chriseth
b6bd85202c Accessors for exceptions. 2021-12-01 14:26:23 +01:00
chriseth
bd193ae840 Fix whitespace problem. 2021-12-01 12:46:02 +01:00
chriseth
5a908a8705
Merge pull request #12348 from dallonasnes/fix-cut-on-macos
Fix cl test script on macOS
2021-12-01 12:36:32 +01:00
Dallon Asnes
70e925dbfc
Update test/cmdlineTests.sh
Co-authored-by: Kamil Śliwak <cameel2@gmail.com>
2021-11-30 10:07:50 -06:00
Kamil Śliwak
c04fca7c2d
Merge pull request #12192 from ethereum/hardhat-in-oz-ext-test
Use Hardhat and the right binary for OpenZeppelin external tests
2021-11-30 16:17:28 +01:00
Dallon Asnes
a0aacb91a6 Fix cl test script on macOS 2021-11-29 23:43:28 -06:00
nishant-sachdeva
49d9f334aa Extracted some test cases from SolidityEndToEnd.cpp 2021-11-29 21:27:43 +05:30
Kamil Śliwak
9f59d1746b Fix OpenZeppelin external tests to actually use Hardhat and the binary built in CI 2021-11-25 21:34:53 +01:00
Leo Alt
a2588533e5 macos nondeterminism 2021-11-24 20:41:22 +01:00
Leo Alt
0c34d9df88 Adjust tests for nondeterminism 2021-11-24 20:41:22 +01:00
Leo Alt
ff5c842d67 update smtchecker tests 2021-11-24 20:41:22 +01:00
chriseth
0e7a065a78 Enhance documentation. 2021-11-23 14:58:04 +01:00
chriseth
bd321b9f1f Rename RedundantAssignEliminator to UnusedAssignEliminator. 2021-11-23 10:38:36 +01:00
chriseth
defc74c8a2
Merge pull request #12282 from ethereum/fix-gas-test-enforcement
Fix gas cost enforcement for constructors and make `--enforce-gas-cost-min-value` actually work
2021-11-22 12:39:07 +01:00
Kamil Śliwak
2aeeef83f2
Merge pull request #12214 from ethereum/parallelize-external-tests
Parallelize external tests
2021-11-18 17:27:57 +01:00
Kamil Śliwak
cbb3e07480
Merge pull request #12141 from ethereum/via-ir-equivalence-tests
Tests for the equivalence of one- and two-stage compilation via IR
2021-11-18 15:17:44 +01:00
Kamil Śliwak
ab96f2b69f
Merge pull request #12200 from ethereum/refactorASTJSON
Refactor ASTJSON tests to allow easier addition of variations.
2021-11-18 15:09:31 +01:00
Kamil Śliwak
90fdea95e7 TestFunctionCall::formatRawParameters(): Ensure that uint8_t overload of toHex() is called
- Wrong overload results in isoltest padding each char to 32 bytes
2021-11-15 20:52:25 +01:00
Kamil Śliwak
27dc77be5d Fix typo in test name: ihneritance -> inheritance 2021-11-15 16:32:45 +01:00
Kamil Śliwak
032f2d8f9f Update gas expectations 2021-11-15 16:32:45 +01:00
Kamil Śliwak
f42180ef06 Rename gas constants in ExecutionFramework 2021-11-15 16:31:52 +01:00
Kamil Śliwak
077b3a003d Fix --enforce-gas-cost-min-value being applied only when the cost expectations are not provided in the test file 2021-11-15 16:31:52 +01:00
Kamil Śliwak
cf52827107 Fix gas mismatch in constructor not being counted as a failure 2021-11-15 16:19:22 +01:00
Marenz
49b4e77d6b Prevent crash when translating yul->ewasm with @use-src annotations 2021-11-11 13:43:57 +01:00
Marenz
ab5a06e2b9 Refactor ASTJSON tests to allow easier addition of variations. 2021-11-11 10:44:16 +01:00
Kamil Śliwak
0d82fe9ca7 cmdlineTests.sh: Test the equivalence of one and two-stage compilation via IR 2021-11-10 18:12:06 +01:00
chriseth
f42e3c0bae
Merge pull request #12262 from ethereum/functionGrouper
Keep canonical form of Yul during optimization.
2021-11-10 11:09:15 +01:00
Kamil Śliwak
c8380c25bb CommandLineInterface: Update control flow to accommodate the new way of reporting errors 2021-11-09 18:16:30 +01:00
Kamil Śliwak
16f62ed43e Move the Yul experimental warning from CommandLineParser to CommandLineInterface and remove stderr from the parser 2021-11-09 18:16:30 +01:00
Kamil Śliwak
3f5471165f CommandLineParser: Report errors by raising exceptions 2021-11-09 18:16:30 +01:00
Kamil Śliwak
834f9d3a6e Parallelize external test runs on CircleCI 2021-11-09 16:57:37 +01:00
Kamil Śliwak
79af83eae3
Merge pull request #12191 from ethereum/more-flexible-external-test-scripts
Make external test scripts more flexible
2021-11-09 16:31:21 +01:00
Daniel Kirchner
10618188dd Update tests. 2021-11-09 14:34:05 +01:00
chriseth
fe6e58b0e4
Merge pull request #12259 from ethereum/external-tests-and-scripts-minor-reactors
Tiny refactors in external tests and scripts
2021-11-08 17:21:23 +01:00
chriseth
1633e367c9
Merge pull request #12199 from ethereum/expose-parsingAndImporting
Expose "parsingAndImporting" setting to user
2021-11-08 17:06:20 +01:00
Kamil Śliwak
44f7065fc9
Merge pull request #12074 from ethereum/output-selection-in-assembler-mode
CLI output selection in assembler mode
2021-11-08 16:59:57 +01:00
Kamil Śliwak
0745279f15 externalTests: Generalize force_truffle_solc_modules and make it use symlinks instead of redownloading solc-js 2021-11-08 16:37:23 +01:00
Kamil Śliwak
c090ff9d83 externalTests: Neutralize npm hooks instead of replacing pragmas twice
- This also has the nice effect of stopping projects from trying to compile contracts during installation
2021-11-08 16:37:23 +01:00
Kamil Śliwak
7b7cc081db externalTests: Helper for neutralizing package locks 2021-11-08 16:37:23 +01:00
Kamil Śliwak
b57c0a0b81 externalTests: Refactor to be more explicit and easier to adjust for special cases 2021-11-08 16:37:23 +01:00
Kamil Śliwak
7ccdbd5b08 Use consistent syntax for Bash function declarations 2021-11-08 16:34:07 +01:00
Marenz
fc224f74c7 Evaluate absolute paths for imports in 'parsing' stage 2021-11-08 16:34:02 +01:00
Kamil Śliwak
bc2402e76f externalTests: Use named tmp dirs 2021-11-08 16:29:59 +01:00
Kamil Śliwak
ed907561eb externalTests: Enable set -e in external tests 2021-11-08 16:29:52 +01:00
chriseth
080c7245ae Update tests. 2021-11-08 14:59:00 +01:00
chriseth
31c504c5ba Add test for extcodesize check. 2021-11-08 14:58:09 +01:00
chriseth
a1aa9d2d90 Skip extcodesize check if return data is expected. 2021-11-08 14:58:09 +01:00
chriseth
f9ba1bf3c8
Merge pull request #12227 from ethereum/smt_fix_gas
Fix ICE in CHC when using gas in the function options
2021-11-08 11:54:20 +01:00
Kamil Śliwak
1a19d9a5cf New CLI output in assembly mode: --ewasm-ir 2021-11-04 18:23:11 +01:00
Kamil Śliwak
affeff18f5 Don't ignore output selection in assembly mode 2021-11-04 18:23:11 +01:00
chriseth
766d10b848 Tests. 2021-11-04 16:38:07 +01:00
chriseth
776ae466bc Control flow side effects on non-disambiguated source. 2021-11-04 16:32:11 +01:00
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
Leo
58688bd9c1
Merge pull request #12167 from ethereum/smt_merge_query_entry_points
[SMTChecker] Merge all entry points for a target
2021-11-03 16:43:16 +01:00
Leo Alt
dff280cadc Fix ICE in CHC when using gas in the function options 2021-11-03 15:40:54 +01:00
chriseth
6b029c3349
Merge pull request #11974 from ethereum/newCodeTransformIROnly
New code transform (IR codegen only).
2021-11-03 14:52:28 +01:00
Kamil Śliwak
2d45099a87
Merge pull request #12118 from ethereum/separate-input-modes-for-help-license-version
Separate input modes for `--help`,  `--license` and `--version`
2021-11-03 12:52:47 +01:00
Kamil Śliwak
5ce85d7a90
Merge pull request #12187 from ethereum/external-tests-directly-on-upstream
Run external tests directly on upstream repo where possible
2021-11-03 12:51:46 +01:00
Daniel Kirchner
28ae316556 Named function labels. 2021-11-03 12:42:07 +01:00
Daniel Kirchner
1a0605c594 Update tests. 2021-11-03 12:39:55 +01:00
Leo Alt
e40cf92b1d [SMTChecker] Merge all entry points for a target 2021-11-03 11:12:58 +01:00
Kamil Śliwak
0417db0f6a Don't return an error from --help 2021-11-02 16:31:45 +01:00
Kamil Śliwak
a1c9c1e2b5 CommandLineInterface: Merge processInput() and actOnInput()
- The distinction between them is not as clear-cut as it should be. For example processInput() prints output in assembly mode.
2021-11-02 16:31:45 +01:00
Kamil Śliwak
93c1fe6878 Treat --help, --license and --version as separate input modes 2021-11-02 16:31:43 +01:00
chriseth
7f7c5ca171 New tests. 2021-11-02 11:59:01 +01:00
chriseth
3996d0a343 Update tests. 2021-11-02 11:59:01 +01:00
chriseth
5eb97fa6ee
Merge pull request #12219 from ethereum/precompile-extcodesize-check-test
Semantic test for high level call to precompiles.
2021-11-01 15:08:52 +01:00
hrkrshnn
7683442ce2 Semantic test for high level call to precompiles.
Because of the extcodesize check, the high level call will fail. Even though the low level call can
succeed and return data.
2021-11-01 14:22:48 +01:00
chriseth
8e208f23cb Fix assignment of return variables from modifiers. 2021-11-01 14:14:50 +01:00
Kamil Śliwak
464ac18a1f Rename negation_bug.yul to negation_bug.sol 2021-10-29 00:19:43 +02:00
Kamil Śliwak
558d9d4556
Merge pull request #12177 from DavidRomanovizc/patch-4
Include actual contract size in the code size warning
2021-10-29 00:18:07 +02:00
David Dzhalaev
79ffa16a61 Improve error message for contract size limit error 2021-10-27 20:06:53 +02:00
Kamil Śliwak
f4421f1b69 Disable metadata in syntax tests 2021-10-27 20:06:53 +02: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
hrkrshnn
8815d6f5f0 Moved a check related to constants to TypeChecker
And added a proper error message when constant types containing (nested) mapping types are used.
2021-10-26 18:43:04 +02:00
hrkrshnn
51009c005d Moved a canBeStored assert for struct members to TypeChecker
This is to avoid a assert from failing for forward declared user defined value types.
2021-10-26 18:43:04 +02:00
hrkrshnn
9428dbc94f Moved storage size assert to TypeChecker from DeclarationTypeChecker 2021-10-26 18:43:04 +02:00
Kamil Śliwak
14210825b1 externalTests/README: Recommend using upstream repository directly when possible 2021-10-26 16:04:08 +02:00
Kamil Śliwak
b8aed7ca86 Run external tests on latest upstream code where possible 2021-10-26 16:04:08 +02:00
Leo Alt
4f823c6342 CLI and JSON tests 2021-10-26 11:30:30 +02:00
Leo Alt
38b0cf7f9c SMTChecker tests 2021-10-26 11:30:30 +02:00
Leo Alt
2cbd496576 Adjust ModelCheckerSettings in tools tests 2021-10-26 11:30:30 +02:00
Leo Alt
37215ffcfd Add SMTCheckerTest isoltest option to ignore invariants 2021-10-26 11:30:30 +02:00
Kamil Śliwak
2162039c50
Merge pull request #12142 from ethereum/bash-assert-and-stack-traces
Assert and stack traces for Bash scripts
2021-10-26 10:44:39 +02:00
chriseth
e6e30f82ca
Merge pull request #12139 from ethereum/nonamedlabelsifnotunique
Do not use named function labels if function names are not unique.
2021-10-25 17:50:29 +02:00