From e8ce7c20a319f8887520169c591895551663a2b0 Mon Sep 17 00:00:00 2001 From: sowle Date: Wed, 11 Dec 2019 20:49:26 +0300 Subject: [PATCH] coretests: multisig_wallet_test improved to cover more --- tests/core_tests/pos_validation.cpp | 38 +++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/tests/core_tests/pos_validation.cpp b/tests/core_tests/pos_validation.cpp index ee6997a9..9ccddc1f 100644 --- a/tests/core_tests/pos_validation.cpp +++ b/tests/core_tests/pos_validation.cpp @@ -1076,13 +1076,47 @@ bool pos_minting_tx_packing::c1(currency::core& c, size_t ev_index, const std::v r = mine_next_pow_blocks_in_playtime(m_accounts[MINER_ACC_IDX].get_public_address(), c, WALLET_DEFAULT_TX_SPENDABLE_AGE); CHECK_AND_ASSERT_MES(r, false, "mine_next_pow_blocks_in_playtime failed"); - CHECK_AND_ASSERT_MES(refresh_wallet_and_check_balance("", "Alice", alice_wlt, m_alice_start_amount + CURRENCY_BLOCK_REWARD * m_pos_mint_packing_size, true, UINT64_MAX, m_alice_start_amount + CURRENCY_BLOCK_REWARD * m_pos_mint_packing_size), false, ""); + CHECK_AND_ASSERT_MES(refresh_wallet_and_check_balance("", "Alice", alice_wlt, + m_alice_start_amount + CURRENCY_BLOCK_REWARD * m_pos_mint_packing_size, // total + true, + UINT64_MAX, + m_alice_start_amount + CURRENCY_BLOCK_REWARD * m_pos_mint_packing_size // unlocked + ), false, ""); - alice_wlt->set_pos_mint_packing_size(5); + alice_wlt->set_pos_mint_packing_size(m_pos_mint_packing_size); + // no coinbase tx outputs should packed r = alice_wlt->try_mint_pos(); CHECK_AND_ASSERT_MES(r, false, "try_mint_pos failed"); + // make sure the wallet has only received new locked incoming reward + CHECK_AND_ASSERT_MES(refresh_wallet_and_check_balance("", "Alice", alice_wlt, + m_alice_start_amount + CURRENCY_BLOCK_REWARD * (m_pos_mint_packing_size + 1), // total + true, + UINT64_MAX, + m_alice_start_amount // unlocked (one output with amount == CURRENCY_BLOCK_REWARD * m_pos_mint_packing_size was spent as stake) + ), false, ""); + + r = mine_next_pow_blocks_in_playtime(m_accounts[MINER_ACC_IDX].get_public_address(), c, WALLET_DEFAULT_TX_SPENDABLE_AGE); + CHECK_AND_ASSERT_MES(r, false, "mine_next_pow_blocks_in_playtime failed"); + + CHECK_AND_ASSERT_MES(refresh_wallet_and_check_balance("", "Alice", alice_wlt, + m_alice_start_amount + CURRENCY_BLOCK_REWARD * (m_pos_mint_packing_size + 1), // total + true, + UINT64_MAX, + m_alice_start_amount + CURRENCY_BLOCK_REWARD * (m_pos_mint_packing_size + 1) // unlocked + ), false, ""); + + // coinbase tx outputs should be packed now, there's enough coinbase outputs (> m_pos_mint_packing_size) + r = alice_wlt->try_mint_pos(); + CHECK_AND_ASSERT_MES(r, false, "try_mint_pos failed"); + + CHECK_AND_ASSERT_MES(refresh_wallet_and_check_balance("", "Alice", alice_wlt, + m_alice_start_amount + CURRENCY_BLOCK_REWARD * (m_pos_mint_packing_size + 2), // total + true, + UINT64_MAX, + m_alice_start_amount - CURRENCY_BLOCK_REWARD * m_pos_mint_packing_size // unlocked ( - CURRENCY_BLOCK_REWARD * m_pos_mint_packing_size for stake and - CURRENCY_BLOCK_REWARD * m_pos_mint_packing_size for packing) + ), false, ""); return true;