diff --git a/src/test/scala/leon/test/verification/XLangVerificationRegression.scala b/src/test/scala/leon/test/verification/XLangVerificationRegression.scala index 9509e08989759c6eb29e49410842be3bce1a3333..a22df5438706b39343929af3ad7cab344547bca9 100644 --- a/src/test/scala/leon/test/verification/XLangVerificationRegression.scala +++ b/src/test/scala/leon/test/verification/XLangVerificationRegression.scala @@ -26,7 +26,7 @@ class XLangVerificationRegression extends FunSuite { xlang.FunctionClosure andThen leon.verification.AnalysisPhase - private def mkTest(file : File)(block: Output=>Unit) = { + private def mkTest(file : File, forError: Boolean = false)(block: Output=>Unit) = { val fullName = file.getPath() val start = fullName.indexOf("regression") @@ -55,22 +55,32 @@ class XLangVerificationRegression extends FunSuite { val pipeline = mkPipeline - val report = pipeline.run(ctx)(file.getPath :: Nil) + if(forError) { + intercept[LeonFatalError]{ + pipeline.run(ctx)(file.getPath :: Nil) + } + } else { + + val report = pipeline.run(ctx)(file.getPath :: Nil) + + block(Output(report, ctx.reporter)) + } - block(Output(report, ctx.reporter)) } } - private def forEachFileIn(cat : String)(block : Output=>Unit) { + private def forEachFileIn(cat : String, forError: Boolean = false)(block : Output=>Unit) { val fs = filesInResourceDir( "regression/verification/xlang/" + cat, _.endsWith(".scala")) for(f <- fs) { - mkTest(f)(block) + mkTest(f, forError)(block) } } + forEachFileIn("error", true) { output => () } + forEachFileIn("valid") { output => val Output(report, reporter) = output assert(report.totalConditions === report.totalValid,