xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
tests
libxrpl
nodestore
Basics.cpp
1
#include <xrpl/nodestore/NodeObject.h>
2
#include <xrpl/nodestore/detail/DecodedBlob.h>
3
#include <xrpl/nodestore/detail/EncodedBlob.h>
4
5
#include <gtest/gtest.h>
6
#include <nodestore/TestBase.h>
7
8
#include <
cstddef
>
9
#include <
memory
>
10
#include <
string
>
11
12
namespace
xrpl::node_store
{
13
14
TEST
(NodeStoreBasics, predictable_batches)
15
{
16
auto
const
batch1 =
createPredictableBatch
(
kNumObjectsToTest
,
kSeedValue
);
17
auto
const
batch2 =
createPredictableBatch
(
kNumObjectsToTest
,
kSeedValue
);
18
EXPECT_EQ(batch1, batch2);
19
20
auto
const
batch3 =
createPredictableBatch
(
kNumObjectsToTest
,
kSeedValue
+ 1);
21
EXPECT_NE(batch1, batch3);
22
}
23
24
TEST
(NodeStoreBasics, blob_encoding)
25
{
26
auto
const
batch =
createPredictableBatch
(
kNumObjectsToTest
,
kSeedValue
);
27
for
(
std::size_t
i = 0; i < batch.size(); ++i)
28
{
29
SCOPED_TRACE(
"blob index="
+
std::to_string
(i));
30
EncodedBlob
const
encoded(batch[i]);
31
DecodedBlob
decoded(encoded.
getKey
(), encoded.
getData
(), encoded.
getSize
());
32
EXPECT_TRUE(decoded.
wasOk
());
33
if
(decoded.
wasOk
())
34
{
35
std::shared_ptr<NodeObject>
const
object(decoded.
createObject
());
36
EXPECT_TRUE(
isSame
(batch[i],
object
));
37
}
38
}
39
}
40
41
}
// namespace xrpl::node_store
xrpl::node_store::DecodedBlob
Parsed key/value blob into NodeObject components.
Definition
DecodedBlob.h:21
xrpl::node_store::DecodedBlob::wasOk
bool wasOk() const noexcept
Determine if the decoding was successful.
Definition
DecodedBlob.h:32
xrpl::node_store::DecodedBlob::createObject
std::shared_ptr< NodeObject > createObject()
Create a NodeObject from this data.
Definition
DecodedBlob.cpp:56
xrpl::node_store::EncodedBlob
Convert a NodeObject from in-memory to database format.
Definition
EncodedBlob.h:39
xrpl::node_store::EncodedBlob::getData
void const * getData() const noexcept
Definition
EncodedBlob.h:111
xrpl::node_store::EncodedBlob::getSize
std::size_t getSize() const noexcept
Definition
EncodedBlob.h:105
xrpl::node_store::EncodedBlob::getKey
void const * getKey() const noexcept
Definition
EncodedBlob.h:99
cstddef
memory
xrpl::node_store
Definition
ServiceRegistry.h:18
xrpl::node_store::kSeedValue
constexpr std::uint64_t kSeedValue
Definition
TestBase.h:28
xrpl::node_store::isSame
bool isSame(std::shared_ptr< NodeObject > const &lhs, std::shared_ptr< NodeObject > const &rhs)
Definition
TestBase.h:41
xrpl::node_store::TEST
TEST(NodeStoreBasics, predictable_batches)
Definition
Basics.cpp:14
xrpl::node_store::createPredictableBatch
Batch createPredictableBatch(std::size_t numObjects, std::uint64_t seed)
Definition
TestBase.h:48
xrpl::node_store::kNumObjectsToTest
constexpr int kNumObjectsToTest
Definition
TestBase.h:26
std::shared_ptr
std::size_t
string
std::to_string
T to_string(T... args)
Generated by
1.17.0