From 2ad747a239075527c09c32be2041b5c72a8ff50a Mon Sep 17 00:00:00 2001 From: Victor Camacho Date: Wed, 18 Nov 2020 11:29:35 -0500 Subject: [PATCH 1/2] Merge pull request #9686 from EOSIO/empty_deltas_issue Pop back a delta with empty rows #9386 --- libraries/state_history/create_deltas.cpp | 4 ++++ unittests/state_history_tests.cpp | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/libraries/state_history/create_deltas.cpp b/libraries/state_history/create_deltas.cpp index 1b2737fc95..4344ade76d 100644 --- a/libraries/state_history/create_deltas.cpp +++ b/libraries/state_history/create_deltas.cpp @@ -102,6 +102,10 @@ std::vector create_deltas(const chainbase::database& db, bool full_ for (auto& row : undo.new_values) { delta.rows.obj.emplace_back(true, pack_row(row)); } + + if(delta.rows.obj.empty()) { + deltas.pop_back(); + } } }; diff --git a/unittests/state_history_tests.cpp b/unittests/state_history_tests.cpp index 4e4510d5f1..345ad807b7 100644 --- a/unittests/state_history_tests.cpp +++ b/unittests/state_history_tests.cpp @@ -57,6 +57,19 @@ class table_deltas_tester : public tester { deltas_vector v; }; +BOOST_AUTO_TEST_CASE(test_deltas_not_empty) { + for (backing_store_type backing_store : { backing_store_type::CHAINBASE/* TODO: uncomment this , backing_store_type::ROCKSDB*/ } ) { + table_deltas_tester chain; + chain.set_backing_store(backing_store); + + auto deltas = eosio::state_history::create_deltas(chain.control->kv_db(), false); + + for(const auto &delta: deltas) { + BOOST_REQUIRE(!delta.rows.obj.empty()); + } + } +} + BOOST_AUTO_TEST_CASE(test_deltas_account_creation) { table_deltas_tester chain; chain.produce_block(); From d3905d5975f3fa7307ee231138d4699f051c865b Mon Sep 17 00:00:00 2001 From: Chris Gundlach Date: Mon, 11 Jul 2022 10:29:08 -0500 Subject: [PATCH 2/2] took out kv references --- unittests/state_history_tests.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/unittests/state_history_tests.cpp b/unittests/state_history_tests.cpp index 345ad807b7..763e91e531 100644 --- a/unittests/state_history_tests.cpp +++ b/unittests/state_history_tests.cpp @@ -58,15 +58,12 @@ class table_deltas_tester : public tester { }; BOOST_AUTO_TEST_CASE(test_deltas_not_empty) { - for (backing_store_type backing_store : { backing_store_type::CHAINBASE/* TODO: uncomment this , backing_store_type::ROCKSDB*/ } ) { - table_deltas_tester chain; - chain.set_backing_store(backing_store); + table_deltas_tester chain; - auto deltas = eosio::state_history::create_deltas(chain.control->kv_db(), false); + auto deltas = eosio::state_history::create_deltas(chain.control->db(), false); - for(const auto &delta: deltas) { - BOOST_REQUIRE(!delta.rows.obj.empty()); - } + for(const auto &delta: deltas) { + BOOST_REQUIRE(!delta.rows.obj.empty()); } }