diff --git a/build.sbt b/build.sbt index 9c65cad8612062a40ad17857359b273ae9331676..817f553b68ec7119180abe76d972cd02be57746a 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 b7681eaf955831465f2e8c2100ec8296ee1c6494..f14d3b33c8c85370e8ee8f416a67ab6a52be6078 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 2cdea3d02f99f63c7de31a7f86ca5f4815056c08..03512770fc9c84d9d11a41b2124fafdc6683e506 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 0000000000000000000000000000000000000000..ed3549395b971f0e12fbdb8a8c7656526fe936e8 --- /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 0000000000000000000000000000000000000000..cb444bb140845af72db7ac0272dffa511f515f40 --- /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) + } +}