From cd7a46520cbe897eba3bcee7fe02698d3ed81c94 Mon Sep 17 00:00:00 2001 From: Manos Koukoutos <emmanouil.koukoutos@epfl.ch> Date: Wed, 25 Nov 2015 14:51:54 +0100 Subject: [PATCH] CodegenEvaluatorSuite was doing nothing. Now it does something. --- .../evaluators/CodegenEvaluatorSuite.scala | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/src/test/scala/leon/integration/evaluators/CodegenEvaluatorSuite.scala b/src/test/scala/leon/integration/evaluators/CodegenEvaluatorSuite.scala index 0072da45d..e5565e073 100644 --- a/src/test/scala/leon/integration/evaluators/CodegenEvaluatorSuite.scala +++ b/src/test/scala/leon/integration/evaluators/CodegenEvaluatorSuite.scala @@ -9,7 +9,7 @@ import leon.purescala.Expressions._ import leon.purescala.Types._ import leon.codegen._ -class CodegenEvaluatorSuite extends LeonTestSuiteWithProgram { +class CodegenEvaluatorSuite extends LeonTestSuiteWithProgram with helpers.ExpressionsDSL{ val sources = List(""" import leon.lang._ @@ -316,7 +316,7 @@ class CodegenEvaluatorSuite extends LeonTestSuiteWithProgram { "Overrides1" -> Tuple(Seq(BooleanLiteral(false), BooleanLiteral(true))), "Overrides2" -> Tuple(Seq(BooleanLiteral(false), BooleanLiteral(true))), "Arrays1" -> IntLiteral(2), - "Arrays2" -> IntLiteral(6) + "Arrays2" -> IntLiteral(10) ) for { @@ -324,29 +324,25 @@ class CodegenEvaluatorSuite extends LeonTestSuiteWithProgram { requireMonitor <- Seq(false, true) doInstrument <- Seq(false,true) } { - val opts = ((if(requireMonitor) Some("monitor") else None) ++ - (if(doInstrument) Some("instrument") else None)).mkString("+") + val opts = (if(requireMonitor) "monitor " else "") + + (if(doInstrument) "instrument" else "") val testName = f"$name%-20s $opts%-18s" - test("Evaluation of "+testName) { case (ctx, pgm) => - val eval = new CodeGenEvaluator(ctx, pgm, CodeGenParams( + test("Evaluation of "+testName) { implicit fix => + val eval = new CodeGenEvaluator(fix._1, fix._2, CodeGenParams( maxFunctionInvocations = if (requireMonitor) 1000 else -1, // Monitor calls and abort execution if more than X calls checkContracts = true, // Generate calls that checks pre/postconditions doInstrument = doInstrument // Instrument reads to case classes (mainly for vanuatoo) )) - val fun = pgm.lookup(name+".test").collect { - case fd: FunDef => fd - }.getOrElse { - fail("Failed to lookup '"+name+".test'") - } - - (eval.eval(FunctionInvocation(fun.typed(Seq()), Seq())).result, exp) match { + (eval.eval(fcall(name + ".test")()).result, exp) match { case (Some(res), exp) => + assert(res === exp) case (None, Error(_, _)) => - case (None, _) => - case (_, Error(_, _)) => + // OK + case _ => + fail("") } } } -- GitLab