diff --git a/src/test/scala/leon/test/testcases/TestCasesCompile.scala b/src/test/scala/leon/test/testcases/TestCasesCompile.scala index b0d76789d617c56194bbdd01c7952dcb2efeaf09..8f22d4578b6e268b724e4b12b7b1bd45978d8629 100644 --- a/src/test/scala/leon/test/testcases/TestCasesCompile.scala +++ b/src/test/scala/leon/test/testcases/TestCasesCompile.scala @@ -5,6 +5,7 @@ package leon.test.testcases import leon._ import test.LeonTestSuite import java.io.File +import org.scalatest.ParallelTestExecution class TestCasesCompile extends LeonTestSuite { // Hard-code output directory, for Eclipse purposes @@ -14,42 +15,38 @@ class TestCasesCompile extends LeonTestSuite { def testFrontend(f: File, strip: Int) = { val name = f.getAbsolutePath.split("/").toList.drop(strip).mkString("/") - test("Compiling testcase " + name) { - val ctx = createLeonContext() - try { - pipeline.run(ctx)(List(f.getAbsolutePath)) - } catch { - case _: LeonFatalError => - fail("Failed to compile.") - } + val ctx = createLeonContext() + + try { + pipeline.run(ctx)(List(f.getAbsolutePath)) + info(name) + } catch { + case _: LeonFatalError => + fail("Failed to compile "+name) } } - private def forEachFileIn(path : String)(block : File => Unit) { + private def filesIn(path : String): Seq[File] = { val fs = filesInResourceDir(path, _.endsWith(".scala"), recursive=true) - for(f <- fs.toSeq.sortBy(_.getAbsolutePath)) { - block(f) - } + fs.toSeq } val baseDir = "regression/testcases/" val slashes = resourceDir(baseDir).getAbsolutePath.split("/").toList.size - forEachFileIn(baseDir+"repair/") { f => - testFrontend(f, slashes) - } - forEachFileIn(baseDir+"runtime/") { f => - testFrontend(f, slashes) - } - forEachFileIn(baseDir+"synthesis/") { f => - testFrontend(f, slashes) - } - forEachFileIn(baseDir+"verification/") { f => - testFrontend(f, slashes) - } - forEachFileIn(baseDir+"web/") { f => - testFrontend(f, slashes) + test("Compiling testcases") { + val all = (filesIn(baseDir+"repair/") ++ + filesIn(baseDir+"runtime/") ++ + filesIn(baseDir+"synthesis/") ++ + filesIn(baseDir+"verification/") ++ + filesIn(baseDir+"web/")).sortBy(_.getAbsolutePath) + + info("Compiling "+all.size+" testcases...") + + all.par.foreach { f => + testFrontend(f, slashes) + } } }