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 + -
显示快捷键?