Skip to content

Commit 89fb241

Browse files
committed
Benchmark script verification with 100 nested IFs
1 parent 2706162 commit 89fb241

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

src/bench/verify_script.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,4 +71,27 @@ static void VerifyScriptBench(benchmark::State& state)
7171
}
7272
}
7373

74+
static void VerifyNestedIfScript(benchmark::State& state) {
75+
std::vector<std::vector<unsigned char>> stack;
76+
CScript script;
77+
for (int i = 0; i < 100; ++i) {
78+
script << OP_1 << OP_IF;
79+
}
80+
for (int i = 0; i < 1000; ++i) {
81+
script << OP_1;
82+
}
83+
for (int i = 0; i < 100; ++i) {
84+
script << OP_ENDIF;
85+
}
86+
while (state.KeepRunning()) {
87+
auto stack_copy = stack;
88+
ScriptError error;
89+
bool ret = EvalScript(stack_copy, script, 0, BaseSignatureChecker(), SigVersion::BASE, &error);
90+
assert(ret);
91+
}
92+
}
93+
94+
7495
BENCHMARK(VerifyScriptBench, 6300);
96+
97+
BENCHMARK(VerifyNestedIfScript, 100);

0 commit comments

Comments
 (0)