Yul interpreter: Smaller execution timeout for tests and additional test cases

This commit is contained in:
Bhargava Shastry
2020-07-24 11:18:54 +02:00
parent 7ad27188a0
commit 0b1d0e0bd2
4 changed files with 40 additions and 10 deletions
+5 -8
View File
@@ -91,25 +91,22 @@ DEFINE_PROTO_FUZZER(Program const& _input)
ostringstream os1;
ostringstream os2;
yulFuzzerUtil::TerminationReason termReason = yulFuzzerUtil::interpret(
yulFuzzerUtil::interpret(
os1,
stack.parserResult()->code,
EVMDialect::strictAssemblyForEVMObjects(version)
);
if (
termReason == yulFuzzerUtil::TerminationReason::StepLimitReached ||
termReason == yulFuzzerUtil::TerminationReason::TraceLimitReached
)
return;
stack.optimize();
yulFuzzerUtil::interpret(
yulFuzzerUtil::TerminationReason termReason = yulFuzzerUtil::interpret(
os2,
stack.parserResult()->code,
EVMDialect::strictAssemblyForEVMObjects(version)
);
if (termReason == yulFuzzerUtil::TerminationReason::StepLimitReached)
return;
bool isTraceEq = (os1.str() == os2.str());
yulAssert(isTraceEq, "Interpreted traces for optimized and unoptimized code differ.");
return;