Test unchecked.multiple_get
This commit is contained in:
parent
ad435c4bb9
commit
92d90ad2c0
1 changed files with 52 additions and 0 deletions
|
@ -276,6 +276,58 @@ TEST (unchecked, double_put)
|
|||
ASSERT_EQ (block3.size (), 1);
|
||||
}
|
||||
|
||||
TEST (unchecked, multiple_get)
|
||||
{
|
||||
bool init (false);
|
||||
rai::mdb_store store (init, rai::unique_path ());
|
||||
ASSERT_TRUE (!init);
|
||||
auto block1 (std::make_shared<rai::send_block> (4, 1, 2, rai::keypair ().prv, 4, 5));
|
||||
auto block2 (std::make_shared<rai::send_block> (3, 1, 2, rai::keypair ().prv, 4, 5));
|
||||
auto block3 (std::make_shared<rai::send_block> (5, 1, 2, rai::keypair ().prv, 4, 5));
|
||||
{
|
||||
|
||||
auto transaction (store.tx_begin (true));
|
||||
store.unchecked_put (transaction, block1->previous (), block1); // unchecked1
|
||||
store.unchecked_put (transaction, block1->hash (), block1); // unchecked2
|
||||
store.unchecked_put (transaction, block2->previous (), block2); // unchecked3
|
||||
store.unchecked_put (transaction, block1->previous (), block2); // unchecked1
|
||||
store.unchecked_put (transaction, block1->hash (), block2); // unchecked2
|
||||
store.unchecked_put (transaction, block3->previous (), block3);
|
||||
store.unchecked_put (transaction, block3->hash (), block3); // unchecked4
|
||||
store.unchecked_put (transaction, block1->previous (), block3); // unchecked1
|
||||
}
|
||||
auto transaction (store.tx_begin ());
|
||||
auto unchecked_count (store.unchecked_count (transaction));
|
||||
ASSERT_EQ (unchecked_count, 8);
|
||||
std::vector<rai::block_hash> unchecked1;
|
||||
auto unchecked1_blocks (store.unchecked_get (transaction, block1->previous ()));
|
||||
ASSERT_EQ (unchecked1_blocks.size (), 3);
|
||||
for (auto & i : unchecked1_blocks)
|
||||
{
|
||||
unchecked1.push_back (i->hash ());
|
||||
}
|
||||
ASSERT_TRUE (std::find (unchecked1.begin (), unchecked1.end (), block1->hash ()) != unchecked1.end ());
|
||||
ASSERT_TRUE (std::find (unchecked1.begin (), unchecked1.end (), block2->hash ()) != unchecked1.end ());
|
||||
ASSERT_TRUE (std::find (unchecked1.begin (), unchecked1.end (), block3->hash ()) != unchecked1.end ());
|
||||
std::vector<rai::block_hash> unchecked2;
|
||||
auto unchecked2_blocks (store.unchecked_get (transaction, block1->hash ()));
|
||||
ASSERT_EQ (unchecked2_blocks.size (), 2);
|
||||
for (auto & i : unchecked2_blocks)
|
||||
{
|
||||
unchecked2.push_back (i->hash ());
|
||||
}
|
||||
ASSERT_TRUE (std::find (unchecked2.begin (), unchecked2.end (), block1->hash ()) != unchecked2.end ());
|
||||
ASSERT_TRUE (std::find (unchecked2.begin (), unchecked2.end (), block2->hash ()) != unchecked2.end ());
|
||||
auto unchecked3 (store.unchecked_get (transaction, block2->previous ()));
|
||||
ASSERT_EQ (unchecked3.size (), 1);
|
||||
ASSERT_EQ (unchecked3[0]->hash (), block2->hash ());
|
||||
auto unchecked4 (store.unchecked_get (transaction, block3->hash ()));
|
||||
ASSERT_EQ (unchecked4.size (), 1);
|
||||
ASSERT_EQ (unchecked4[0]->hash (), block3->hash ());
|
||||
auto unchecked5 (store.unchecked_get (transaction, block2->hash ()));
|
||||
ASSERT_EQ (unchecked5.size (), 0);
|
||||
}
|
||||
|
||||
TEST (checksum, simple)
|
||||
{
|
||||
bool init (false);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue