Commit Graph

6323 Commits

Author SHA1 Message Date
chriseth
46514ffad2
Merge pull request #11520 from ethereum/local-streams-in-command-line-parser
Local output streams in CommandLineParser
2021-07-07 15:07:23 +02:00
Kamil Śliwak
baced5d10e Test for the --help option 2021-07-07 12:53:15 +02:00
Kamil Śliwak
6c33fbcb6a CommandLineParser: Replace global sout/serr streams with class members
- This removes the global variable and prevents stderr/stdout from being printed in tests
2021-07-07 12:53:15 +02:00
chriseth
566537835b
Merge pull request #11627 from ethereum/allowEmptyFileName
Include locations with empty source name.
2021-07-07 12:52:49 +02:00
Kamil Śliwak
ce11ebb687
Merge pull request #11518 from ethereum/command-line-parser
CommandLineParser
2021-07-07 12:51:09 +02:00
chriseth
6ba298c82b Include locations with empty source name. 2021-07-07 12:13:52 +02:00
Kamil Śliwak
ef7abd224d Tests for all input modes in CommandLineParser 2021-07-06 17:17:18 +02:00
Marenz
5291ca2dd4 isolate_tests: Extract code blocks from documentation using code block header 2021-07-06 16:57:05 +02:00
chriseth
8d5e82b406 Fix source location of builtin function calls. 2021-07-06 16:54:29 +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
105b4b4c8b Update tests 2021-07-05 13:46:53 +02:00
Kamil Śliwak
a72857df03 CommonIO: Replace readStandardInput() with readUntilEnd() with a configurable stream 2021-07-02 14:58:30 +02:00
Kamil Śliwak
e3b345e5f0 Use a simpler stack optimization test to avoid having ICE message with absolute paths as expected output 2021-07-01 17:29:24 +02:00
Kamil Śliwak
753f359157 Replace stack optimization command-line test with Standard JSON ones
- It's not possible to run optimizer with only stack optimization enabled on the CLI.
2021-07-01 16:54:09 +02:00
Kamil Śliwak
9d08b5001f Add sstore to linker tests to prevent the address from being optimized out 2021-07-01 16:54:09 +02:00
Kamil Śliwak
703a73f949 EVMCodeTransformTest: Disable all non-stack optimizations 2021-07-01 16:54:09 +02:00
Alex Beregszaszi
cd60ade472 Improve some Yul object and command line tests to avoid using pop() which can be optimized out 2021-07-01 16:54:09 +02:00
hrkrshnn
b628b115ae Manually enabled gas statistics for erc20 token test. 2021-06-30 16:35:53 +02:00
chriseth
13d1fc9f41
Merge pull request #11579 from ethereum/better-errors-about-bad-paths-in-tests-with-external-sources
Better errors about bad paths in tests with external sources
2021-06-30 11:56:47 +02:00
chriseth
54b1c667f1
Merge pull request #11595 from ethereum/issue-11526
Fix yul codegen bug when using binary negation.
2021-06-30 11:55:42 +02:00
Mathias Baumann
c47d02066c Fix yul codegen bug when using binary negatition. 2021-06-29 17:41:03 +02:00
chriseth
eaac16c779
Merge pull request #11590 from ethereum/disallow-non-hex-zero-and-fix-bytes32-literals-in-bytes-concat
Disallow non-hex zero literals and fix 32-byte hex literals in `bytes.concat()`
2021-06-29 16:34:26 +02:00
Kamil Śliwak
6a50d088a0 Fix ICE for 32-byte hex literals and zero literals in bytes.concat() by disallowing them 2021-06-29 14:48:42 +02:00
Kamil Śliwak
fa3696878b Fix crash when passing empty strings to bytes.concat() 2021-06-29 13:52:01 +02:00
Daniel Kirchner
c341445f8e Maintain disambiguation when generating new functions in StackToMemoryMover. 2021-06-28 18:11:57 +02:00
Daniel Kirchner
bc288aacf5 Have the stack optimization in the code transform only reuse slots that are reachable and fix argument slot reuse on functions without return variables. 2021-06-28 18:11:57 +02:00
Daniel Kirchner
dfce7b667d Move function arguments and return values. 2021-06-28 18:11:57 +02:00
chriseth
22402accfe
Merge pull request #11578 from ethereum/soltest-clearer-error-message-for-std-exception
Clearer error message for `std::exception` in soltest
2021-06-28 16:13:21 +02:00
Kamil Śliwak
19fada966f Do not use \b, \v and \f escapes in string literals in generated Yul code 2021-06-28 14:13:47 +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
ca0b1bf3f3 Fix crash when passing zero to bytes.concat() 2021-06-25 21:26:28 +02:00
Kamil Śliwak
e841479b4b TestCaseReader: Disallow UNC paths along with absolute ones 2021-06-25 18:41:21 +02:00
Kamil Śliwak
34425c351d Tests for readFileAsString() 2021-06-25 18:41:21 +02:00
Kamil Śliwak
8d5eaf400a Create FilesystemUtils with filesystem-related convenience helpers 2021-06-25 18:41:21 +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
Kamil Śliwak
82b720029d boostTest: Print diagnostic information for std::exception too 2021-06-25 13:25:10 +02:00
Kamil Śliwak
030fb1d9a2 boostTest: Give BOOST_REQUIRE_NO_THROW a smaller block of code to make the error message clearer when a test raises an unexpected exception 2021-06-25 13:22:15 +02:00
Alexander Arlt
8accf420ea [yul] Functions: Remove dependency on AST ID. 2021-06-23 16:15:25 +02:00
chriseth
26598a2603
Merge pull request #11569 from ethereum/fixcalltounimplementedmodifier
Prevent calls to unimplemented modifiers.
2021-06-23 09:25:02 +02:00
Kamil Śliwak
afb8fb4927 Create libraries for yul-phaser and solc to avoid compiling their sources again for soltest 2021-06-22 17:47:45 +02:00
chriseth
c5923f7fcf Prevent calls to unimplemented modifiers. 2021-06-22 17:08:28 +02:00
Kamil Śliwak
98e83303b1 Remove assertions preventing calldata->calldata conversion when cleanup is needed 2021-06-22 16:10:16 +02:00
Kamil Śliwak
0311b955c2 isolate_tests.py: Parse Sphinx block parameters correctly 2021-06-21 20:54:12 +02:00
Djordje Mijovic
838f59fa5b Adding origin location notation to yul ir. 2021-06-21 18:48:20 +02:00
chriseth
0df8a38e55 Support metadata via IR. 2021-06-21 18:20:31 +02:00
hrkrshnn
eb04dfcd3e Updated expectation of FixedFeeRegistrar.sol 2021-06-17 10:09:47 +02:00
chriseth
614683019b
Merge pull request #11426 from ethereum/test-fixedfee
Move contracts/FixedFeeRegistrar to semanticTests/externalContracts
2021-06-16 18:34:10 +02:00
chriseth
5b4a2f66e1 Directly restart processing calling functions. 2021-06-14 13:54:05 +02:00
Daniel Kirchner
284e8a103f Remove potentially non-deterministic test case. 2021-06-09 14:42:16 +02:00
chriseth
e5500b9f20
Merge pull request #11471 from ethereum/funcdef-unimplemented-modifier
Reports an error on unimplemented modifiers in a function definition.
2021-06-09 13:54:05 +02:00
Christian Parpart
a14ac1923d Fixes ICE when overriding an implemented modifier with an unimplemented one. 2021-06-09 13:15:20 +02:00
Kamil Śliwak
362fc6650d Extra tests for shadowing within function parameter lists 2021-06-09 12:37:12 +02:00
a3d4
f59145f21f Fix shadowing struct types by struct member names 2021-06-09 12:37:11 +02:00
a3d4
70b8b1c834 Do not warn about shadowing parameters in functions without implementation 2021-06-09 12:35:26 +02:00
Mathias Baumann
001a25db95 Fix crash in ControlFlowGraph related to free functions. 2021-06-09 11:10:33 +02:00
chriseth
3eaa37030a Fix infinite recursion in function call graph generator due to recursive constant references. 2021-06-08 16:39:30 +02:00
Mathias Baumann
354f9d1015 Fix: Allow multiple @return tags on public state variables 2021-06-07 15:16:46 +02:00
Mathias Baumann
aae9d347aa Split DocStringParsing in two stages
one requiring type info in the next step
2021-06-07 14:49:46 +02:00
chriseth
1f8f1a3db9
Merge pull request #11484 from ethereum/fix-unreachable-code-anaysis
Fix revert pruner modifying function flows wrong
2021-06-04 12:44:35 +02:00
chriseth
8da5d6a854 Update test expectations. 2021-06-04 12:04:04 +02:00
chriseth
a8ffa6c08d
Merge pull request #11482 from ethereum/fixUnreachable2
Fix control-flow handling of modifiers without body.
2021-06-03 16:56:05 +02:00
chriseth
2e3ee4c156 Fix control-flow handling of modifiers without body. 2021-06-03 13:31:15 +02:00
hrkrshnn
c3eef8af91 Fix ICE related to receive function having parameters. 2021-06-03 13:08:57 +02:00
chriseth
a30cf6c3e8
Merge pull request #11480 from ethereum/event-mapping-fatal-error
Errors about nested mapping in event parameter are fatal.
2021-06-03 11:39:26 +02:00
hrkrshnn
2309ae3edd Added tests for internal or recursive types as event / error param
After converting the error about mapping parameter in event / error into a fatal type error, we were
missing tests that reached the "internal or recursive types" error.
2021-06-03 11:02:27 +02:00
hrkrshnn
cc915f023e Errors about nested mapping in event parameter are fatal.
(Also applies for error parameters.)
2021-06-03 11:02:27 +02:00
chriseth
c55d173a28
Merge pull request #11479 from ethereum/fix-ice-when-assigning-implicitly-convertible-function-array-to-storage
Fix ICE when assigning implicitly convertible function array to storage
2021-06-03 10:52:21 +02:00
chriseth
b00027724a
Merge pull request #11478 from ethereum/fix-ice-when-calling-invalid-external-function-type
Treat invalid external function type as a fatal error
2021-06-03 09:00:38 +02:00
chriseth
93936129f1
Merge pull request #11476 from ethereum/fix-ice-on-library-bound-to-literal
Fix ICE in IR when a library is bound to a literal
2021-06-03 08:58:00 +02:00
Kamil Śliwak
ccf658b0e8 Fix assertion preventing assignment of arrays of implicitly convertible function types 2021-06-03 08:56:02 +02:00
Kamil Śliwak
4a19c7e495 Treat invalid external function type as a fatal error to prevent the type from being used
- `returnParameterTypesWithoutDynamicTypes()` assumes it won't encounter such types.
2021-06-02 21:44:39 +02:00
Kamil Śliwak
d96cc3469a FunctionDefinition.resolveVirtual(): Skip unimplemented functions when lookup happens via super 2021-06-02 16:16:15 +02:00
Kamil Śliwak
67e87147b4 Extra asserts, test renaming, test for super in modifiers 2021-06-02 16:15:51 +02:00
Kamil Śliwak
3c7112ed2b Remove the assertion against functions bound to types for which should not be possible
- The list was wrong - we do support string and int literals
- The assertion was meant to guard against silently skipping over types for which there is no special handling. The current code handles everything in a generic way though and likely will not have to be adjusted for newly added types so the risk of that happening is low.
2021-06-02 13:59:42 +02:00
chriseth
4cbf9ff74c
Merge pull request #10143 from ethereum/issue-10084
ControlFlowAnalyser: Also consider called functions in a flow
2021-06-01 19:34:56 +02:00
Leo Alt
bf21cd400c Fix conversion from bytes to fixed bytes 2021-06-01 17:55:18 +02:00
Mathias Baumann
56ebea8b2f ControlFlowAnalyser: Also consider called functions in a flow 2021-06-01 15:54:37 +02:00
Leo Alt
547a6915ad Fix ICE on external calls from constructor 2021-06-01 14:21:48 +02:00
Leo Alt
97a7c5429b Add SMTChecker tests with modules 2021-06-01 13:35:44 +02:00
Leo Alt
8eb28b10cb Add SMTChecker tests with modules 2021-06-01 13:35:10 +02:00
chriseth
0623658ddd Properly set source location of bare blocks. 2021-05-31 18:28:17 +02:00
Alexander Arlt
376836a7fb Fix typo. 2021-05-31 10:07:26 -05:00
Harikrishnan Mulackal
8ecf79474b
Merge pull request #11458 from ethereum/event_indexed_mixed
Add test with event where indexed parameters are not the first.
2021-05-31 16:19:52 +02:00
chriseth
3dfa68a574
Merge pull request #11456 from ethereum/ice-abstract-contract-mapping-constructor
Fix ICE related to mapping types in abstract contract constructor
2021-05-31 15:35:26 +02:00
chriseth
28aad7e0b4 Add test with event where indexed parameters are not the first. 2021-05-31 15:19:56 +02:00
hrkrshnn
138873d918 Fix ICE related to mapping types in abstract contract constructor 2021-05-31 14:56:49 +02:00
chriseth
c09dc6144c
Merge pull request #11050 from ethereum/isoltest-effects-events
[isoltest] Add support for events using call side-effects.
2021-05-31 14:38:14 +02:00
chriseth
6dd5bcd3f0
Merge pull request #11454 from ethereum/data-location-error
Error message: try-catch parameter cannot be in storage.
2021-05-31 14:31:01 +02:00
hrkrshnn
f582d48f7b Error message: try-catch parameter cannot be in storage. 2021-05-31 11:25:08 +02:00
chriseth
29a995b937
Merge pull request #11433 from ethereum/panic-dedup
Insert a call to panic function in legacy codegen (and not inline it every single time)
2021-05-31 11:23:30 +02:00
Alexander Arlt
85e3fcb1bf [isoltest] Extract event specific end-to-end tests. 2021-05-27 23:21:55 -05:00
Alexander Arlt
ec86e3e9ae [isoltest] Add support for events using call side-effects. 2021-05-27 23:21:55 -05:00
Alex Beregszaszi
47167a42a7 Update tests 2021-05-27 18:31:54 +01:00
Alex Beregszaszi
cc8d341e28 Include utility functions in ExpressionCompiler tests 2021-05-27 18:31:54 +01:00
Leo Alt
d828aeee23 Update test nondet 2021-05-26 22:12:49 +02:00
Leo Alt
cb017b95cf update tests 2021-05-26 22:12:49 +02:00
Alexander Arlt
3c57ede026 Fix for boost v1.76. 2021-05-26 08:44:23 -05:00
chriseth
caa833909d
Merge pull request #11244 from ethereum/berlin-gas-update
Change default EVM version to Berlin and update Gas costs.
2021-05-26 13:34:04 +02:00
hrkrshnn
dc15e31605 Increased the tolerance for two GasMeter tests. 2021-05-26 12:23:06 +02:00
hrkrshnn
97c9d21376 Force two tests to go out of gas. 2021-05-26 12:23:06 +02:00
hrkrshnn
4d6c951396 Isoltest gas update after Berlin gas cost changes 2021-05-26 12:23:06 +02:00
hrkrshnn
180e00f56d Updated tests after changing EVM version to Berlin 2021-05-26 12:23:06 +02:00
hrkrshnn
d5564a0304 Set default EVM version to Berlin 2021-05-26 12:23:06 +02:00
hrkrshnn
7d28ea3746 Updated gas costs for Berlin 2021-05-26 11:36:43 +02:00
chriseth
6640fb8c8a
Merge pull request #11048 from ethereum/isoltest-effects
[isoltest] Add support for call side-effects.
2021-05-25 17:24:34 +02:00
hrkrshnn
d80a92752a Added a gas test for storage costs 2021-05-25 12:42:32 +02:00
hrkrshnn
1839d195be Clears EIP-2929 account and storage access indicator on new blocks.
For semantic tests each test (in the same test file) happens on a new block, however the storage and
account access indicators were not reset.
2021-05-25 12:32:59 +02:00
Alexander Arlt
66099fe938 [isoltest] Remove storage command left overs. 2021-05-24 08:36:46 -05:00
Alexander Arlt
e9ee571b35 [isoltest] Add support for call side-effects. 2021-05-22 00:12:07 -05:00
Kamil Śliwak
29c8f282e4
Merge pull request #11419 from ethereum/sc-inline
Properly support inliner in settings.optimizer.details
2021-05-21 17:51:39 +02:00
Alex Beregszaszi
cb2c246a7b Move contracts/FixedFeeRegistrar to semanticTests/externalContracts 2021-05-21 13:51:19 +01:00
Alexander Arlt
799106acfe [isoltest] Add account builtin.
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
2021-05-21 12:38:05 +01:00
Alex Beregszaszi
75c72cd54d Properly support inliner in settings.optimizer.details 2021-05-20 20:22:34 +01:00
Alex Beregszaszi
13388e283e
Merge pull request #11385 from ethereum/temporary-working-directory-helper
TemporaryWorkingDirectory helper
2021-05-20 20:06:03 +01:00
Kamil Śliwak
4a2080b3aa TemporaryDirectory: Use boost::filesystem::equivalent() instead of == in path comparisons 2021-05-20 00:07:42 +02:00
Kamil Śliwak
828b15b34f Implement TemporaryWorkingDirectory test helper 2021-05-20 00:07:42 +02:00
Kamil Śliwak
d85cc6c06a Fix dangling reference produced by temporary passed to TestFileParser going out of scope
- This fixes the `stack-use-after-scope` error reported by asan.
2021-05-19 23:27:41 +02:00
Kamil Śliwak
752483b92f Minor style tweaks in test TestFileParser (names and wrapping) 2021-05-19 23:27:41 +02:00
Leonardo
dac24294c7
Merge pull request #11384 from ethereum/expose-temporary-directory-helper
Expose TemporaryDirectory helper
2021-05-18 12:44:10 +02:00
Harikrishnan Mulackal
21af5408d9
Merge pull request #11397 from ethereum/v1-test-cleanup
Cleanup ABICoder V1 tests
2021-05-17 16:20:22 +02:00
Martin Blicha
9c98ab59f0 SMTChecker: fixed struct constructor where FixedBytes member is initialized with a string literal 2021-05-17 13:52:37 +02:00
Alex Beregszaszi
3e8e5f3bf9 Fix v1/v2 tests to behave like they did pre-0.8.0 2021-05-17 12:37:10 +01:00
Alex Beregszaszi
299873182b Cleanup ABICoder V1 tests
Include the pragma explicitly, rename the file to have a _v1 suffix, and also add V2 counterparts where missing.
2021-05-17 12:37:10 +01:00
Harikrishnan Mulackal
85552b58d8
Merge pull request #11392 from ethereum/evmc-transfer
EVMHost: Fix selfdestruct with non-zero value at beneficiary and value-transfers with insufficient funds
2021-05-17 12:27:41 +02:00
Harikrishnan Mulackal
e76a8cbc31
Merge pull request #11395 from ethereum/prbmath
Fix prbmath.exp tests
2021-05-17 11:28:15 +02:00
Alex Beregszaszi
e73ee468a8 Update tests 2021-05-14 19:56:26 +01:00
Alex Beregszaszi
bb7f500bb1 Add sanity check into SemanticTest for not allowing ABIEncoderV1Only and compileViaYul together 2021-05-14 19:56:26 +01:00
Alex Beregszaszi
7dc514847a Fix prbmath.exp tests 2021-05-14 15:29:12 +01:00
Alex Beregszaszi
a54699f452 EVMHost: Fix selfdestruct with non-zero value at beneficiary and value-transfers with insufficient funds
Create a helper for transfering balance between two accounts. Check sufficient funds are available during a call-with-value.
2021-05-14 00:10:49 +01:00
Alex Beregszaszi
3172d28c56 Upgrade hera to v0.3.2-evmc8 2021-05-13 13:15:13 +01:00
Kamil Śliwak
cdebbb0dbb TemporaryDirectory: Expose boost::filesystem::path in class interface 2021-05-12 18:08:17 +02:00
Kamil Śliwak
5619702d31 Extract TemporaryDirectory test helper from yulPhaser's tests into a more general location 2021-05-12 17:16:29 +02:00
Alex Beregszaszi
99354a3b59 Upgrade evmone to 0.7.0 2021-05-12 16:56:23 +02:00
Alex Beregszaszi
c66c5c9f1d EVMHost: properly populate implicit access list for Berlin 2021-05-12 16:49:04 +02:00
Alex Beregszaszi
5bfd26287c Upgrade to EVMC 8.0.0 2021-05-12 16:49:04 +02:00
Daniel Kirchner
98e2b4e5ed
Merge pull request #11374 from ethereum/semanticTestVMLoadingAndFailures
Change loading of VMs and error messages during test.
2021-05-12 16:47:16 +02:00
Daniel Kirchner
06a9199967 Change loading of VMs and error messages during test. 2021-05-12 14:48:37 +02:00
Leo Alt
880a2fffb6 tests 2021-05-11 21:20:42 +02:00
Daniel Kirchner
6104ac1cdf Remove more imports of ranges namespace. 2021-05-07 15:42:17 +02:00
Djordje Mijovic
53e3081e81 Update gas costs in tests. 2021-05-05 11:33:09 +02:00
Djordje Mijovic
f0c5cdca9f [Sol->Yul] Adding util function to copy literal to storage.
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>

