From 03a828228c12e14729bba1e487b3078951812bc1 Mon Sep 17 00:00:00 2001 From: sowle Date: Mon, 29 Nov 2021 04:50:30 +0300 Subject: [PATCH] coretests: 1) gen_checkpoints_prun_txs_after_blockchain_load fixed to reflect new rules on tx pruning; 2) final touches to gen_checkpoints_set_after_switching_to_altchain --- tests/core_tests/checkpoints_tests.cpp | 45 ++++++++++---------------- tests/core_tests/checkpoints_tests.h | 1 - 2 files changed, 17 insertions(+), 29 deletions(-) diff --git a/tests/core_tests/checkpoints_tests.cpp b/tests/core_tests/checkpoints_tests.cpp index ab06f8aa..254a05e6 100644 --- a/tests/core_tests/checkpoints_tests.cpp +++ b/tests/core_tests/checkpoints_tests.cpp @@ -400,8 +400,13 @@ bool gen_checkpoints_prun_txs_after_blockchain_load::generate(std::vector attach; + attach.push_back(tx_comment{"jokes are funny"}); + + // tx pool won't accept the tx, because it cannot be verified in CP zone + // set kept_by_block flag, so tx_0 be accepted + events.push_back(event_visitor_settings(event_visitor_settings::set_txs_kept_by_block, true)); + MAKE_TX_ATTACH(events, tx_0, miner_acc, alice, MK_TEST_COINS(1), blk_0r, attach); events.push_back(event_visitor_settings(event_visitor_settings::set_txs_kept_by_block, false)); MAKE_NEXT_BLOCK_TX1(events, blk_1, blk_0r, miner_acc, tx_0); @@ -412,11 +417,12 @@ bool gen_checkpoints_prun_txs_after_blockchain_load::generate(std::vector& events) const { - // Test idea: make sure + // Test outline: + // 0) no checkpoints are set; + // 1) core is in a subchain, that will become alternative; + // 2) checkpoint is set (in the furute), transaction pruning is executed; + // 3) core continues to sync, chain switching occurs + // Make sure that chain switching is still possible after pruning. // 0 ... N N+1 N+2 N+3 N+4 N+5 N+6 <- height (N = CURRENCY_MINED_MONEY_UNLOCK_WINDOW) // tx1 @@ -941,7 +951,6 @@ bool gen_checkpoints_set_after_switching_to_altchain::generate(std::vector& events) -{ - bool r = false; - uint64_t height = 0; - uint64_t transactions_pruned = 0, signatures_pruned = 0, attachments_pruned = 0; - - //c.get_blockchain_storage().prune_ring_signatures_and_attachments_if_need(); - - /*for (uint64_t height = 1, size = c.get_current_blockchain_size(); height < size; ++height) - { - r = c.get_blockchain_storage().prune_ring_signatures_and_attachments(height, transactions_pruned, signatures_pruned, attachments_pruned); - CHECK_AND_ASSERT_MES(r, false, "prune_ring_signatures_and_attachments failed for height " << height); - } - - // make sure only one tx was pruned (namely, tx1) - CHECK_AND_ASSERT_MES(transactions_pruned == 1, false, "incorrect number of pruned txs: " << transactions_pruned); - */ - return true; -} diff --git a/tests/core_tests/checkpoints_tests.h b/tests/core_tests/checkpoints_tests.h index 01ff5f68..672d9b42 100644 --- a/tests/core_tests/checkpoints_tests.h +++ b/tests/core_tests/checkpoints_tests.h @@ -117,5 +117,4 @@ struct gen_checkpoints_set_after_switching_to_altchain : public checkpoints_test { gen_checkpoints_set_after_switching_to_altchain(); bool generate(std::vector& events) const; - bool prune_blockchain(currency::core& c, size_t ev_index, const std::vector& events); };