Fix use after scope error active_transactions.vacancy test (#4002)
This commit is contained in:
parent
da37e91b39
commit
f05cb7dfb5
1 changed files with 31 additions and 29 deletions
|
|
@ -1287,36 +1287,38 @@ TEST (active_transactions, list_active)
|
||||||
|
|
||||||
TEST (active_transactions, vacancy)
|
TEST (active_transactions, vacancy)
|
||||||
{
|
{
|
||||||
nano::test::system system;
|
|
||||||
nano::node_config config{ nano::test::get_available_port (), system.logging };
|
|
||||||
config.active_elections_size = 1;
|
|
||||||
auto & node = *system.add_node (config);
|
|
||||||
nano::state_block_builder builder;
|
|
||||||
auto send = builder.make_block ()
|
|
||||||
.account (nano::dev::genesis_key.pub)
|
|
||||||
.previous (nano::dev::genesis->hash ())
|
|
||||||
.representative (nano::dev::genesis_key.pub)
|
|
||||||
.link (nano::dev::genesis_key.pub)
|
|
||||||
.balance (nano::dev::constants.genesis_amount - nano::Gxrb_ratio)
|
|
||||||
.sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub)
|
|
||||||
.work (*system.work.generate (nano::dev::genesis->hash ()))
|
|
||||||
.build_shared ();
|
|
||||||
std::atomic<bool> updated = false;
|
std::atomic<bool> updated = false;
|
||||||
node.active.vacancy_update = [&updated] () { updated = true; };
|
{
|
||||||
ASSERT_EQ (nano::process_result::progress, node.process (*send).code);
|
nano::test::system system;
|
||||||
ASSERT_EQ (1, node.active.vacancy ());
|
nano::node_config config{ nano::test::get_available_port (), system.logging };
|
||||||
ASSERT_EQ (0, node.active.size ());
|
config.active_elections_size = 1;
|
||||||
node.scheduler.activate (nano::dev::genesis_key.pub, node.store.tx_begin_read ());
|
auto & node = *system.add_node (config);
|
||||||
ASSERT_TIMELY (1s, updated);
|
nano::state_block_builder builder;
|
||||||
updated = false;
|
auto send = builder.make_block ()
|
||||||
ASSERT_EQ (0, node.active.vacancy ());
|
.account (nano::dev::genesis_key.pub)
|
||||||
ASSERT_EQ (1, node.active.size ());
|
.previous (nano::dev::genesis->hash ())
|
||||||
auto election1 = node.active.election (send->qualified_root ());
|
.representative (nano::dev::genesis_key.pub)
|
||||||
ASSERT_NE (nullptr, election1);
|
.link (nano::dev::genesis_key.pub)
|
||||||
election1->force_confirm ();
|
.balance (nano::dev::constants.genesis_amount - nano::Gxrb_ratio)
|
||||||
ASSERT_TIMELY (1s, updated);
|
.sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub)
|
||||||
ASSERT_EQ (1, node.active.vacancy ());
|
.work (*system.work.generate (nano::dev::genesis->hash ()))
|
||||||
ASSERT_EQ (0, node.active.size ());
|
.build_shared ();
|
||||||
|
node.active.vacancy_update = [&updated] () { updated = true; };
|
||||||
|
ASSERT_EQ (nano::process_result::progress, node.process (*send).code);
|
||||||
|
ASSERT_EQ (1, node.active.vacancy ());
|
||||||
|
ASSERT_EQ (0, node.active.size ());
|
||||||
|
node.scheduler.activate (nano::dev::genesis_key.pub, node.store.tx_begin_read ());
|
||||||
|
ASSERT_TIMELY (1s, updated);
|
||||||
|
updated = false;
|
||||||
|
ASSERT_EQ (0, node.active.vacancy ());
|
||||||
|
ASSERT_EQ (1, node.active.size ());
|
||||||
|
auto election1 = node.active.election (send->qualified_root ());
|
||||||
|
ASSERT_NE (nullptr, election1);
|
||||||
|
election1->force_confirm ();
|
||||||
|
ASSERT_TIMELY (1s, updated);
|
||||||
|
ASSERT_EQ (1, node.active.vacancy ());
|
||||||
|
ASSERT_EQ (0, node.active.size ());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ensure transactions in excess of capacity are removed in fifo order
|
// Ensure transactions in excess of capacity are removed in fifo order
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue