@@ -30,7 +30,6 @@ TEST(analysis, example1)
30
30
ASSERT_EQ (analysis.instrs .size (), 8 );
31
31
32
32
EXPECT_EQ (analysis.instrs [0 ].fn , fake_fn_table[OPX_BEGINBLOCK]);
33
- EXPECT_EQ (analysis.instrs [0 ].arg .p .number , 0 );
34
33
EXPECT_EQ (analysis.instrs [1 ].fn , fake_fn_table[OP_PUSH1]);
35
34
EXPECT_EQ (analysis.instrs [2 ].fn , fake_fn_table[OP_PUSH1]);
36
35
EXPECT_EQ (analysis.instrs [3 ].fn , fake_fn_table[OP_MSTORE8]);
@@ -39,10 +38,9 @@ TEST(analysis, example1)
39
38
EXPECT_EQ (analysis.instrs [6 ].fn , fake_fn_table[OP_SSTORE]);
40
39
EXPECT_EQ (analysis.instrs [7 ].fn , fake_fn_table[OP_STOP]);
41
40
42
- ASSERT_EQ (analysis.blocks .size (), 1 );
43
- EXPECT_EQ (analysis.blocks [0 ].gas_cost , 14 );
44
- EXPECT_EQ (analysis.blocks [0 ].stack_req , 0 );
45
- EXPECT_EQ (analysis.blocks [0 ].stack_max_growth , 2 );
41
+ EXPECT_EQ (analysis.instrs [0 ].arg .block .gas_cost , 14 );
42
+ EXPECT_EQ (analysis.instrs [0 ].arg .block .stack_req , 0 );
43
+ EXPECT_EQ (analysis.instrs [0 ].arg .block .stack_max_growth , 2 );
46
44
}
47
45
48
46
TEST (analysis, stack_up_and_down)
@@ -52,16 +50,14 @@ TEST(analysis, stack_up_and_down)
52
50
53
51
ASSERT_EQ (analysis.instrs .size (), 20 );
54
52
EXPECT_EQ (analysis.instrs [0 ].fn , fake_fn_table[OPX_BEGINBLOCK]);
55
- EXPECT_EQ (analysis.instrs [0 ].arg .p .number , 0 );
56
53
EXPECT_EQ (analysis.instrs [1 ].fn , fake_fn_table[OP_DUP2]);
57
54
EXPECT_EQ (analysis.instrs [2 ].fn , fake_fn_table[OP_DUP1]);
58
55
EXPECT_EQ (analysis.instrs [8 ].fn , fake_fn_table[OP_POP]);
59
56
EXPECT_EQ (analysis.instrs [18 ].fn , fake_fn_table[OP_PUSH1]);
60
57
61
- ASSERT_EQ (analysis.blocks .size (), 1 );
62
- EXPECT_EQ (analysis.blocks [0 ].gas_cost , 7 * 3 + 10 * 2 + 3 );
63
- EXPECT_EQ (analysis.blocks [0 ].stack_req , 3 );
64
- EXPECT_EQ (analysis.blocks [0 ].stack_max_growth , 7 );
58
+ EXPECT_EQ (analysis.instrs [0 ].arg .block .gas_cost , 7 * 3 + 10 * 2 + 3 );
59
+ EXPECT_EQ (analysis.instrs [0 ].arg .block .stack_req , 3 );
60
+ EXPECT_EQ (analysis.instrs [0 ].arg .block .stack_max_growth , 7 );
65
61
}
66
62
67
63
TEST (analysis, push)
@@ -86,11 +82,12 @@ TEST(analysis, jumpdest_skip)
86
82
const auto code = bytecode{} + OP_STOP + OP_JUMPDEST;
87
83
auto analysis = evmone::analyze (fake_fn_table, rev, &code[0 ], code.size ());
88
84
89
- EXPECT_EQ (analysis.blocks .size (), 2 );
90
85
ASSERT_EQ (analysis.instrs .size (), 4 );
91
86
EXPECT_EQ (analysis.instrs [0 ].fn , fake_fn_table[OPX_BEGINBLOCK]);
87
+ EXPECT_EQ (analysis.instrs [0 ].arg .block .gas_cost , 0 );
92
88
EXPECT_EQ (analysis.instrs [1 ].fn , fake_fn_table[OP_STOP]);
93
89
EXPECT_EQ (analysis.instrs [2 ].fn , fake_fn_table[OP_JUMPDEST]);
90
+ EXPECT_EQ (analysis.instrs [2 ].arg .block .gas_cost , 1 );
94
91
EXPECT_EQ (analysis.instrs [3 ].fn , fake_fn_table[OP_STOP]);
95
92
}
96
93
@@ -99,7 +96,6 @@ TEST(analysis, jump1)
99
96
const auto code = jump (add (4 , 2 )) + OP_JUMPDEST + mstore (0 , 3 ) + ret (0 , 0x20 ) + jump (6 );
100
97
const auto analysis = analyze (fake_fn_table, rev, &code[0 ], code.size ());
101
98
102
- ASSERT_EQ (analysis.blocks .size (), 4 );
103
99
ASSERT_EQ (analysis.jumpdest_offsets .size (), 1 );
104
100
ASSERT_EQ (analysis.jumpdest_targets .size (), 1 );
105
101
EXPECT_EQ (analysis.jumpdest_offsets [0 ], 6 );
@@ -114,7 +110,6 @@ TEST(analysis, empty)
114
110
bytes code;
115
111
auto analysis = evmone::analyze (fake_fn_table, rev, &code[0 ], code.size ());
116
112
117
- EXPECT_EQ (analysis.blocks .size (), 1 );
118
113
EXPECT_EQ (analysis.instrs .size (), 2 );
119
114
EXPECT_EQ (analysis.instrs [0 ].fn , fake_fn_table[OPX_BEGINBLOCK]);
120
115
EXPECT_EQ (analysis.instrs [1 ].fn , fake_fn_table[OP_STOP]);
@@ -125,7 +120,6 @@ TEST(analysis, only_jumpdest)
125
120
const auto code = bytecode{OP_JUMPDEST};
126
121
auto analysis = evmone::analyze (fake_fn_table, rev, &code[0 ], code.size ());
127
122
128
- ASSERT_EQ (analysis.blocks .size (), 1 );
129
123
ASSERT_EQ (analysis.jumpdest_offsets .size (), 1 );
130
124
ASSERT_EQ (analysis.jumpdest_targets .size (), 1 );
131
125
EXPECT_EQ (analysis.jumpdest_offsets [0 ], 0 );
@@ -137,7 +131,6 @@ TEST(analysis, jumpi_at_the_end)
137
131
const auto code = bytecode{OP_JUMPI};
138
132
auto analysis = evmone::analyze (fake_fn_table, rev, &code[0 ], code.size ());
139
133
140
- EXPECT_EQ (analysis.blocks .size (), 2 );
141
134
ASSERT_EQ (analysis.instrs .size (), 4 );
142
135
EXPECT_EQ (analysis.instrs [0 ].fn , fake_fn_table[OPX_BEGINBLOCK]);
143
136
EXPECT_EQ (analysis.instrs [1 ].fn , fake_fn_table[OP_JUMPI]);
@@ -152,7 +145,6 @@ TEST(analysis, terminated_last_block)
152
145
const auto code = ret (0 , 0 );
153
146
auto analysis = evmone::analyze (fake_fn_table, rev, &code[0 ], code.size ());
154
147
155
- EXPECT_EQ (analysis.blocks .size (), 2 );
156
148
ASSERT_EQ (analysis.instrs .size (), 6 );
157
149
EXPECT_EQ (analysis.instrs [0 ].fn , fake_fn_table[OPX_BEGINBLOCK]);
158
150
EXPECT_EQ (analysis.instrs [3 ].fn , fake_fn_table[OP_RETURN]);
@@ -165,7 +157,6 @@ TEST(analysis, jumpdests_groups)
165
157
const auto code = 3 * OP_JUMPDEST + push (1 ) + 3 * OP_JUMPDEST + push (2 ) + OP_JUMPI;
166
158
auto analysis = evmone::analyze (fake_fn_table, rev, &code[0 ], code.size ());
167
159
168
- EXPECT_EQ (analysis.blocks .size (), 7 );
169
160
ASSERT_EQ (analysis.instrs .size (), 11 );
170
161
EXPECT_EQ (analysis.instrs [0 ].fn , fake_fn_table[OP_JUMPDEST]);
171
162
EXPECT_EQ (analysis.instrs [1 ].fn , fake_fn_table[OP_JUMPDEST]);
0 commit comments