directrunner.scala

来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 61 行

SCALA
61
字号
/* NEST (New Scala Test) * Copyright 2007-2008 LAMP/EPFL * @author Philipp Haller */// $Id: DirectRunner.scala 14415 2008-03-19 00:53:09Z mihaylov $package scala.tools.partest.nestimport java.io.{File, PrintStream, FileOutputStream, BufferedReader,                InputStreamReader, StringWriter, PrintWriter}import java.util.StringTokenizerimport scala.actors.Actor._trait DirectRunner {  def fileManager: FileManager  private val numActors = Integer.parseInt(System.getProperty("scalatest.actors", "8"))  def runTestsForFiles(kindFiles: List[File], kind: String): (Int, Int) = {    val len = kindFiles.length    val (testsEach, lastFrag) = (len/numActors, len%numActors)    val last = numActors-1    val workers = for (i <- List.range(0, numActors)) yield {      val toTest = kindFiles.slice(i*testsEach, (i+1)*testsEach)      val worker = new Worker(fileManager)      worker.start()      if (i == last)        worker ! RunTests(kind, (kindFiles splitAt (last*testsEach))._2)      else        worker ! RunTests(kind, toTest)      worker    }    var succs = 0; var fails = 0    var logsToDelete: List[File] = List()    var outdirsToDelete: List[File] = List()    workers foreach { w =>      receive {        case Results(s, f, logs, outdirs) =>          logsToDelete = logsToDelete ::: logs.filter(_.toDelete)          outdirsToDelete = outdirsToDelete ::: outdirs          succs += s          fails += f      }    }    logsToDelete.foreach { log =>      NestUI.verbose("deleting "+log)      fileManager.deleteRecursive(log)    }    outdirsToDelete.foreach { outdir =>      NestUI.verbose("deleting "+outdir)      fileManager.deleteRecursive(outdir)    }        (succs, fails)  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?