Testing for absense of source block in elections.
This commit is contained in:
parent
25e6922a49
commit
f0aaf96274
1 changed files with 35 additions and 0 deletions
|
@ -72,3 +72,38 @@ TEST (votes, contested)
|
|||
votes.rep_votes[rai::test_genesis_key.pub] = block2;
|
||||
ASSERT_FALSE (votes.uncontested ());
|
||||
}
|
||||
|
||||
TEST (conflicts, rollback_source)
|
||||
{
|
||||
rai::system system (24000, 2);
|
||||
auto & node1 (*system.nodes[0]);
|
||||
auto & node2 (*system.nodes[1]);
|
||||
rai::genesis genesis;
|
||||
rai::keypair key1;
|
||||
system.wallet(0)->insert_adhoc (rai::test_genesis_key.prv);
|
||||
auto send1 (std::make_shared<rai::state_block> (rai::test_genesis_key.pub, genesis.hash (), rai::test_genesis_key.pub, rai::genesis_amount - rai::Gxrb_ratio, key1.pub, rai::test_genesis_key.prv, rai::test_genesis_key.pub, system.work.generate(genesis.hash ())));
|
||||
ASSERT_EQ (rai::process_result::progress, node2.process (*send1).code);
|
||||
ASSERT_FALSE (node2.active.start (send1));
|
||||
ASSERT_EQ (rai::process_result::progress, node1.process (*send1).code);
|
||||
ASSERT_FALSE (node1.active.start (send1));
|
||||
auto send2 (std::make_shared<rai::state_block> (rai::test_genesis_key.pub, send1->hash (), rai::test_genesis_key.pub, rai::genesis_amount - 2 * rai::Gxrb_ratio, key1.pub, rai::test_genesis_key.prv, rai::test_genesis_key.pub, system.work.generate(send1->hash ())));
|
||||
ASSERT_EQ (rai::process_result::progress, node2.process (*send2).code);
|
||||
ASSERT_FALSE (node2.active.start (send2));
|
||||
auto send3 (std::make_shared<rai::state_block> (key1.pub, 0, key1.pub, rai::Gxrb_ratio, send1->hash (), key1.prv, key1.pub, system.work.generate(key1.pub)));
|
||||
ASSERT_EQ (rai::process_result::progress, node2.process (*send3).code);
|
||||
ASSERT_FALSE (node2.active.start (send3));
|
||||
auto send4 (std::make_shared<rai::state_block> (key1.pub, send3->hash (), key1.pub, 2 * rai::Gxrb_ratio, send2->hash (), key1.prv, key1.pub, system.work.generate(send3->hash ())));
|
||||
ASSERT_EQ (rai::process_result::progress, node2.process (*send4).code);
|
||||
ASSERT_FALSE (node2.active.start (send4));
|
||||
auto send5 (std::make_shared<rai::state_block> (rai::test_genesis_key.pub, send1->hash (), rai::test_genesis_key.pub, rai::genesis_amount - 3 * rai::Gxrb_ratio, key1.pub, rai::test_genesis_key.prv, rai::test_genesis_key.pub, system.work.generate(send1->hash ())));
|
||||
ASSERT_EQ (rai::process_result::progress, node1.process(*send5).code);
|
||||
ASSERT_FALSE (node1.active.start (send5));
|
||||
while (!node2.active.active(*send4))
|
||||
{
|
||||
system.poll ();
|
||||
}
|
||||
while (node2.active.active(*send4))
|
||||
{
|
||||
system.poll ();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue