Commit Graph

89 Commits

Author SHA1 Message Date
Paweł Bylica cbe260d9cb
test: Rework cpp.result unit test 2019-09-25 13:13:56 +02:00
Paweł Bylica 89e6fb2342
Remove deprecated tracing API 2019-09-25 08:58:03 +02:00
Paweł Bylica 5ba077a384
Rename evmc_context to evmc_host_context 2019-09-20 12:49:58 +02:00
Paweł Bylica 0338ac49cf
cpp: Rename evmc::vm to evmc::VM 2019-09-19 17:40:34 +02:00
Paweł Bylica e87b24dfe1
instructions: Set gas cost for undefined instructions to 0 2019-09-19 16:07:20 +02:00
Paweł Bylica 428e9b1463
test: Change EXPECT to ASSERT to protect against invalid memory access 2019-09-13 12:57:29 +02:00
Paweł Bylica 4d4e8e6f37
cmake: Upgrade GTest to 1.8.1 2019-09-13 11:59:10 +02:00
Paweł Bylica 0056ef28e6
test: Fix comparison type mismatches
This would cause issue in GTest 1.8.1 on Visual Studio.
2019-09-13 11:57:40 +02:00
Paweł Bylica d0253e5258
cpp: Remove deprecated helpers.hpp 2019-08-21 22:30:55 +02:00
Alex Beregszaszi 0d53dfa8bc instructions: add repricing from EIP-1884 2019-08-21 20:18:06 +02:00
Alex Beregszaszi 3e9e76d5d6 instructions: add SELFBALANCE from EIP-1884 2019-08-21 20:17:48 +02:00
Alex Beregszaszi 14d5def808 Add Berlin HF 2019-08-21 15:37:24 +02:00
Andrei Maiboroda cd93feaf9f
Support for EIP-1344 CHAINID opcode 2019-08-21 11:46:55 +02:00
Alex Beregszaszi dd065265d9 examples: add evmc_tx_context to ExampleHost 2019-08-08 18:11:28 +02:00
Paweł Bylica 55329d8dfa
helpers, cpp: Add evmc_make_result() for constructing results
This moves the evmc_result construction logic from evmc::result() constructor to helper.h. This function is now exposed as a C helper, C++ evmc::make_result() helper and used in the evmc::result() constructor.
This is convenient for VM implementations which need to construct C evmc_result, not C++ evmc::result.
2019-08-06 12:27:39 +02:00
Paweł Bylica e4ae2162c5
cpp: Add evmc::result constructor to copy output 2019-08-06 09:52:42 +02:00
Paweł Bylica 4ac70471ec
cpp: Rename literal suffixes: _addr -> _address, _b32 -> _bytes32 2019-07-24 13:17:28 +02:00
Paweł Bylica c358c4a024
cpp: Add user-defined literals for basic types 2019-07-24 13:17:27 +02:00
Paweł Bylica 87f2c680cb
test: Bring back the unit tests of deprecated features 2019-07-24 13:06:37 +02:00
Paweł Bylica 7e4db85487
cpp: Deprecate helpers.hpp 2019-07-24 13:06:36 +02:00
Paweł Bylica 279c1cd6e7
test: Move an unit test from "helpers" to "cpp" 2019-07-23 14:07:44 +02:00
Paweł Bylica 6b46dfb7b0
test: Do not include helpers.hpp 2019-07-23 14:07:44 +02:00
Paweł Bylica 18e6dabe73
cpp: Add is_zero() and explicit bool() for basic types 2019-07-23 14:07:43 +02:00
Paweł Bylica 635aebeb66
cpp: Add std::hash specializations for basic types 2019-07-23 14:07:43 +02:00
Paweł Bylica 0bde57ec09
cpp: Basic types comparisons 2019-07-23 14:07:42 +02:00
Paweł Bylica e74f42e2ef
cpp: Add basic types with default constructor 2019-07-23 14:07:42 +02:00
Alex Beregszaszi be56b092b5 examples: Move example_vm into the examples/example_vm subdirectory 2019-07-23 12:16:44 +01:00
Paweł Bylica 6a92cb8b38
instructions: Add tests for Istanbul 2019-07-23 12:51:00 +02:00
Paweł Bylica 7e2fdd5dc1
instructions: Add tests for Petersburg 2019-07-23 12:50:31 +02:00
Paweł Bylica ed33e98dd8
instructions: Add systematic tests to compare with prev revisions 2019-07-23 12:50:31 +02:00
Paweł Bylica e1ff8cb007
cpp: Add unit test for evmc::vm move to itself 2019-07-03 19:37:17 +02:00
Paweł Bylica 1f3243a55e
cpp: Allow checking if evmc::vm is valid 2019-07-03 19:37:16 +02:00
Paweł Bylica fff439a53b
cpp: Allow moving evmc::vm 2019-07-03 19:37:16 +02:00
Paweł Bylica 4381f339d4
test: Rework tests for 32-bit architectures support 2019-06-27 14:02:06 +02:00
Paweł Bylica 52689e049e
helpers: Extend fnv1a implementation to support 32-bit architectures 2019-06-27 14:02:05 +02:00
Paweł Bylica fb471ef3e7
loader: Standardize configuration syntax and add evmc_load_and_configure() 2019-06-27 13:43:51 +02:00
Paweł Bylica 45da8cfce8
loader: Use strcpy_sx() everywhere
Previously we used strcpy_s() standard library function on Windows, but it triggers some additional handlers in some cases. To have the same behavior use strcpy_sx() everywhere.
2019-06-27 13:39:43 +02:00
Paweł Bylica a31c82373f
test: Rewrite an unit test to avoid UBSan warning
Previously in the last iteration of the for loop the value EVMC_MAX_REVISION + 1 is assigned to rev of type evmc_revision what triggers an UBSan warning.
2019-06-27 10:18:51 +02:00
Paweł Bylica 81db59cede
loader: Make error_code in evmc_load_and_create() optional 2019-06-05 16:07:49 +02:00
Paweł Bylica 8c3b3e61e6
loader: Change strcpy_sx() to be limited version of strcpy_s()
The strcpy_sx() now reports errors and behaves as strcpy_s() when buffer is too small (nulls the buffer). But it does not have all the checks.
2019-05-31 08:15:17 +02:00
Paweł Bylica 5757da5859
loader: Expose strcpy_sx() for testing 2019-05-31 08:15:17 +02:00
Paweł Bylica 7b02081f2e
loader: Destroy VM with incompatible ABI
When a VM is loaded but turns out is has incompatible ABI version it should be destroyed before reporting the loading error and returning a null handle.

