forked from lthn/blockchain
coretests: hardfork setup fixed in a few tests
This commit is contained in:
parent
b62d01a629
commit
a7352d8c98
7 changed files with 34 additions and 53 deletions
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue