From 7f637d95f7f93c8218343719a25a1cc27afb00b5 Mon Sep 17 00:00:00 2001
From: Philippe Suter <philippe.suter@gmail.com>
Date: Thu, 25 Oct 2012 16:16:52 +0200
Subject: [PATCH] tests won't run

---
 build.sbt                                    |  5 +++++
 src/main/scala/leon/Main.scala               |  4 ++--
 src/main/scala/leon/Reporter.scala           |  9 ++++++--
 src/test/scala/leon/test/Test.scala          |  9 ++++++++
 src/test/scala/leon/test/ValidPrograms.scala | 23 ++++++++++++++++++++
 5 files changed, 46 insertions(+), 4 deletions(-)
 create mode 100644 src/test/scala/leon/test/Test.scala
 create mode 100644 src/test/scala/leon/test/ValidPrograms.scala

diff --git a/build.sbt b/build.sbt
index 9c65cad86..817f553b6 100644
--- a/build.sbt
+++ b/build.sbt
@@ -12,5 +12,10 @@ scalacOptions += "-unchecked"
 
 libraryDependencies += "org.scala-lang" % "scala-compiler" % "2.9.1-1"
 
+libraryDependencies += "org.scalatest" %% "scalatest" % "1.8" % "test"
+
 unmanagedBase <<= baseDirectory { base => base / "unmanaged" }
 
+fork in run := true
+
+fork in test := true
diff --git a/src/main/scala/leon/Main.scala b/src/main/scala/leon/Main.scala
index b7681eaf9..f14d3b33c 100644
--- a/src/main/scala/leon/Main.scala
+++ b/src/main/scala/leon/Main.scala
@@ -92,7 +92,7 @@ object Main {
 
   implicit def phaseToPipeline[F, T](phase: LeonPhase[F, T]): Pipeline[F, T] = new PipeCons(phase, new PipeNil())
 
-  def computePipeLine(settings: Settings): Pipeline[List[String], Unit] = {
+  def computePipeline(settings: Settings): Pipeline[List[String], Unit] = {
     import purescala.Definitions.Program
 
     val pipeBegin = phaseToPipeline(plugin.ExtractionPhase)
@@ -135,7 +135,7 @@ object Main {
     val ctx = processOptions(reporter, args.toList)
 
     // Compute leon pipeline
-    val pipeline = computePipeLine(ctx.settings)
+    val pipeline = computePipeline(ctx.settings)
 
     // Run phases
     pipeline.run(ctx)(args.toList)
diff --git a/src/main/scala/leon/Reporter.scala b/src/main/scala/leon/Reporter.scala
index 2cdea3d02..03512770f 100644
--- a/src/main/scala/leon/Reporter.scala
+++ b/src/main/scala/leon/Reporter.scala
@@ -57,6 +57,11 @@ class DefaultReporter extends Reporter {
 }
 
 class QuietReporter extends DefaultReporter {
-  override def warning(msg: Any) = {}
-  override def info(msg: Any) = {}
+  override def warning(msg : Any) = {}
+  override def info(msg : Any) = {}
+}
+
+class SilentReporter extends QuietReporter {
+  override def error(msg : Any) = {}
+  override def fatalError(msg : Any) = throw new Exception("Fatal error: " + msg.toString)
 }
diff --git a/src/test/scala/leon/test/Test.scala b/src/test/scala/leon/test/Test.scala
new file mode 100644
index 000000000..ed3549395
--- /dev/null
+++ b/src/test/scala/leon/test/Test.scala
@@ -0,0 +1,9 @@
+package leon.test
+
+import org.scalatest.FunSuite
+
+class Test extends FunSuite {
+  test("Tests work.") {
+    assert(true)
+  }
+}
diff --git a/src/test/scala/leon/test/ValidPrograms.scala b/src/test/scala/leon/test/ValidPrograms.scala
new file mode 100644
index 000000000..cb444bb14
--- /dev/null
+++ b/src/test/scala/leon/test/ValidPrograms.scala
@@ -0,0 +1,23 @@
+package leon
+package test
+
+import org.scalatest.FunSuite
+
+class ValidPrograms extends FunSuite {
+  test("Some program is valid.") {
+    val ctx = LeonContext(
+      Settings(
+        synthesis = false,
+        xlang     = false,
+        analyze   = true
+      ),
+      new SilentReporter
+    )
+
+    val pipeline = Main.computePipeline(ctx.settings) 
+
+    val result = pipeline.run(ctx)("/home/psuter/Test.scala" :: Nil)
+
+    assert(true)
+  }
+}
-- 
GitLab