From f1507b5f744d0fa2b84384cde412e26acb079925 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9gis=20Blanc?= <regwblanc@gmail.com>
Date: Wed, 12 Dec 2012 22:22:01 +0100
Subject: [PATCH] error tests also for purescala

---
 .../error/InstanceOf1.scala                   |  0
 .../PureScalaVerificationRegression.scala     | 19 ++++++++++++++-----
 .../XLangVerificationRegression.scala         |  5 +++--
 3 files changed, 17 insertions(+), 7 deletions(-)
 rename src/test/resources/regression/verification/{xlang => purescala}/error/InstanceOf1.scala (100%)

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 1430b7cd5..77a64fef4 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 a22df5438..4102f5b87 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 => () }
+
 }
-- 
GitLab