make running scripted tests slightly less painful

wildcard supported in test and group name
prints label of test being run
This commit is contained in:
Mark Harrah 2010-09-28 21:45:59 -04:00
parent 620c433498
commit 8d1b1f89bf
2 changed files with 18 additions and 6 deletions

View File

@ -2,5 +2,6 @@ import sbt._
class SpecializeTest(info: ProjectInfo) extends DefaultProject(info) 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"))
} }

View File

@ -20,10 +20,21 @@ final class ScriptedTests(resourceBaseDirectory: File, bufferLog: Boolean, sbtVe
def scriptedTest(group: String, name: String, log: xsbti.Logger): Unit = def scriptedTest(group: String, name: String, log: xsbti.Logger): Unit =
scriptedTest(group, name, Logger.xlog2Log(log)) scriptedTest(group, name, Logger.xlog2Log(log))
def scriptedTest(group: String, name: String, log: Logger): Unit = def scriptedTest(group: String, name: String, log: Logger): Unit = {
testResources.readWriteResourceDirectory(group, name) { testDirectory => import Path._
scriptedTest(group + " / " + name, testDirectory, log) 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 = private def scriptedTest(label: String, testDirectory: File, log: Logger): Unit =
IPC.pullServer( scriptedTest0(label, testDirectory, log) ) IPC.pullServer( scriptedTest0(label, testDirectory, log) )
private def scriptedTest0(label: String, testDirectory: File, log: Logger)(server: IPC.Server) 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 catch
{ {
case e: xsbt.test.TestException => case e: xsbt.test.TestException =>
buffered.play() buffered.stop()
buffered.error("x " + label) buffered.error("x " + label)
if(e.getCause eq null) if(e.getCause eq null)
buffered.error(" " + e.getMessage) buffered.error(" " + e.getMessage)
@ -62,7 +73,7 @@ final class ScriptedTests(resourceBaseDirectory: File, bufferLog: Boolean, sbtVe
e.printStackTrace e.printStackTrace
throw e throw e
case e: Exception => case e: Exception =>
buffered.play() buffered.stop()
buffered.error("x " + label) buffered.error("x " + label)
throw e throw e
} }