1
0
Fork 0
forked from lthn/blockchain

coretests: hardfork setup fixed in a few tests

This commit is contained in:
sowle 2022-08-23 21:29:30 +03:00
parent b62d01a629
commit a7352d8c98
No known key found for this signature in database
GPG key ID: C07A24B2D89D49FC
7 changed files with 34 additions and 53 deletions

View file

@ -16,6 +16,11 @@ namespace currency
std::array<uint64_t, m_total_count> m_height_the_hardfork_n_active_after;
hard_forks_descriptor()
{
clear();
}
void clear()
{
m_height_the_hardfork_n_active_after.fill(CURRENCY_MAX_BLOCK_NUMBER);
}

View file

@ -39,6 +39,10 @@ atomic_base_test::atomic_base_test()
{
REGISTER_CALLBACK_METHOD(atomic_base_test, c1);
REGISTER_CALLBACK_METHOD(atomic_base_test, configure_core);
m_hardforks.set_hardfork_height(1, 10);
m_hardforks.set_hardfork_height(2, 11);
m_hardforks.set_hardfork_height(3, 12);
}
bool atomic_base_test::generate(std::vector<test_event_entry>& events) const
@ -59,7 +63,8 @@ bool atomic_base_test::generate(std::vector<test_event_entry>& events) const
block blk_0 = AUTO_VAL_INIT(blk_0);
generator.construct_genesis_block(blk_0, genesis_acc, test_core_time::get_time());
events.push_back(blk_0);
DO_CALLBACK(events, "configure_core");
set_hard_fork_heights_to_generator(generator);
DO_CALLBACK(events, "configure_core"); // default callback will initialize core current runtime config with m_hardforks
REWIND_BLOCKS_N(events, blk_0r, blk_0, m_mining_accunt, CURRENCY_MINED_MONEY_UNLOCK_WINDOW + 5);
DO_CALLBACK(events, "c1");
@ -67,18 +72,6 @@ bool atomic_base_test::generate(std::vector<test_event_entry>& events) const
return true;
}
bool atomic_base_test::configure_core(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events)
{
currency::core_runtime_config pc = c.get_blockchain_storage().get_core_runtime_config();
pc.min_coinstake_age = TESTS_POS_CONFIG_MIN_COINSTAKE_AGE; //four blocks
pc.pos_minimum_heigh = TESTS_POS_CONFIG_POS_MINIMUM_HEIGH; //four blocks
pc.hard_forks.set_hardfork_height(1, 10);
pc.hard_forks.set_hardfork_height(2, 11);
pc.hard_forks.set_hardfork_height(3, 12);
c.get_blockchain_storage().set_core_runtime_config(pc);
return true;
}
/************************************************************************/
/* */
/************************************************************************/
@ -630,18 +623,16 @@ bool atomic_test_altchain_simple::c1(currency::core& c, size_t ev_index, const s
return true;
}
//------------------------------------------------------------------------------
bool atomic_test_check_hardfork_rules::configure_core(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events)
atomic_test_check_hardfork_rules::atomic_test_check_hardfork_rules()
{
currency::core_runtime_config pc = c.get_blockchain_storage().get_core_runtime_config();
pc.min_coinstake_age = TESTS_POS_CONFIG_MIN_COINSTAKE_AGE; //four blocks
pc.pos_minimum_heigh = TESTS_POS_CONFIG_POS_MINIMUM_HEIGH; //four blocks
pc.hard_forks.set_hardfork_height(1, 10);
pc.hard_forks.set_hardfork_height(2, 10);
pc.hard_forks.set_hardfork_height(3, 10);
c.get_blockchain_storage().set_core_runtime_config(pc);
return true;
m_hardforks.clear();
m_hardforks.set_hardfork_height(1, 10);
m_hardforks.set_hardfork_height(2, 10);
m_hardforks.set_hardfork_height(3, 10);
}
bool atomic_test_check_hardfork_rules::c1(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events)
{
//epee::debug::get_set_enable_assert(true, true);

View file

@ -12,7 +12,6 @@ struct atomic_base_test : public wallet_test
atomic_base_test();
bool generate(std::vector<test_event_entry>& events) const;
virtual bool c1(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events)=0;
virtual bool configure_core(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events);
protected:
mutable uint64_t m_genesis_timestamp;
mutable currency::account_base m_mining_accunt;
@ -21,27 +20,27 @@ protected:
struct atomic_simple_test : public atomic_base_test
{
bool c1(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events);
bool c1(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events) override;
private:
};
struct atomic_test_wrong_redeem_wrong_refund : public atomic_base_test
{
bool c1(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events);
bool c1(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events) override;
private:
};
struct atomic_test_altchain_simple : public atomic_base_test
{
bool c1(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events);
bool c1(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events) override;
private:
};
struct atomic_test_check_hardfork_rules : public atomic_base_test
{
bool c1(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events);
virtual bool configure_core(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events);
atomic_test_check_hardfork_rules();
bool c1(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events) override;
private:
};

View file

@ -194,6 +194,10 @@ wallet_rpc_transfer::wallet_rpc_transfer()
{
REGISTER_CALLBACK_METHOD(wallet_rpc_transfer, configure_core);
REGISTER_CALLBACK_METHOD(wallet_rpc_transfer, c1);
m_hardforks.set_hardfork_height(1, 1);
m_hardforks.set_hardfork_height(2, 1);
m_hardforks.set_hardfork_height(3, 1);
}
bool wallet_rpc_transfer::generate(std::vector<test_event_entry>& events) const
@ -204,7 +208,7 @@ bool wallet_rpc_transfer::generate(std::vector<test_event_entry>& events) const
account_base& bob_acc = m_accounts[BOB_ACC_IDX]; bob_acc.generate();
MAKE_GENESIS_BLOCK(events, blk_0, miner_acc, test_core_time::get_time());
DO_CALLBACK(events, "configure_core");
DO_CALLBACK(events, "configure_core"); // default callback will initialize core runtime config with m_hardforks
set_hard_fork_heights_to_generator(generator);
REWIND_BLOCKS_N(events, blk_0r, blk_0, miner_acc, CURRENCY_MINED_MONEY_UNLOCK_WINDOW + 6);
@ -213,16 +217,6 @@ bool wallet_rpc_transfer::generate(std::vector<test_event_entry>& events) const
return true;
}
bool wallet_rpc_transfer::configure_core(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events)
{
currency::core_runtime_config pc = c.get_blockchain_storage().get_core_runtime_config();
pc.hard_forks.set_hardfork_height(1, 1);
pc.hard_forks.set_hardfork_height(2, 1);
pc.hard_forks.set_hardfork_height(3, 1);
c.get_blockchain_storage().set_core_runtime_config(pc);
return true;
}
bool wallet_rpc_transfer::c1(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events)
{
bool r = false;

View file

@ -26,6 +26,5 @@ struct wallet_rpc_transfer : public wallet_test
{
wallet_rpc_transfer();
bool generate(std::vector<test_event_entry>& events) const;
bool configure_core(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events);
bool c1(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events);
};

View file

@ -19,6 +19,11 @@ zarcanum_basic_test::zarcanum_basic_test()
{
REGISTER_CALLBACK_METHOD(zarcanum_basic_test, configure_core);
REGISTER_CALLBACK_METHOD(zarcanum_basic_test, c1);
m_hardforks.set_hardfork_height(1, 1);
m_hardforks.set_hardfork_height(2, 1);
m_hardforks.set_hardfork_height(3, 1);
m_hardforks.set_hardfork_height(4, 14);
}
bool zarcanum_basic_test::generate(std::vector<test_event_entry>& events) const
@ -28,7 +33,7 @@ bool zarcanum_basic_test::generate(std::vector<test_event_entry>& events) const
miner_acc.generate();
MAKE_GENESIS_BLOCK(events, blk_0, miner_acc, test_core_time::get_time());
DO_CALLBACK(events, "configure_core");
DO_CALLBACK(events, "configure_core"); // default configure_core callback will initialize core runtime config with m_hardforks
set_hard_fork_heights_to_generator(generator);
//TODO: Need to make sure REWIND_BLOCKS_N and other coretests codebase are capable of following hardfork4 rules
//in this test hardfork4 moment moved to runtime section
@ -39,17 +44,6 @@ bool zarcanum_basic_test::generate(std::vector<test_event_entry>& events) const
return true;
}
bool zarcanum_basic_test::configure_core(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events)
{
currency::core_runtime_config pc = c.get_blockchain_storage().get_core_runtime_config();
pc.hard_forks.set_hardfork_height(1, 1);
pc.hard_forks.set_hardfork_height(2, 1);
pc.hard_forks.set_hardfork_height(3, 1);
pc.hard_forks.set_hardfork_height(4, 14);
c.get_blockchain_storage().set_core_runtime_config(pc);
return true;
}
bool zarcanum_basic_test::c1(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events)
{
bool r = false;

View file

@ -12,6 +12,5 @@ struct zarcanum_basic_test : public wallet_test
{
zarcanum_basic_test();
bool generate(std::vector<test_event_entry>& events) const;
bool configure_core(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events);
bool c1(currency::core& c, size_t ev_index, const std::vector<test_event_entry>& events);
};