Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
internal_call_stack_trace.test.cpp
Go to the documentation of this file.
1#include <gmock/gmock.h>
2#include <gtest/gtest.h>
3
8
9namespace bb::avm2::tracegen {
10namespace {
11
12using testing::ElementsAre;
13using testing::Field;
14
16
17TEST(InternalCallStack, TraceGenerationSnapshot)
18{
19 TestTraceContainer trace;
20 InternalCallStackBuilder builder;
21
23 .context_id = 1,
24 .entered_call_id = 2,
25 .id = 1,
26 .return_id = 0,
27 .return_pc = 5,
28 },
29 {
30 .context_id = 1,
31 .entered_call_id = 3,
32 .id = 2,
33 .return_id = 1,
34 .return_pc = 10,
35 } },
36 trace);
37
38 EXPECT_THAT(trace.as_rows(),
39 ElementsAre(
40 // Only one row.
41 AllOf(ROW_FIELD_EQ(internal_call_stack_id, 1),
42 ROW_FIELD_EQ(internal_call_stack_entered_call_id, 2),
43 ROW_FIELD_EQ(internal_call_stack_id, 1),
44 ROW_FIELD_EQ(internal_call_stack_return_id, 0),
45 ROW_FIELD_EQ(internal_call_stack_return_pc, 5)),
46 AllOf(ROW_FIELD_EQ(internal_call_stack_id, 2),
47 ROW_FIELD_EQ(internal_call_stack_entered_call_id, 3),
48 ROW_FIELD_EQ(internal_call_stack_id, 2),
49 ROW_FIELD_EQ(internal_call_stack_return_id, 1),
50 ROW_FIELD_EQ(internal_call_stack_return_pc, 10))));
51}
52
53} // namespace
54} // namespace bb::avm2::tracegen
void process(const simulation::EventEmitterInterface< simulation::AluEvent >::Container &events, TraceContainer &trace)
std::vector< AvmFullRowConstRef > as_rows() const
AluTraceBuilder builder
Definition alu.test.cpp:123
TestTraceContainer trace
#define ROW_FIELD_EQ(field_name, expression)
Definition macros.hpp:15
TEST(EmitUnencryptedLogTest, Basic)