From 614fe9ea9ef856f41cab42ee0eb827e2ea22c76c Mon Sep 17 00:00:00 2001 From: Bhargava Shastry Date: Thu, 15 Apr 2021 11:36:13 +0200 Subject: [PATCH] Update test harness with minimal setup. --- test/tools/ossfuzz/YulToEvmDifferentialFuzzer.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/test/tools/ossfuzz/YulToEvmDifferentialFuzzer.cpp b/test/tools/ossfuzz/YulToEvmDifferentialFuzzer.cpp index d8b918383..c6ded0cc7 100644 --- a/test/tools/ossfuzz/YulToEvmDifferentialFuzzer.cpp +++ b/test/tools/ossfuzz/YulToEvmDifferentialFuzzer.cpp @@ -101,15 +101,11 @@ DEFINE_PROTO_FUZZER(Program const& _input) } solidity::frontend::OptimiserSettings settings = solidity::frontend::OptimiserSettings::none(); - // Stack evader requires stack allocation to be done. - settings.optimizeStackAllocation = true; - settings.runYulOptimiser = true; AssemblyStack stackUnoptimized(version, AssemblyStack::Language::StrictAssembly, settings); solAssert( stackUnoptimized.parseAndAnalyze("source", yulSubObject), "Parsing fuzzer generated input failed." ); - stackUnoptimized.optimize(); ostringstream unoptimizedState; yulFuzzerUtil::TerminationReason termReason = yulFuzzerUtil::interpret( unoptimizedState, @@ -128,16 +124,17 @@ DEFINE_PROTO_FUZZER(Program const& _input) stackOptimized.parseAndAnalyze("source", yulSubObject), "Parsing fuzzer generated input failed." ); - stackOptimized.optimize(); YulOptimizerTestCommon optimizerTest( stackOptimized.parserResult(), EVMDialect::strictAssemblyForEVMObjects(version) ); - // HACK: Force this to fake stack limit evader for now - string step = "stackLimitEvader"; + // Run circular references pruner and then stack limit evader. + string step = "circularReferencesPruner"; optimizerTest.setStep(step); -// optimizerTest.setStep(optimizerTest.randomOptimiserStep(_input.step())); shared_ptr astBlock = optimizerTest.run(); + step = "stackLimitEvader"; + optimizerTest.setStep(step); + astBlock = optimizerTest.run(); string optimisedProgram = Whiskers(R"( object "main" { code { @@ -155,7 +152,7 @@ DEFINE_PROTO_FUZZER(Program const& _input) .render(); cout << AsmPrinter{}(*astBlock) << endl; bytes optimisedByteCode; - settings.runYulOptimiser = false; + settings.optimizeStackAllocation = true; optimisedByteCode = YulAssembler{version, settings, optimisedProgram}.assemble(); // Reset host before running optimised code.