3#include <gmock/gmock.h>
4#include <gtest/gtest.h>
21 bool operator==(
const Row& other)
const =
default;
26using ::testing::AllOf;
27using ::testing::ElementsAre;
34 rows.push_back({ .foo =
event.foo, .discard =
discard });
40TEST(DiscardReconstructionTest, DiscardNestedReverts)
43 CheckPointEventType::CREATE_CHECKPOINT,
48 CheckPointEventType::CREATE_CHECKPOINT,
52 CheckPointEventType::REVERT_CHECKPOINT,
56 CheckPointEventType::REVERT_CHECKPOINT,
62 auto rows = tracegen(events);
65 ElementsAre(AllOf(Row{ .foo = 1000, .discard = 1 }),
66 AllOf(Row{ .foo = 1001, .discard = 1 }),
67 AllOf(Row{ .foo = 1002, .discard = 1 }),
69 AllOf(Row{ .foo = 1003, .discard = 0 })));
72TEST(DiscardReconstructionTest, DiscardSequentialReverts)
79 CheckPointEventType::CREATE_CHECKPOINT,
83 CheckPointEventType::REVERT_CHECKPOINT,
87 CheckPointEventType::CREATE_CHECKPOINT,
91 CheckPointEventType::REVERT_CHECKPOINT,
97 auto rows = tracegen(events);
100 ElementsAre(AllOf(Row{ .foo = 1000, .discard = 0 }),
102 AllOf(Row{ .foo = 1001, .discard = 1 }),
104 AllOf(Row{ .foo = 1002, .discard = 0 }),
106 AllOf(Row{ .foo = 1003, .discard = 1 }),
108 AllOf(Row{ .foo = 1004, .discard = 0 })));
TEST(EmitUnencryptedLogTest, Basic)
void process_with_discard(const std::vector< std::variant< EventType, simulation::CheckPointEventType > > &events, ProcessEventFn &&process_event)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
simulation::PublicDataTreeReadWriteEvent event