diff --git a/src/test/resources/regression/verification/xlang/error/InstanceOf1.scala b/src/test/resources/regression/verification/purescala/error/InstanceOf1.scala similarity index 100% rename from src/test/resources/regression/verification/xlang/error/InstanceOf1.scala rename to src/test/resources/regression/verification/purescala/error/InstanceOf1.scala diff --git a/src/test/scala/leon/test/verification/PureScalaVerificationRegression.scala b/src/test/scala/leon/test/verification/PureScalaVerificationRegression.scala index 1430b7cd51d7e8d0b7113fc7074acbbb7047ef40..77a64fef4dcbfe904c7e480bac5f61daf0384130 100644 --- a/src/test/scala/leon/test/verification/PureScalaVerificationRegression.scala +++ b/src/test/scala/leon/test/verification/PureScalaVerificationRegression.scala @@ -21,7 +21,7 @@ class PureScalaVerificationRegression extends FunSuite { private def mkPipeline : Pipeline[List[String],VerificationReport] = leon.plugin.ExtractionPhase 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") @@ -48,19 +48,26 @@ class PureScalaVerificationRegression extends FunSuite { val pipeline = mkPipeline - val report = pipeline.run(ctx)(file.getPath :: Nil) + if(forError) { + intercept[LeonFatalError]{ + pipeline.run(ctx)(file.getPath :: Nil) + } + } else { - block(Output(report, ctx.reporter)) + val report = pipeline.run(ctx)(file.getPath :: Nil) + + 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/purescala/" + cat, _.endsWith(".scala")) for(f <- fs) { - mkTest(f)(block) + mkTest(f, forError)(block) } } @@ -81,4 +88,6 @@ class PureScalaVerificationRegression extends FunSuite { assert(reporter.errorCount >= report.totalInvalid) assert(reporter.warningCount === 0) } + forEachFileIn("error", true) { output => () } + } diff --git a/src/test/scala/leon/test/verification/XLangVerificationRegression.scala b/src/test/scala/leon/test/verification/XLangVerificationRegression.scala index a22df5438706b39343929af3ad7cab344547bca9..4102f5b87ed3185ab4b60492351a151aee698bbc 100644 --- a/src/test/scala/leon/test/verification/XLangVerificationRegression.scala +++ b/src/test/scala/leon/test/verification/XLangVerificationRegression.scala @@ -79,8 +79,6 @@ class XLangVerificationRegression extends FunSuite { } } - forEachFileIn("error", true) { output => () } - forEachFileIn("valid") { output => val Output(report, reporter) = output assert(report.totalConditions === report.totalValid, @@ -98,4 +96,7 @@ class XLangVerificationRegression extends FunSuite { assert(reporter.errorCount >= report.totalInvalid) assert(reporter.warningCount === 0) } + + forEachFileIn("error", true) { output => () } + }