1#include <gmock/gmock.h>
2#include <gtest/gtest.h>
16using tracegen::TestTraceContainer;
22TEST(CtrlFlowConstrainingTest, Jump)
24 TestTraceContainer
trace({
25 { { C::precomputed_first_row, 1 } },
27 { C::execution_sel, 1 },
28 { C::execution_sel_execute_jump, 1 },
29 { C::execution_rop_0_, 120 },
31 { { C::execution_sel, 1 }, { C::execution_last, 1 }, { C::execution_pc, 120 } },
39 "PC_NEXT_ROW_INT_CALL_JUMP");
42TEST(CtrlFlowConstrainingTest, JumpiTrueCondition)
44 TestTraceContainer
trace({
45 { { C::precomputed_first_row, 1 } },
46 { { C::execution_sel, 1 },
47 { C::execution_sel_execute_jumpi, 1 },
48 { C::execution_rop_1_, 120 },
49 { C::execution_next_pc, 220 },
50 { C::execution_register_0_, 1 } },
51 { { C::execution_sel, 1 }, { C::execution_last, 1 }, { C::execution_pc, 120 } },
61TEST(CtrlFlowConstrainingTest, JumpiFalseCondition)
63 TestTraceContainer
trace({
64 { { C::precomputed_first_row, 1 } },
65 { { C::execution_sel, 1 },
66 { C::execution_sel_execute_jumpi, 1 },
67 { C::execution_rop_1_, 120 },
68 { C::execution_next_pc, 220 },
69 { C::execution_register_0_, 0 } },
70 { { C::execution_sel, 1 }, { C::execution_last, 1 }, { C::execution_pc, 220 } },
static constexpr size_t SR_PC_NEXT_ROW_INT_CALL_JUMP
static constexpr size_t SR_PC_NEXT_ROW_JUMPI
void set(Column col, uint32_t row, const FF &value)
#define EXPECT_THROW_WITH_MESSAGE(code, expectedMessage)
TEST(TxExecutionConstrainingTest, WriteTreeValue)
NiceMock< MockExecution > execution