From bc00d6e09606e9306a4055f299553e50264a7e32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Bylica?= Date: Fri, 8 Jun 2018 13:00:53 +0200 Subject: [PATCH] Add basic instruction table unit tests --- test/unittests/test_instructions.cpp | 32 ++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/test/unittests/test_instructions.cpp b/test/unittests/test_instructions.cpp index b9e3c3c..0f6858d 100644 --- a/test/unittests/test_instructions.cpp +++ b/test/unittests/test_instructions.cpp @@ -3,3 +3,35 @@ // Licensed under the MIT License. See the LICENSE file. #include + +#include + +TEST(instructions, tangerine_whistle_hard_fork) +{ + const auto h = evmc_get_instruction_metrics_table(EVMC_HOMESTEAD); + const auto tw = evmc_get_instruction_metrics_table(EVMC_TANGERINE_WHISTLE); + + EXPECT_EQ(h[EXTCODESIZE].gas_cost, 20); + EXPECT_EQ(tw[EXTCODESIZE].gas_cost, 700); + + EXPECT_EQ(h[EXTCODECOPY].gas_cost, 20); + EXPECT_EQ(tw[EXTCODECOPY].gas_cost, 700); + + EXPECT_EQ(h[BALANCE].gas_cost, 20); + EXPECT_EQ(tw[BALANCE].gas_cost, 400); + + EXPECT_EQ(h[SLOAD].gas_cost, 50); + EXPECT_EQ(tw[SLOAD].gas_cost, 200); + + EXPECT_EQ(h[CALL].gas_cost, 40); + EXPECT_EQ(tw[CALL].gas_cost, 700); + + EXPECT_EQ(h[CALLCODE].gas_cost, 40); + EXPECT_EQ(tw[CALLCODE].gas_cost, 700); + + EXPECT_EQ(h[DELEGATECALL].gas_cost, 40); + EXPECT_EQ(tw[DELEGATECALL].gas_cost, 700); + + EXPECT_EQ(h[SELFDESTRUCT].gas_cost, 0); + EXPECT_EQ(tw[SELFDESTRUCT].gas_cost, 5000); +} \ No newline at end of file