summaryrefslogtreecommitdiff
path: root/src/partest
diff options
context:
space:
mode:
authormichelou <michelou@epfl.ch>2009-03-10 11:39:04 +0000
committermichelou <michelou@epfl.ch>2009-03-10 11:39:04 +0000
commit40f8fa94026d482f8318481bb64ae0245a39acbc (patch)
treef5f6cd4423ee49f9c77f5222cb6ae4de62fbc461 /src/partest
parent5e2dd3850dd6da531b4e9ba7075081aae65a1502 (diff)
downloadscala-40f8fa94026d482f8318481bb64ae0245a39acbc.tar.gz
scala-40f8fa94026d482f8318481bb64ae0245a39acbc.tar.bz2
scala-40f8fa94026d482f8318481bb64ae0245a39acbc.zip
removed deprecated warning, updated svn props, ...
removed deprecated warning, updated svn props, cleaned up code
Diffstat (limited to 'src/partest')
-rw-r--r--src/partest/scala/tools/partest/PartestTask.scala147
-rw-r--r--src/partest/scala/tools/partest/nest/AntRunner.scala9
-rw-r--r--src/partest/scala/tools/partest/nest/CompileManager.scala23
-rw-r--r--src/partest/scala/tools/partest/nest/ConsoleRunner.scala12
-rw-r--r--src/partest/scala/tools/partest/nest/FileManager.scala5
-rw-r--r--src/partest/scala/tools/partest/nest/NestUI.scala7
-rw-r--r--src/partest/scala/tools/partest/nest/RunnerUtils.scala6
-rw-r--r--src/partest/scala/tools/partest/nest/Worker.scala3
8 files changed, 114 insertions, 98 deletions
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