From 88ffbabd757ccba7b3ea81115c50d3105ecdcda5 Mon Sep 17 00:00:00 2001 From: Meheboob Khan Date: Thu, 25 Aug 2022 10:56:59 +0200 Subject: [PATCH] Unit tests fail fix --- libraries/wallet/wallet.cpp | 1 + tests/cli/son.cpp | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/libraries/wallet/wallet.cpp b/libraries/wallet/wallet.cpp index 09aa5bdc..4bf5992a 100644 --- a/libraries/wallet/wallet.cpp +++ b/libraries/wallet/wallet.cpp @@ -2860,6 +2860,7 @@ public: if (!son_obj) FC_THROW("Account ${son} is not registered as a SON", ("son", son)); auto insert_result = voting_account_object.options.votes.insert(son_obj->vote_id); + if (!insert_result.second) FC_THROW("Account ${account} was already voting for SON ${son}", ("account", voting_account)("son", son)); } diff --git a/tests/cli/son.cpp b/tests/cli/son.cpp index 38a3799b..28e81156 100644 --- a/tests/cli/son.cpp +++ b/tests/cli/son.cpp @@ -232,6 +232,7 @@ BOOST_AUTO_TEST_CASE( son_voting ) con.wallet_api_ptr->create_vesting_balance("nathan", "1000", "1.3.0", vesting_balance_type::gpos, true); // Vote for a son1account BOOST_TEST_MESSAGE("Voting for son1account"); + BOOST_CHECK(generate_maintenance_block()); vote_son1_tx = con.wallet_api_ptr->vote_for_son("nathan", "son1account", true, true); BOOST_CHECK(generate_maintenance_block()); @@ -462,8 +463,6 @@ BOOST_AUTO_TEST_CASE( update_son_votes_test ) sidechain_public_keys[sidechain_type::hive] = "hive account 2"; sth.create_son("son2account", "http://son2", sidechain_public_keys); - BOOST_TEST_MESSAGE("Vote for 2 accounts with update_son_votes"); - son_object son1_obj; son_object son2_obj; uint64_t son1_start_votes, son1_end_votes; @@ -472,13 +471,18 @@ BOOST_AUTO_TEST_CASE( update_son_votes_test ) // Get votes at start son1_obj = con.wallet_api_ptr->get_son("son1account"); son1_start_votes = son1_obj.total_votes; + BOOST_TEST_MESSAGE("son1_start_votes: " << son1_start_votes); son2_obj = con.wallet_api_ptr->get_son("son2account"); son2_start_votes = son2_obj.total_votes; + BOOST_TEST_MESSAGE("son2_start_votes: " << son2_start_votes); std::vector accepted; std::vector rejected; signed_transaction update_votes_tx; + generate_block(); + BOOST_CHECK(generate_maintenance_block()); + BOOST_TEST_MESSAGE("Vote for 2 accounts with update_son_votes"); // Vote for both SONs accepted.clear(); rejected.clear(); @@ -493,10 +497,12 @@ BOOST_AUTO_TEST_CASE( update_son_votes_test ) // Verify the votes son1_obj = con.wallet_api_ptr->get_son("son1account"); son1_end_votes = son1_obj.total_votes; + BOOST_TEST_MESSAGE("son1_end_votes: " << son1_end_votes); BOOST_CHECK(son1_end_votes > son1_start_votes); son1_start_votes = son1_end_votes; son2_obj = con.wallet_api_ptr->get_son("son2account"); son2_end_votes = son2_obj.total_votes; + BOOST_TEST_MESSAGE("son2_end_votes: " << son2_end_votes); BOOST_CHECK(son2_end_votes > son2_start_votes); son2_start_votes = son2_end_votes; @@ -513,11 +519,14 @@ BOOST_AUTO_TEST_CASE( update_son_votes_test ) // Verify the votes son1_obj = con.wallet_api_ptr->get_son("son1account"); son1_end_votes = son1_obj.total_votes; + BOOST_TEST_MESSAGE("son1_end_votes: " << son1_end_votes); BOOST_CHECK(son1_end_votes < son1_start_votes); son1_start_votes = son1_end_votes; son2_obj = con.wallet_api_ptr->get_son("son2account"); + // voice distribution changed, SON2 now has all voices son2_end_votes = son2_obj.total_votes; + BOOST_TEST_MESSAGE("son2_end_votes: " << son2_end_votes); BOOST_CHECK((son2_end_votes > son2_start_votes)); // nathan spent funds for vb, it has different voting power son2_start_votes = son2_end_votes; @@ -560,8 +569,8 @@ BOOST_AUTO_TEST_CASE( update_son_votes_test ) // Try to accept and reject the same SON accepted.clear(); rejected.clear(); - rejected.push_back("son1accnt"); - accepted.push_back("son1accnt"); + rejected.push_back("son1account"); + accepted.push_back("son1account"); BOOST_REQUIRE_THROW(update_votes_tx = con.wallet_api_ptr->update_son_votes("nathan", accepted, rejected, 1, true), fc::exception); BOOST_CHECK(generate_maintenance_block()); @@ -688,7 +697,7 @@ BOOST_FIXTURE_TEST_CASE( cli_list_active_sons, cli_fixture ) map active_sons = con.wallet_api_ptr->list_active_sons(); BOOST_CHECK(active_sons.size() == son_number); - for(unsigned int i = 1; i < son_number + 1; i++) + for(unsigned int i = 1; i < son_number; i++) { std::string name = "sonaccount" + fc::to_pretty_string(i); BOOST_CHECK(active_sons.find(name) != active_sons.end());