From 8d1b1f89bf3f276ec94c21a11801c4559f1592ca Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Tue, 28 Sep 2010 21:45:59 -0400 Subject: [PATCH] make running scripted tests slightly less painful wildcard supported in test and group name prints label of test being run --- .../project/build/SpecializeTest.scala | 3 ++- scripted/sbt/ScriptedTests.scala | 21 ++++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/sbt/src/sbt-test/source-dependencies/specialized/project/build/SpecializeTest.scala b/sbt/src/sbt-test/source-dependencies/specialized/project/build/SpecializeTest.scala index a9fe1bbb0..094dd9442 100644 --- a/sbt/src/sbt-test/source-dependencies/specialized/project/build/SpecializeTest.scala +++ b/sbt/src/sbt-test/source-dependencies/specialized/project/build/SpecializeTest.scala @@ -2,5 +2,6 @@ import sbt._ class SpecializeTest(info: ProjectInfo) extends DefaultProject(info) { - override def compileOptions = super.compileOptions ++ Seq(CompileOption("-Yspecialize")) +// now on by default in 2.8 +// override def compileOptions = super.compileOptions ++ Seq(CompileOption("-Yspecialize")) } \ No newline at end of file diff --git a/scripted/sbt/ScriptedTests.scala b/scripted/sbt/ScriptedTests.scala index e664ee798..10678c030 100644 --- a/scripted/sbt/ScriptedTests.scala +++ b/scripted/sbt/ScriptedTests.scala @@ -20,10 +20,21 @@ final class ScriptedTests(resourceBaseDirectory: File, bufferLog: Boolean, sbtVe def scriptedTest(group: String, name: String, log: xsbti.Logger): Unit = scriptedTest(group, name, Logger.xlog2Log(log)) - def scriptedTest(group: String, name: String, log: Logger): Unit = - testResources.readWriteResourceDirectory(group, name) { testDirectory => - scriptedTest(group + " / " + name, testDirectory, log) + def scriptedTest(group: String, name: String, log: Logger): Unit = { + import Path._ + import GlobFilter._ + var failed = false + for(groupDir <- (resourceBaseDirectory * group).getFiles; nme <- (groupDir * name).getFiles ) { + val g = groupDir.getName + val n = nme.getName + println("Running " + g + " / " + n) + testResources.readWriteResourceDirectory(g, n) { testDirectory => + try { scriptedTest(g + " / " + n, testDirectory, log) } + catch { case e: xsbt.test.TestException => failed = true } + } } + if(failed) error(group + " / " + name + " failed") + } private def scriptedTest(label: String, testDirectory: File, log: Logger): Unit = IPC.pullServer( scriptedTest0(label, testDirectory, log) ) private def scriptedTest0(label: String, testDirectory: File, log: Logger)(server: IPC.Server) @@ -54,7 +65,7 @@ final class ScriptedTests(resourceBaseDirectory: File, bufferLog: Boolean, sbtVe catch { case e: xsbt.test.TestException => - buffered.play() + buffered.stop() buffered.error("x " + label) if(e.getCause eq null) buffered.error(" " + e.getMessage) @@ -62,7 +73,7 @@ final class ScriptedTests(resourceBaseDirectory: File, bufferLog: Boolean, sbtVe e.printStackTrace throw e case e: Exception => - buffered.play() + buffered.stop() buffered.error("x " + label) throw e }