From 3f61ff481785a34d48a9a7fbfe683da61b4f071f Mon Sep 17 00:00:00 2001 From: yarkin Date: Sun, 8 Oct 2023 13:06:18 +0800 Subject: [PATCH 1/4] Exclude RS value tests as we extended the usage of it. --- cmd/test/ethereum.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cmd/test/ethereum.cpp b/cmd/test/ethereum.cpp index 9fed09da2..e738b81a4 100644 --- a/cmd/test/ethereum.cpp +++ b/cmd/test/ethereum.cpp @@ -58,7 +58,9 @@ static const std::vector kSlowTests{ kBlockchainDir / "GeneralStateTests" / "VMTests" / "vmPerformance", }; -static const std::vector kFailingTests{}; +static const std::vector kFailingTests{ + kTransactionDir / "ttRSValue", +}; static constexpr size_t kColumnWidth{80}; From 4b0aa884699c56f3335dfcc60b2db771d16cb634 Mon Sep 17 00:00:00 2001 From: yarkin Date: Sun, 8 Oct 2023 13:15:45 +0800 Subject: [PATCH 2/4] Exclude tests in more precise way. --- cmd/test/ethereum.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/test/ethereum.cpp b/cmd/test/ethereum.cpp index e738b81a4..943e1464f 100644 --- a/cmd/test/ethereum.cpp +++ b/cmd/test/ethereum.cpp @@ -59,7 +59,7 @@ static const std::vector kSlowTests{ }; static const std::vector kFailingTests{ - kTransactionDir / "ttRSValue", + kTransactionDir / "ttRSValue" / "TransactionWithRSvalue0.json", }; static constexpr size_t kColumnWidth{80}; From e90b353939337e539698de5208a5e09f4a19d8bd Mon Sep 17 00:00:00 2001 From: yarkin Date: Sun, 8 Oct 2023 14:45:26 +0800 Subject: [PATCH 3/4] Fix gas estimation oracle tests. --- .../silkrpc/core/estimate_gas_oracle_test.cpp | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/silkworm/silkrpc/core/estimate_gas_oracle_test.cpp b/silkworm/silkrpc/core/estimate_gas_oracle_test.cpp index 76d11a927..1211c8cba 100644 --- a/silkworm/silkrpc/core/estimate_gas_oracle_test.cpp +++ b/silkworm/silkrpc/core/estimate_gas_oracle_test.cpp @@ -102,7 +102,7 @@ TEST_CASE("estimate gas") { SECTION("Call empty, always fails but success in last step") { ExecutionResult expect_result_ok{.error_code = evmc_status_code::EVMC_SUCCESS}; - ExecutionResult expect_result_fail{.pre_check_error = "intrisic gas"}; + ExecutionResult expect_result_fail{.pre_check_error = "intrinsic gas too low"}; EXPECT_CALL(estimate_gas_oracle, try_execution(_, _, _)) .Times(16) .WillOnce(Return(expect_result_fail)) @@ -137,7 +137,7 @@ TEST_CASE("estimate gas") { SECTION("Call empty, alternatively fails and succeeds") { ExecutionResult expect_result_ok{.error_code = evmc_status_code::EVMC_SUCCESS}; - ExecutionResult expect_result_fail{.pre_check_error = "intrisic gas"}; + ExecutionResult expect_result_fail{.pre_check_error = "intrinsic gas too low"}; EXPECT_CALL(estimate_gas_oracle, try_execution(_, _, _)) .Times(14) .WillOnce(Return(expect_result_fail)) @@ -162,7 +162,7 @@ TEST_CASE("estimate gas") { SECTION("Call empty, alternatively succeeds and fails") { ExecutionResult expect_result_ok{.error_code = evmc_status_code::EVMC_SUCCESS}; - ExecutionResult expect_result_fail{.pre_check_error = "intrisic gas"}; + ExecutionResult expect_result_fail{.pre_check_error = "intrinsic gas too low"}; EXPECT_CALL(estimate_gas_oracle, try_execution(_, _, _)) .Times(14) .WillOnce(Return(expect_result_ok)) @@ -188,7 +188,7 @@ TEST_CASE("estimate gas") { SECTION("Call with gas, always fails but succes last step") { call.gas = kTxGas * 4; ExecutionResult expect_result_ok{.error_code = evmc_status_code::EVMC_SUCCESS}; - ExecutionResult expect_result_fail{.pre_check_error = "intrisic gas"}; + ExecutionResult expect_result_fail{.pre_check_error = "intrinsic gas too low"}; EXPECT_CALL(estimate_gas_oracle, try_execution(_, _, _)) .Times(17) .WillOnce(Return(expect_result_fail)) @@ -228,7 +228,7 @@ TEST_CASE("estimate gas") { SECTION("Call with gas_price, gas not capped") { ExecutionResult expect_result_ok{.error_code = evmc_status_code::EVMC_SUCCESS}; - ExecutionResult expect_result_fail{.pre_check_error = "intrisic gas"}; + ExecutionResult expect_result_fail{.pre_check_error = "intrinsic gas too low"}; call.gas = kTxGas * 2; call.gas_price = intx::uint256{10'000}; @@ -258,7 +258,7 @@ TEST_CASE("estimate gas") { SECTION("Call with gas_price, gas capped") { ExecutionResult expect_result_ok{.error_code = evmc_status_code::EVMC_SUCCESS}; - ExecutionResult expect_result_fail{.pre_check_error = "intrisic gas"}; + ExecutionResult expect_result_fail{.pre_check_error = "intrinsic gas too low"}; call.gas = kTxGas * 2; call.gas_price = intx::uint256{40'000}; @@ -285,7 +285,7 @@ TEST_CASE("estimate gas") { SECTION("Call with gas_price and value, gas not capped") { ExecutionResult expect_result_ok{.error_code = evmc_status_code::EVMC_SUCCESS}; - ExecutionResult expect_result_fail{.pre_check_error = "intrisic gas"}; + ExecutionResult expect_result_fail{.pre_check_error = "intrinsic gas too low"}; call.gas = kTxGas * 2; call.gas_price = intx::uint256{10'000}; call.value = intx::uint256{500'000'000}; @@ -316,7 +316,7 @@ TEST_CASE("estimate gas") { SECTION("Call with gas_price and value, gas capped") { ExecutionResult expect_result_ok{.error_code = evmc_status_code::EVMC_SUCCESS}; - ExecutionResult expect_result_fail{.pre_check_error = "intrisic gas"}; + ExecutionResult expect_result_fail{.pre_check_error = "intrinsic gas too low"}; call.gas = kTxGas * 2; call.gas_price = intx::uint256{20'000}; call.value = intx::uint256{500'000'000}; @@ -364,7 +364,7 @@ TEST_CASE("estimate gas") { } SECTION("Call with too high value, exception") { - ExecutionResult expect_result_fail{.pre_check_error = "intrisic gas"}; + ExecutionResult expect_result_fail{.pre_check_error = "intrinsic gas too low"}; call.value = intx::uint256{2'000'000'000}; try { @@ -382,7 +382,7 @@ TEST_CASE("estimate gas") { } SECTION("Call fail, try exception") { - ExecutionResult expect_result_fail_pre_check{.error_code = 4, .pre_check_error = "intrinsic gas"}; + ExecutionResult expect_result_fail_pre_check{.error_code = 4, .pre_check_error = "errors other than intrinsic gas too low"}; ExecutionResult expect_result_fail{.error_code = 4}; call.gas = kTxGas * 2; call.gas_price = intx::uint256{20'000}; @@ -406,7 +406,7 @@ TEST_CASE("estimate gas") { } SECTION("Call fail, try exception with data") { - ExecutionResult expect_result_fail_pre_check{.error_code = 4, .pre_check_error = "intrinsic gas"}; + ExecutionResult expect_result_fail_pre_check{.error_code = 4, .pre_check_error = "errors other than intrinsic gas too low"}; auto data = *silkworm::from_hex("2ac3c1d3e24b45c6c310534bc2dd84b5ed576335"); ExecutionResult expect_result_fail{.error_code = 4, .data = data}; call.gas = kTxGas * 2; From 0b590096c89d0c6c1b513aa0b1dc5df8f4b1e6b0 Mon Sep 17 00:00:00 2001 From: yarkin Date: Sun, 8 Oct 2023 15:32:07 +0800 Subject: [PATCH 4/4] Fix trace test related to call to precompiles. --- silkworm/silkrpc/core/evm_trace_test.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/silkworm/silkrpc/core/evm_trace_test.cpp b/silkworm/silkrpc/core/evm_trace_test.cpp index c18cfa0db..bc21beaba 100644 --- a/silkworm/silkrpc/core/evm_trace_test.cpp +++ b/silkworm/silkrpc/core/evm_trace_test.cpp @@ -156,7 +156,23 @@ TEST_CASE_METHOD(TraceCallExecutorTest, "TraceCallExecutor::trace_call precompil "storage":{} } }, - "trace": [], + "trace":[ + { + "action":{ + "callType":"call", + "from":"0x0a6bb546b9208cfab9e8fa2b9b2c042b18df7030", + "gas":"0x7148", + "input":"0x", + "to":"0x0000000000000000000000000000000000000009", + "value":"0x0" + }, + "error":"", + "result":null, + "subtraces":0, + "traceAddress":[], + "type":"call" + } + ], "vmTrace": { "code": "0x", "ops": []