From 35b2766c74b28b986410d843f8c03be40d1509ac Mon Sep 17 00:00:00 2001 From: Etienne Kneuss <colder@php.net> Date: Thu, 7 Nov 2013 17:37:37 +0100 Subject: [PATCH] Add evaluator tests checking that CodeGenParams work --- .../test/evaluators/EvaluatorsTests.scala | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/test/scala/leon/test/evaluators/EvaluatorsTests.scala b/src/test/scala/leon/test/evaluators/EvaluatorsTests.scala index c20a80028..eec8591db 100644 --- a/src/test/scala/leon/test/evaluators/EvaluatorsTests.scala +++ b/src/test/scala/leon/test/evaluators/EvaluatorsTests.scala @@ -434,4 +434,39 @@ class EvaluatorsTests extends LeonTestSuite { checkEvaluatorError(e, mkCall("c", IL(42))) } } + + test("Infinite Recursion") { + import codegen._ + + val p = """|object Program { + | import leon.Utils._ + | + | def c(i : Int) : Int = c(i-1) + |} + |""".stripMargin + + implicit val prog = parseString(p) + + val e = new CodeGenEvaluator(leonContext, prog, CodeGenParams(maxFunctionInvocations = 32)) + checkEvaluatorError(e, mkCall("c", IL(42))) + } + + test("Wrong Contracts") { + import codegen._ + + val p = """|object Program { + | import leon.Utils._ + | + | def c(i : Int) : Int = { + | require(i > 0); + | c(i-1) + | } + |} + |""".stripMargin + + implicit val prog = parseString(p) + + val e = new CodeGenEvaluator(leonContext, prog, CodeGenParams(checkContracts = true)) + checkError(e, mkCall("c", IL(-42))) + } } -- GitLab