Fixes https://github.com/ethereum/evmc/issues/305
2019-05-30 14:21:04 +02:00
Paweł Bylica ba10da07d0
loader: Use new VM mock with wrong ABI version 2019-05-30 14:15:20 +02:00
Paweł Bylica 591ac7c3a8
loader: Add more interesting VM mocks for unit tests 2019-05-30 14:10:00 +02:00
Paweł Bylica 6292d1780e
cpp: Add vm::get_capabilities() method 2019-05-29 13:11:52 +02:00
Paweł Bylica 594da7553e
cpp: Rename result::raw() to result::release_raw() 2019-05-16 08:55:55 +02:00
Paweł Bylica 8423fac003
Merge branch 'release/6.2'
# Conflicts:
#	.bumpversion.cfg
#	CHANGELOG.md
#	CMakeLists.txt
#	bindings/rust/evmc-sys/Cargo.toml
#	bindings/rust/evmc-vm/Cargo.toml
2019-05-16 08:55:35 +02:00
Paweł Bylica 7b42c81f53
cmake: Add evmc/ prefix to ctest names 2019-05-15 14:45:10 +02:00
Paweł Bylica 3c91910f52
cpp: Add unit test for moving evmc::result 2019-05-14 17:57:59 +02:00
Paweł Bylica 577340763c
cpp: Include <vector> to show MSVC compilation error
This is related to misuse of `std::swap<evmc_result>`. We should not use explicit template arguments, because this disabled SFINAE and forces instantiation of all overloads.
2019-05-14 16:13:00 +02:00