1#include <gmock/gmock.h>
2#include <gtest/gtest.h>
16using tracegen::TestTraceContainer;
21TEST(SuccessCopyConstrainingTest, SuccessCopyTrue)
23 TestTraceContainer
trace({
24 { { C::execution_sel, 1 },
25 { C::execution_sel_execute_success_copy, 1 },
26 { C::execution_register_0_, 1 },
27 { C::execution_mem_tag_reg_0_,
static_cast<uint8_t
>(
MemoryTag::U1) },
28 { C::execution_last_child_success, 1 } },
33TEST(SuccessCopyConstrainingTest, SuccessCopyFalse)
35 TestTraceContainer
trace({
36 { { C::execution_sel, 1 },
37 { C::execution_sel_execute_success_copy, 1 },
38 { C::execution_register_0_, 0 },
39 { C::execution_mem_tag_reg_0_,
static_cast<uint8_t
>(
MemoryTag::U1) },
40 { C::execution_last_child_success, 0 } },
45TEST(SuccessCopyConstrainingTest, NegativeInvalidMemTag)
47 TestTraceContainer
trace({
48 { { C::execution_sel, 1 },
49 { C::execution_sel_execute_success_copy, 1 },
50 { C::execution_register_0_, 1 },
51 { C::execution_mem_tag_reg_0_,
static_cast<uint8_t
>(
MemoryTag::U16) },
52 { C::execution_last_child_success, 1 } },
55 "SUCCESS_COPY_U1_TAG");
58TEST(SuccessCopyConstrainingTest, NegativeInvalidLastChildSuccess)
60 TestTraceContainer
trace({
61 { { C::execution_sel, 1 },
62 { C::execution_sel_execute_success_copy, 1 },
63 { C::execution_register_0_, 0 },
64 { C::execution_mem_tag_reg_0_,
static_cast<uint8_t
>(
MemoryTag::U1) },
65 { C::execution_last_child_success, 1 } },
68 "SUCCESS_COPY_WRITE_REG");
static constexpr size_t SR_SUCCESS_COPY_U1_TAG
static constexpr size_t SR_SUCCESS_COPY_WRITE_REG
#define EXPECT_THROW_WITH_MESSAGE(code, expectedMessage)
TEST(TxExecutionConstrainingTest, WriteTreeValue)
NiceMock< MockExecution > execution