Co-authored-by: chriseth <chris@ethereum.org>
2021-05-05 11:33:03 +02:00
chriseth
9d156b52c4
Merge pull request #8868 from ethereum/functionEntryPoints
Note function entry points.
2021-05-05 11:08:44 +02:00
chriseth
6d41ed024a Update existing tests. 2021-05-05 10:28:23 +02:00
chriseth
e7708b6006 Properly treat utf8-non-encodable yul literals. 2021-05-05 10:28:23 +02:00
Djordje Mijovic
8f6d94dbd2 Update gas expectations in semantic tests. 2021-05-05 08:53:40 +02:00
chriseth
f9c94d7c42 Note function entry points. 2021-05-04 17:15:13 +02:00
chriseth
faca036837
Merge pull request #11294 from ethereum/yulAstDebugDataRefactor
Removing location in favor of debugData in yul AST structures
2021-05-04 17:05:40 +02:00
Djordje Mijovic
e404b6e7a6 Refactoring yul source locations. 2021-05-04 16:05:23 +02:00
chriseth
aded56b5b9 Update tests 2021-05-03 18:28:43 +02:00
chriseth
2e274a0b26 Add commandline test to show debug strings. 2021-05-03 18:28:39 +02:00
Leo Alt
1642c10f6e Fix ICE in free functions 2021-05-03 10:57:11 +02:00
chriseth
996f3d31d5
Merge pull request #11321 from ethereum/test-prbmath
Add semantictest using prbmath
2021-05-03 10:36:30 +02:00
Alexander Arlt
68f0f36a2d [soltest] Improve Builtin Initialization. 2021-05-02 22:13:40 -05:00
chriseth
426d60f07b Commandline test updates. 2021-04-29 16:46:25 +02:00
chriseth
fcc98d12b8 Gas updates. 2021-04-29 16:45:05 +02:00
chriseth
f30ef06d62 Update tests. 2021-04-29 15:08:54 +02:00
Alexander Arlt
19ad9fac99 [isoltest] Add support to query balance. 2021-04-28 16:19:05 +02:00
chriseth
e1ae4e37a0 Allow user-defined functions called like builtins. 2021-04-28 16:16:32 +02:00
chriseth
5c02837485
Merge pull request #10982 from ethereum/storage_builtin
[isoltest] Replace storage command with storage builtin.
2021-04-28 15:38:29 +02:00
chriseth
2cd0bb11dc
Merge pull request #11316 from ethereum/verbatimdata-tests
Added a few optimizer tests for Verbatim
2021-04-28 10:19:19 +02:00
hrkrshnn
8b4eaeabbf Added a few optimizer tests for Verbatim 2021-04-28 09:56:45 +02:00
Alexander Arlt
ed27c77def [isoltest] Ignore gas checks on isoltest builtins. 2021-04-27 16:28:37 -05:00
Alexander Arlt
1f2711b0aa [isoltest] Replace storage command with 'storage_empty' builtin. 2021-04-27 16:28:37 -05:00
Alex Beregszaszi
0b3f3dff60 Add ramanujan's pi approximation as a semantic test 2021-04-27 20:47:42 +01:00
Alex Beregszaszi
484a4398a7 Add semantic tests using prb-math 2021-04-27 20:23:13 +01:00
Alex Beregszaszi
ada046ba9a Import prb-math for testing
From 62021c1abc
2021-04-27 20:08:33 +01:00
Alex Beregszaszi
5852972ec1
Merge pull request #11309 from ethereum/test-stringutils
Add some semantic tests using stringutils
2021-04-27 18:12:37 +01:00
Alex Beregszaszi
5331bc679a Fix some issues regarding checked arithmethics in stringutils 2021-04-27 17:05:40 +01:00
Alex Beregszaszi
6b3357be50 Add semantic tests using stringutils 2021-04-27 17:02:54 +01: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
Kamil Śliwak
43de99dee5 Use 'optimizationPreset: none' for objectCompiler tests that rely on things that could get optimized out 2021-04-27 14:07:04 +02:00
Kamil Śliwak
a51d72fb89 ObjectCompilerTest: Replace 'optimize' setting with 'optimizationPreset' 2021-04-27 14:06:56 +02:00
Kamil Śliwak
9c6f8c011f TestCaseReader: Add enumSetting() 2021-04-27 14:06:56 +02:00
Kamil Śliwak
28b9d27fae SoltestErrors: Qualify runtime_error with std:: to make it possible to use in in headers 2021-04-27 13:43:07 +02:00
Alex Beregszaszi
1a556aaa7f Move compilationTests/stringutils to semanticTests/externalContracts 2021-04-27 11:21:14 +01:00
chriseth
f72592549b
Merge pull request #11110 from ethereum/issue_10475_isoltest_external_sources
[isoltest] Add support for external sources.
2021-04-27 10:54:39 +02:00
Alexander Arlt
da38149f57 [test] Add support for --enforce-compile-to-ewasm. 2021-04-26 20:31:03 -05:00
chriseth
2b5a24e82e Add function side effects test. 2021-04-26 19:56:44 +02:00
chriseth
cb1af8b88a Make verbatim compatible with KnownState. 2021-04-26 19:56:44 +02:00
chriseth
e2d8005737 Add verbatim builtin. 2021-04-26 19:56:44 +02: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
Alexander Arlt
8239eaa1b8 Fix test builtins & add simple smoke test. 2021-04-26 07:51:43 -05:00
chriseth
d9df3d50e2
Merge pull request #11311 from anurag-git/issue_10738-3
Use range-v3 loops(remove_erase, remove_erase_if)
2021-04-26 14:18:15 +02:00
chriseth
659da4bdc7
Merge pull request #11047 from ethereum/bytesToBytesNNConversion
Bytes to bytesNN conversion
2021-04-26 11:51:41 +02:00
anurag4u80
c4cf412fed Replaced boost remove_erase and remove_erase_if 2021-04-24 08:10:41 +05:30
Alex Beregszaszi
60189b4f61 Remove obsolete Error constructor 2021-04-23 23:55:22 +01:00
Kamil Śliwak
173a511809
Merge pull request #11303 from ethereum/noncopyable
Remove the usage of boost::noncopyable
2021-04-23 22:38:49 +02:00
Alex Beregszaszi
f952f851b7 Enable more semantic tests for Ewasm 2021-04-23 17:00:01 +01:00
Alex Beregszaszi
73b804aff4 Update tests 2021-04-23 15:54:10 +01:00
Alex Beregszaszi
e39433198d Remove the usage of boost::noncopyable
Prior to this half of the codebase used explicit deleted copy constructors, the others used boost::noncopyable.
2021-04-23 14:57:01 +01:00
Alex Beregszaszi
ac192ff4c1 Drop the util::u160 type 2021-04-23 14:35:06 +01:00
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
Djordje Mijovic
eb457064b1 Adding semantic tests for bytes to bytesNN conversion. 2021-04-23 13:30:19 +02:00
Djordje Mijovic
ece42c07df Adding syntax test for bytes to bytesNN conversion. 2021-04-23 13:19:19 +02:00
Harikrishnan Mulackal
f162c484ca
Merge pull request #11026 from ethereum/resolve-keccak
Evaluate ``keccak256(a, const)``, when the value at memory location ``a`` is known at compile time and ``const <= 32``
2021-04-22 19:18:19 +02:00
hrkrshnn
b599235b8d Skip resolving Keccak if AST contains msize.
Also a refactoring changing `m_optimizeMLoad` to `m_containsMSize`.
2021-04-22 18:19:47 +02:00
hrkrshnn
3d29ae73e7 Isoltest: updated the gas tests. 2021-04-22 18:19:47 +02:00
hrkrshnn
b636ef881e Added command line tests for keccak optimization with low runs
The value of keccak256(0, 32) should not be replaced by the big constant
2021-04-22 18:19:47 +02:00
hrkrshnn
221292c278 Tests and changelog 2021-04-22 18:19:47 +02:00
hrkrshnn
1f5b874eaf Optimizer context has parameter expectedExecutionsPerDeployment 2021-04-22 17:27:57 +02:00
chriseth
a6a3af58a0 Add test. 2021-04-22 17:23:56 +02:00
chriseth
ec4558a245 Update gas costs. 2021-04-22 16:54:02 +02:00
chriseth
314f361d07 Update commandline tests. 2021-04-22 16:54:02 +02:00
chriseth
00fb2d390b Do not replace zeros by return variable. 2021-04-22 16:54:02 +02:00
Đorđe Mijović
8840fb6ffd
Merge pull request #11270 from ethereum/addingBoundsByteArraySolYul 2021-04-22 15:41:32 +02:00
chriseth
e408b708ac Use "for objects" dialect for function side effects test. 2021-04-22 14:37:51 +02:00
Djordje Mijovic
3a4233f3ad [Sol->Yul] Adding bounds check when increasing size of byte array. 2021-04-22 11:42:46 +02:00
chriseth
35b651103d Adjust cost of literal zero. 2021-04-22 11:42:42 +02:00
Alex Beregszaszi
8fb7a18800 Small refactorings for isoltest 2021-04-22 01:04:34 +01:00
Alex Beregszaszi
f1aaae36ee Upgrade to EVMC 7.5.0
One important change: MockedAccount.storage is a map and not unordered_map
2021-04-21 21:05:40 +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
chriseth
c3d73982ea
Merge pull request #11268 from ethereum/refactorByteArrayPopSol2Yul
[Sol->Yul] Refactor ByteArrayPop to use unchecked index access
2021-04-21 13:05:00 +02:00
chriseth
e2120f1f2f
Merge pull request #11272 from ethereum/replace-boost-with-rangev3-solgen
Remove most boost usages in Yul proto converter
2021-04-21 12:21:57 +02:00
Djordje Mijovic
d03744489f Update cmdline tests. 2021-04-21 11:01:22 +02:00
Djordje Mijovic
9fcf16900d Update gas costs in smeantic tests. 2021-04-21 11:01:22 +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
Alex Beregszaszi
4177270562 Trivial isoltest updates: comments always on the same line 2021-04-20 17:38:29 +02:00
Alex Beregszaszi
1be07c2b36 Trivial isoltest updates: missing // ---- at the end 2021-04-20 17:38:29 +02:00
Alex Beregszaszi
84c05d35f3 Trivial isoltest updates: normalized whitespace 2021-04-20 17:38:29 +02:00
Alex Beregszaszi
45c6bbe02b Trivial isoltest updates: directives sorted alphabetically 2021-04-20 17:21:56 +02:00
chriseth
cf7f814a4e
Merge pull request #10921 from ethereum/issue-10881
Natspec: Don't copy from base function if return parameters differ
2021-04-20 15:33:48 +02:00
Leonardo Alt
a39a6e26da update tests 2021-04-19 19:23:18 +02:00
Leonardo Alt
80892c8a21 Fix nondeterminism 2021-04-19 19:23:18 +02:00
Leonardo Alt
36def3ef6e tests for free constants 2021-04-19 19:23:18 +02:00
Leonardo Alt
fd8b4afb76 new free function tests 2021-04-19 19:23:18 +02:00
Leonardo Alt
095d337140 Basic support to free constants 2021-04-19 19:23:18 +02:00
Leonardo Alt
6ae82fcec2 Add tests for the library bug 2021-04-19 19:23:18 +02:00
Leonardo Alt
4e34359063 Basic support to free functions 2021-04-19 19:23:18 +02:00
chriseth
6a0a51110d
Merge pull request #11256 from ethereum/smt_target_array
Change settings.modelChecker.targets to take an array instead of string
2021-04-19 18:47:06 +02:00
Leonardo Alt
e3abde43f5 Change settings.modelChecker.targets to take an array instead of string 2021-04-19 17:53:03 +02:00
Kamil Śliwak
0d4871ad10 Prevent adding '-' CLI flag to allowed paths as if it was an actual file
- This resulted in a bug where using stdin was effectively disabling allowed path checks.
2021-04-19 16:58:48 +02:00
Kamil Śliwak
2abd3073d4
Merge pull request #11235 from ethereum/cmdline-tests-for-stdin
Allow using stdin in cmdlineTests
2021-04-19 16:21:43 +02:00
chriseth
1feca5dddb
Merge pull request #11259 from ethereum/exportErrorsInAst
Export used errors in the AST.
2021-04-19 15:53:32 +02:00
Mathias Baumann
1737bd7ded Natspec: Don't copy from base function if return parameters differ 2021-04-19 15:20:30 +02:00
chriseth
8eb0d5edf6 Export used errors in the AST. 2021-04-19 14:15:50 +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
Kamil Śliwak
7b467a49d7 Disable assertion that gives non-deterministic results in in slice tests for SMTChecker 2021-04-15 17:14:21 +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
Christian Parpart
81c7b30a6a
Merge pull request #11234 from ethereum/fix-file-reader-compiler-stack-source-unit-name-mismatch
Use identical source unit names in FileReader and CompilerStack
2021-04-14 13:46:14 +02:00
chriseth
11b227e33e
Merge pull request #11205 from ethereum/fix-docstring-bug
Fix docstring bug
2021-04-14 13:18:33 +02:00
Djordje Mijovic
ea5cda08c8 Adding tests for bytes.concat with fixed bytes arguments. 2021-04-14 11:21:24 +02:00
Bhargava Shastry
b1392ac988 Fix use of const ref in Abiv2 and other proto fuzzers. 2021-04-13 19:38:43 +02:00
Kamil Śliwak
59ef75cf5a cmdlineTests: Allow providing content of the standard input when not testing via Standard JSON 2021-04-13 13:37:12 +02:00
Kamil Śliwak
4e4f46cde5 cmdlineTests: Allow tests with no input file 2021-04-13 13:37:12 +02:00