From 40f8fa94026d482f8318481bb64ae0245a39acbc Mon Sep 17 00:00:00 2001 From: michelou Date: Tue, 10 Mar 2009 11:39:04 +0000 Subject: removed deprecated warning, updated svn props, ... removed deprecated warning, updated svn props, cleaned up code --- src/partest/scala/tools/partest/PartestTask.scala | 147 +++++++++------------ .../scala/tools/partest/nest/AntRunner.scala | 9 +- .../scala/tools/partest/nest/CompileManager.scala | 23 +++- .../scala/tools/partest/nest/ConsoleRunner.scala | 12 +- .../scala/tools/partest/nest/FileManager.scala | 5 +- src/partest/scala/tools/partest/nest/NestUI.scala | 7 +- .../scala/tools/partest/nest/RunnerUtils.scala | 6 + src/partest/scala/tools/partest/nest/Worker.scala | 3 +- 8 files changed, 114 insertions(+), 98 deletions(-) (limited to 'src/partest') diff --git a/src/partest/scala/tools/partest/PartestTask.scala b/src/partest/scala/tools/partest/PartestTask.scala index b619eaa9ca..bda1f5b679 100644 --- a/src/partest/scala/tools/partest/PartestTask.scala +++ b/src/partest/scala/tools/partest/PartestTask.scala @@ -20,70 +20,89 @@ import org.apache.tools.ant.types.{Path, Reference, FileSet} class PartestTask extends Task { - def addConfiguredPosTests(input: FileSet): Unit = + def addConfiguredPosTests(input: FileSet) { posFiles = Some(input) + } - def addConfiguredPos5Tests(input: FileSet): Unit = + def addConfiguredPos5Tests(input: FileSet) { pos5Files = Some(input) + } - def addConfiguredNegTests(input: FileSet): Unit = + def addConfiguredNegTests(input: FileSet) { negFiles = Some(input) + } - def addConfiguredRunTests(input: FileSet): Unit = + def addConfiguredRunTests(input: FileSet) { runFiles = Some(input) + } - def addConfiguredJvmTests(input: FileSet): Unit = + def addConfiguredJvmTests(input: FileSet) { jvmFiles = Some(input) + } - def addConfiguredJvm5Tests(input: FileSet): Unit = + def addConfiguredJvm5Tests(input: FileSet) { jvm5Files = Some(input) + } - def addConfiguredResidentTests(input: FileSet): Unit = + def addConfiguredResidentTests(input: FileSet) { residentFiles = Some(input) + } - def addConfiguredScriptTests(input: FileSet): Unit = + def addConfiguredScriptTests(input: FileSet) { scriptFiles = Some(input) + } - def addConfiguredShootoutTests(input: FileSet): Unit = + def addConfiguredShootoutTests(input: FileSet) { shootoutFiles = Some(input) + } - def setClasspath(input: Path): Unit = + def setClasspath(input: Path) { if (classpath.isEmpty) classpath = Some(input) else classpath.get.append(input) + } def createClasspath(): Path = { if (classpath.isEmpty) classpath = Some(new Path(getProject())) classpath.get.createPath() } - def setClasspathref(input: Reference): Unit = + def setClasspathref(input: Reference) { createClasspath().setRefid(input) + } - def setShowLog(input: Boolean): Unit = + def setShowLog(input: Boolean) { showLog = input + } - def setShowDiff(input: Boolean): Unit = + def setShowDiff(input: Boolean) { showDiff = input + } - def setErrorOnFailed(input: Boolean): Unit = + def setErrorOnFailed(input: Boolean) { errorOnFailed = input + } - def setJavaCmd(input: File): Unit = + def setJavaCmd(input: File) { javacmd = Some(input) + } - def setJavacCmd(input: File): Unit = + def setJavacCmd(input: File) { javaccmd = Some(input) + } - def setScalacOpts(opts: String): Unit = + def setScalacOpts(opts: String) { scalacOpts = Some(opts) + } - def setTimeout(delay: String): Unit = + def setTimeout(delay: String) { timeout = Some(delay) + } - def setDebug(input: Boolean): Unit = + def setDebug(input: Boolean) { debug = input + } private var classpath: Option[Path] = None private var javacmd: Option[File] = None @@ -105,12 +124,20 @@ class PartestTask extends Task { private var timeout: Option[String] = None private var debug = false + private def getFiles(fileSet: Option[FileSet]): Array[File] = + if (fileSet.isEmpty) Array() + else { + val files = fileSet.get + files.getDirectoryScanner(getProject).getIncludedFiles map { + fs => new File(files.getDir(getProject), fs) + } + } + private def getFilesAndDirs(fileSet: Option[FileSet]): Array[File] = if (!fileSet.isEmpty) { val files = fileSet.get + val fileTests = getFiles(fileSet) val dir = files.getDir(getProject) - val fileTests = (files.getDirectoryScanner(getProject).getIncludedFiles map { fs => - new File(dir, fs) }) val dirTests = dir.listFiles(new java.io.FileFilter { def accept(file: File) = file.isDirectory && @@ -122,59 +149,17 @@ class PartestTask extends Task { else Array() - private def getPosFiles: Array[File] = - getFilesAndDirs(posFiles) - - private def getPos5Files: Array[File] = - getFilesAndDirs(pos5Files) - - private def getNegFiles: Array[File] = - if (!negFiles.isEmpty) { - val files = negFiles.get - (files.getDirectoryScanner(getProject).getIncludedFiles map { fs => new File(files.getDir(getProject), fs) }) - } - else - Array() - - private def getRunFiles: Array[File] = - if (!runFiles.isEmpty) { - val files = runFiles.get - (files.getDirectoryScanner(getProject).getIncludedFiles map { fs => new File(files.getDir(getProject), fs) }) - } - else - Array() - - private def getJvmFiles: Array[File] = - getFilesAndDirs(jvmFiles) - - private def getJvm5Files: Array[File] = - getFilesAndDirs(jvm5Files) - - private def getResidentFiles: Array[File] = - if (!residentFiles.isEmpty) { - val files = residentFiles.get - (files.getDirectoryScanner(getProject).getIncludedFiles map { fs => new File(files.getDir(getProject), fs) }) - } - else - Array() - - private def getScriptFiles: Array[File] = - if (!scriptFiles.isEmpty) { - val files = scriptFiles.get - (files.getDirectoryScanner(getProject).getIncludedFiles map { fs => new File(files.getDir(getProject), fs) }) - } - else - Array() - - private def getShootoutFiles: Array[File] = - if (!shootoutFiles.isEmpty) { - val files = shootoutFiles.get - (files.getDirectoryScanner(getProject).getIncludedFiles map { fs => new File(files.getDir(getProject), fs) }) - } - else - Array() - - override def execute(): Unit = { + private def getPosFiles = getFilesAndDirs(posFiles) + private def getPos5Files = getFilesAndDirs(pos5Files) + private def getNegFiles = getFiles(negFiles) + private def getRunFiles = getFiles(runFiles) + private def getJvmFiles = getFilesAndDirs(jvmFiles) + private def getJvm5Files = getFilesAndDirs(jvm5Files) + private def getResidentFiles = getFiles(residentFiles) + private def getScriptFiles = getFiles(scriptFiles) + private def getShootoutFiles = getFiles(shootoutFiles) + + override def execute() { if (debug) System.setProperty("partest.debug", "true") @@ -208,13 +193,13 @@ class PartestTask extends Task { (result >> 16, result & 0x00FF) } - def setFileManagerBooleanProperty(name: String, value: Boolean) = { + def setFileManagerBooleanProperty(name: String, value: Boolean) { val setMethod = antFileManager.getClass.getMethod(name+"_$eq", Array(classOf[Boolean]): _*) setMethod.invoke(antFileManager, Array(java.lang.Boolean.valueOf(value)): _*) } - def setFileManagerStringProperty(name: String, value: String) = { + def setFileManagerStringProperty(name: String, value: String) { val setMethod = antFileManager.getClass.getMethod(name+"_$eq", Array(classOf[String]): _*) setMethod.invoke(antFileManager, Array(value): _*) @@ -304,11 +289,11 @@ class PartestTask extends Task { log("There where no tests to run.") else if (allFailures == 0) log("Test suite finished with no failures.") - else if (errorOnFailed) - error("Test suite finished with " + allFailures + " case" + (if (allFailures > 1) "s" else "") + " failing.") - else - log("Test suite finished with " + allFailures + " case" + (if (allFailures > 1) "s" else "") + " failing.") - + else { + val msg = "Test suite finished with " + allFailures + + " case" + (if (allFailures > 1) "s" else "") + " failing." + if (errorOnFailed) error(msg) else log(msg) + } } } diff --git a/src/partest/scala/tools/partest/nest/AntRunner.scala b/src/partest/scala/tools/partest/nest/AntRunner.scala index 8b0a6c1c2b..9939a6b0c3 100644 --- a/src/partest/scala/tools/partest/nest/AntRunner.scala +++ b/src/partest/scala/tools/partest/nest/AntRunner.scala @@ -10,24 +10,17 @@ package scala.tools.partest.nest -import scala.actors.Actor._ - import java.io.File -import java.net.URLClassLoader - -import org.apache.tools.ant.Task -import org.apache.tools.ant.types.{Path, Reference, FileSet} class AntRunner extends DirectRunner { val fileManager = new FileManager { - var JAVACMD: String = "java" var JAVAC_CMD: String = "javac" var CLASSPATH: String = _ var EXT_CLASSPATH: String = _ var LATEST_LIB: String = _ - + val TESTROOT: String = "" } def reflectiveRunTestsForFiles(kindFiles: Array[File], kind: String): Int = { diff --git a/src/partest/scala/tools/partest/nest/CompileManager.scala b/src/partest/scala/tools/partest/nest/CompileManager.scala index f1fa7ccde2..a9a930462a 100644 --- a/src/partest/scala/tools/partest/nest/CompileManager.scala +++ b/src/partest/scala/tools/partest/nest/CompileManager.scala @@ -55,6 +55,25 @@ class DirectCompiler(val fileManager: FileManager) extends SimpleCompiler { Console.in, new PrintWriter(new StringWriter)) + private def updatePluginPath(options: String): String = { + val (opt1, opt2) = + (options split "\\s").toList partition (_ startsWith "-Xplugin:") + (opt2 mkString " ")+( + if (opt1.isEmpty) "" + else { + def absolutize(path: String): List[String] = { + val args = (path substring 9 split File.pathSeparator).toList + val plugins = args map (arg => + if (new File(arg).isAbsolute) arg + else fileManager.TESTROOT+File.separator+arg + ) + plugins + } + " -Xplugin:"+((opt1 flatMap absolutize) mkString File.pathSeparator) + } + ) + } + def compile(out: Option[File], files: List[File], kind: String, log: File): Boolean = { val testSettings = newSettings val logWriter = new FileWriter(log) @@ -68,13 +87,13 @@ class DirectCompiler(val fileManager: FileManager) extends SimpleCompiler { val argString = if (argsFile.exists) { val fileReader = new FileReader(argsFile) val reader = new BufferedReader(fileReader) - val options = reader.readLine() + val options = updatePluginPath(reader.readLine()) reader.close() options } else "" val allOpts = fileManager.SCALAC_OPTS+" "+argString NestUI.verbose("scalac options: "+allOpts) - val args = List.fromArray(allOpts.split("\\s")) + val args = List.fromArray(allOpts split "\\s") val command = new CompilerCommand(args, testSettings, x => {}, false) val global = newGlobal(command.settings, logWriter) val testRep: ExtConsoleReporter = global.reporter.asInstanceOf[ExtConsoleReporter] diff --git a/src/partest/scala/tools/partest/nest/ConsoleRunner.scala b/src/partest/scala/tools/partest/nest/ConsoleRunner.scala index c889f88311..f85f16efec 100644 --- a/src/partest/scala/tools/partest/nest/ConsoleRunner.scala +++ b/src/partest/scala/tools/partest/nest/ConsoleRunner.scala @@ -54,9 +54,17 @@ class ConsoleRunner extends DirectRunner with RunnerUtils { def denotesTestDir(arg: String) = (new File(arg)).isDirectory + private def printVersion { + val versionMsg = "Scala partest "+ + NestUI.versionString+ + " -- "+ + scala.tools.nsc.Properties.copyrightString + NestUI.outline(versionMsg+"\n") + } + def main(argstr: String) { // tokenize args. filter: "".split("\\s") yields Array("") - var args = List.fromArray(argstr.split("\\s")).remove(_ == "") + var args = List.fromArray(argstr split "\\s").remove(_ == "") if (args.length == 0) NestUI.usage() @@ -100,7 +108,7 @@ class ConsoleRunner extends DirectRunner with RunnerUtils { case "--show-diff" => fileManager.showDiff = true case "--show-log" => fileManager.showLog = true case "--failed" => fileManager.failed = true - case "--version" => //todo: printVersion + case "--version" => printVersion; return case "--ansi" => NestUI.initialize(NestUI.MANY) case "--timeout" => readTimeout = true case s: String if readTimeout => diff --git a/src/partest/scala/tools/partest/nest/FileManager.scala b/src/partest/scala/tools/partest/nest/FileManager.scala index 740982ac0a..625173b767 100644 --- a/src/partest/scala/tools/partest/nest/FileManager.scala +++ b/src/partest/scala/tools/partest/nest/FileManager.scala @@ -39,7 +39,7 @@ trait FileManager { val args = Array(f1.getCanonicalPath(), f2.getCanonicalPath()) DiffPrint.doDiff(args, diffWriter) res = diffWriter.toString - if (res.startsWith("No")) + if (res startsWith "No") res = "" } catch { case e: IOException => @@ -48,7 +48,6 @@ trait FileManager { res } - var JAVACMD: String var JAVAC_CMD: String @@ -56,6 +55,8 @@ trait FileManager { var LATEST_LIB: String var LIB_DIR: String = "" + val TESTROOT: String + var showDiff = false var showLog = false var failed = false diff --git a/src/partest/scala/tools/partest/nest/NestUI.scala b/src/partest/scala/tools/partest/nest/NestUI.scala index ecddd8d946..4dcebf8a41 100644 --- a/src/partest/scala/tools/partest/nest/NestUI.scala +++ b/src/partest/scala/tools/partest/nest/NestUI.scala @@ -1,4 +1,5 @@ /* NEST (New Scala Test) + * Copyright 2007-2009 LAMP/EPFL * @author Philipp Haller */ @@ -10,6 +11,9 @@ import java.io.PrintWriter object NestUI { + val versionString = + System.getProperty("partest.version", "version 0.9.2") + val NONE = 0 val SOME = 1 val MANY = 2 @@ -91,12 +95,11 @@ object NestUI { println(" --srcpath set (relative) path to test source files") println(" ex.: --srcpath pending") println - println("version 0.9.2") + println(versionString) println("maintained by Philipp Haller (EPFL)") exit(1) } - var _verbose = false def verbose(msg: String) { diff --git a/src/partest/scala/tools/partest/nest/RunnerUtils.scala b/src/partest/scala/tools/partest/nest/RunnerUtils.scala index 2cfee0aaf1..12d0fcd217 100644 --- a/src/partest/scala/tools/partest/nest/RunnerUtils.scala +++ b/src/partest/scala/tools/partest/nest/RunnerUtils.scala @@ -1,3 +1,9 @@ +/* NEST (New Scala Test) + * Copyright 2007-2009 LAMP/EPFL + * @author Philipp Haller + */ + +// $Id$ package scala.tools.partest.nest diff --git a/src/partest/scala/tools/partest/nest/Worker.scala b/src/partest/scala/tools/partest/nest/Worker.scala index 80fd3e0eba..b1e83d6808 100644 --- a/src/partest/scala/tools/partest/nest/Worker.scala +++ b/src/partest/scala/tools/partest/nest/Worker.scala @@ -1,4 +1,5 @@ /* NEST (New Scala Test) + * Copyright 2007-2009 LAMP/EPFL * @author Philipp Haller */ @@ -328,7 +329,7 @@ class Worker(val fileManager: FileManager) extends Actor { * @param kind The test kind (pos, neg, run, etc.) * @param files The list of test files */ - def runTests(kind: String, files: List[File], topcont: (Int, Int) => Unit): Unit = { + def runTests(kind: String, files: List[File], topcont: (Int, Int) => Unit) { val compileMgr = new CompileManager(fileManager) var errors = 0 var succeeded = true -- cgit v1.2.3