summaryrefslogtreecommitdiff
path: root/src/partest
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-02-23 00:27:39 +0000
committerPaul Phillips <paulp@improving.org>2010-02-23 00:27:39 +0000
commitdf94b3c5b831e78a056f7b0b5334b1fb8d3c3bd5 (patch)
tree6be1d68b93045d6a568ac165126d4ed8e11e3fd7 /src/partest
parent8d74992310fe60a1da32606949c96531691754e9 (diff)
downloadscala-df94b3c5b831e78a056f7b0b5334b1fb8d3c3bd5.tar.gz
scala-df94b3c5b831e78a056f7b0b5334b1fb8d3c3bd5.tar.bz2
scala-df94b3c5b831e78a056f7b0b5334b1fb8d3c3bd5.zip
Some much needed housecleaning regarding system...
Some much needed housecleaning regarding system properties. If you can possibly resist the temptation, it'd be great if people could try to go through the properties classes to get and set them, and also to set property values somewhere fixed rather than using strings directly. Review by community.
Diffstat (limited to 'src/partest')
-rw-r--r--src/partest/scala/tools/partest/PartestTask.scala3
-rw-r--r--src/partest/scala/tools/partest/nest/CompileManager.scala60
-rw-r--r--src/partest/scala/tools/partest/nest/ConsoleFileManager.scala58
-rw-r--r--src/partest/scala/tools/partest/nest/ConsoleRunner.scala10
-rw-r--r--src/partest/scala/tools/partest/nest/DirectRunner.scala13
-rw-r--r--src/partest/scala/tools/partest/nest/FileManager.scala7
-rw-r--r--src/partest/scala/tools/partest/nest/ReflectiveRunner.scala15
-rw-r--r--src/partest/scala/tools/partest/nest/RunnerUtils.scala37
-rw-r--r--src/partest/scala/tools/partest/nest/Worker.scala119
-rw-r--r--src/partest/scala/tools/partest/package.scala31
10 files changed, 179 insertions, 174 deletions
diff --git a/src/partest/scala/tools/partest/PartestTask.scala b/src/partest/scala/tools/partest/PartestTask.scala
index 45f1ebc2f1..65858d16ea 100644
--- a/src/partest/scala/tools/partest/PartestTask.scala
+++ b/src/partest/scala/tools/partest/PartestTask.scala
@@ -11,6 +11,7 @@
package scala.tools.partest
import scala.actors.Actor._
+import util.Properties.setProp
import java.io.File
import java.net.URLClassLoader
@@ -166,7 +167,7 @@ class PartestTask extends Task {
override def execute() {
if (isPartestDebug)
- System.setProperty("partest.debug", "true")
+ setProp("partest.debug", "true")
if (classpath.isEmpty)
error("Mandatory attribute 'classpath' is not set.")
diff --git a/src/partest/scala/tools/partest/nest/CompileManager.scala b/src/partest/scala/tools/partest/nest/CompileManager.scala
index 63acf654e2..517620e958 100644
--- a/src/partest/scala/tools/partest/nest/CompileManager.scala
+++ b/src/partest/scala/tools/partest/nest/CompileManager.scala
@@ -141,36 +141,36 @@ class DirectCompiler(val fileManager: FileManager) extends SimpleCompiler {
}
}
-class ReflectiveCompiler(val fileManager: ConsoleFileManager) extends SimpleCompiler {
- import fileManager.{latestCompFile, latestPartestFile}
-
- val sepUrls = Array(latestCompFile.toURI.toURL, latestPartestFile.toURI.toURL)
- //NestUI.verbose("constructing URLClassLoader from URLs "+latestCompFile+" and "+latestPartestFile)
-
- val sepLoader = new java.net.URLClassLoader(sepUrls, null)
-
- val sepCompilerClass =
- sepLoader.loadClass("scala.tools.partest.nest.DirectCompiler")
- val sepCompiler = sepCompilerClass.newInstance()
-
- // needed for reflective invocation
- val fileClass = Class.forName("java.io.File")
- val stringClass = Class.forName("java.lang.String")
- val sepCompileMethod =
- sepCompilerClass.getMethod("compile", fileClass, stringClass)
- val sepCompileMethod2 =
- sepCompilerClass.getMethod("compile", fileClass, stringClass, fileClass)
-
- /* This method throws java.lang.reflect.InvocationTargetException
- * if the compiler crashes.
- * This exception is handled in the shouldCompile and shouldFailCompile
- * methods of class CompileManager.
- */
- def compile(out: Option[File], files: List[File], kind: String, log: File): Boolean = {
- val res = sepCompileMethod2.invoke(sepCompiler, out, files, kind, log).asInstanceOf[java.lang.Boolean]
- res.booleanValue()
- }
-}
+// class ReflectiveCompiler(val fileManager: ConsoleFileManager) extends SimpleCompiler {
+// import fileManager.{latestCompFile, latestPartestFile}
+//
+// val sepUrls = Array(latestCompFile.toURI.toURL, latestPartestFile.toURI.toURL)
+// //NestUI.verbose("constructing URLClassLoader from URLs "+latestCompFile+" and "+latestPartestFile)
+//
+// val sepLoader = new java.net.URLClassLoader(sepUrls, null)
+//
+// val sepCompilerClass =
+// sepLoader.loadClass("scala.tools.partest.nest.DirectCompiler")
+// val sepCompiler = sepCompilerClass.newInstance()
+//
+// // needed for reflective invocation
+// val fileClass = Class.forName("java.io.File")
+// val stringClass = Class.forName("java.lang.String")
+// val sepCompileMethod =
+// sepCompilerClass.getMethod("compile", fileClass, stringClass)
+// val sepCompileMethod2 =
+// sepCompilerClass.getMethod("compile", fileClass, stringClass, fileClass)
+//
+// /* This method throws java.lang.reflect.InvocationTargetException
+// * if the compiler crashes.
+// * This exception is handled in the shouldCompile and shouldFailCompile
+// * methods of class CompileManager.
+// */
+// def compile(out: Option[File], files: List[File], kind: String, log: File): Boolean = {
+// val res = sepCompileMethod2.invoke(sepCompiler, out, files, kind, log).asInstanceOf[java.lang.Boolean]
+// res.booleanValue()
+// }
+// }
class CompileManager(val fileManager: FileManager) {
var compiler: SimpleCompiler = new /*ReflectiveCompiler*/ DirectCompiler(fileManager)
diff --git a/src/partest/scala/tools/partest/nest/ConsoleFileManager.scala b/src/partest/scala/tools/partest/nest/ConsoleFileManager.scala
index 258651e0ce..c5d67fb4e2 100644
--- a/src/partest/scala/tools/partest/nest/ConsoleFileManager.scala
+++ b/src/partest/scala/tools/partest/nest/ConsoleFileManager.scala
@@ -10,16 +10,27 @@ package nest
import java.io.{ File, FilenameFilter, IOException, StringWriter }
import java.net.URI
+import scala.util.Properties.{ propOrElse, scalaCmd, scalacCmd }
import scala.tools.util.PathResolver
-import scala.tools.nsc.io
+import scala.tools.nsc.{ Settings }
+import scala.tools.nsc.{ io, util }
+import util.{ ClassPath }
import io.{ Path, Directory }
import File.pathSeparator
-import PathResolver.{ propOrElse }
+import ClassPath.{ join }
+import PathResolver.{ Environment, Defaults }
+import RunnerUtils._
+
+object ConsoleFileManager {
+ def testRootPropDir = Option(propOrElse("scalatest.root", null)) map (x => Directory(x))
+}
+import ConsoleFileManager._
class ConsoleFileManager extends FileManager {
- implicit private def tempPathConversion(x: Path): File = x.jfile
+ implicit private def temporaryPath2File(x: Path): File = x.jfile
+ implicit private def temporaryFile2Path(x: File): Path = Path(x)
- var testBuild: Option[String] = Option(System.getProperty("scalatest.build"))
+ var testBuild: Option[String] = PartestDefaults.testBuild
def testBuildFile = testBuild map (testParent / _)
var testClasses: Option[String] = None
@@ -44,15 +55,15 @@ class ConsoleFileManager extends FileManager {
SCALAC_OPTS = SCALAC_OPTS+" "+moreOpts
}
- var CLASSPATH = PathResolver.Environment.javaUserClassPath
+ var CLASSPATH = PartestDefaults.classPath
+ var JAVACMD = PartestDefaults.javaCmd
+ var JAVAC_CMD = PartestDefaults.javacCmd
NestUI.verbose("CLASSPATH: "+CLASSPATH)
- var JAVACMD = propOrElse("scalatest.javacmd", "java")
- var JAVAC_CMD = propOrElse("scalatest.javac_cmd", "javac")
-
- val prefixDir = Directory.Current map (_.normalize.toDirectory) getOrElse error("user.dir property not set")
- val PREFIX = prefixDir.toAbsolute.path
+ val prefixDir = PartestDefaults.prefixDir getOrElse error("user.dir property not set")
+ val srcDirName = PartestDefaults.srcDirName
+ val PREFIX = prefixDir.toAbsolute.path
/*
if [ -d "$PREFIX/test" ]; then
@@ -64,11 +75,10 @@ else
*/
val testRootDir = {
- val testRootProp = Option(propOrElse("scalatest.root", null)) map (x => Directory(x))
def isTestDir(d: Directory) = d.name == "test" && (d / "files" isDirectory)
(
- testRootProp orElse (
+ testRootPropDir orElse (
if (isTestDir(prefixDir)) Some(prefixDir) else None // cwd is `test`
) orElse (
(prefixDir / "test") ifDirectory (x => x) // cwd is `test/..`
@@ -83,19 +93,14 @@ else
def testParent = testRootDir.parent
- var srcDirName: String = ""
+ val srcDir = (testRootDir / srcDirName).toDirectory
- val srcDir: io.Directory = {
- srcDirName = Option(System.getProperty("partest.srcdir")) getOrElse "files"
- val src = testRootDir / srcDirName
-
- if (src.isDirectory) src.toDirectory
- else {
- NestUI.failure("Source directory \"" + src.path + "\" not found")
- exit(1)
- }
+ if (!srcDir.isDirectory) {
+ NestUI.failure("Source directory \"" + srcDir.path + "\" not found")
+ exit(1)
}
+
LIB_DIR = (testParent / "lib").normalize.toAbsolute.path
CLASSPATH = {
@@ -195,13 +200,8 @@ else
LATEST_COMP = latestCompFile.getAbsolutePath
LATEST_PARTEST = latestPartestFile.getAbsolutePath
- import util.Properties.isWin
-
- val scalaCommand = if (isWin) "scala.bat" else "scala"
- val scalacCommand = if (isWin) "scalac.bat" else "scalac"
-
- SCALA = (new File(latestFile, scalaCommand)).getAbsolutePath
- SCALAC_CMD = (new File(latestFile, scalacCommand)).getAbsolutePath
+ SCALA = (latestFile / scalaCmd).toAbsolute.path
+ SCALAC_CMD = (latestFile / scalacCmd).toAbsolute.path
}
var BIN_DIR: String = ""
diff --git a/src/partest/scala/tools/partest/nest/ConsoleRunner.scala b/src/partest/scala/tools/partest/nest/ConsoleRunner.scala
index 9e582bb1cd..8542e08071 100644
--- a/src/partest/scala/tools/partest/nest/ConsoleRunner.scala
+++ b/src/partest/scala/tools/partest/nest/ConsoleRunner.scala
@@ -11,13 +11,14 @@ package nest
import java.io.{File, PrintStream, FileOutputStream, BufferedReader,
InputStreamReader, StringWriter, PrintWriter}
import utils.Properties._
-import scala.tools.nsc.Properties.versionMsg
+import RunnerUtils._
+import scala.tools.nsc.Properties.{ versionMsg, setProp }
import scala.tools.nsc.util.CommandLineParser
import scala.tools.nsc.io
import scala.tools.nsc.interpreter.returning
import io.{ Path }
-class ConsoleRunner extends DirectRunner with RunnerUtils {
+class ConsoleRunner extends DirectRunner {
case class TestSet(loc: String,
filter: Option[(String, Boolean)],
@@ -45,8 +46,7 @@ class ConsoleRunner extends DirectRunner with RunnerUtils {
var fileManager: ConsoleFileManager = _
private var testFiles: List[File] = List()
- private val errors =
- Integer.parseInt(System.getProperty("scalatest.errors", "0"))
+ private val errors = PartestDefaults.errorCount
private val testSetArgMap = testSets map (x => ("--" + x.loc) -> x) toMap
private val testSetArgs = testSets map ("--" + _.loc)
@@ -75,7 +75,7 @@ class ConsoleRunner extends DirectRunner with RunnerUtils {
return NestUI.usage()
}
- parsed get "--srcpath" foreach (x => System.setProperty("partest.srcdir", x))
+ parsed get "--srcpath" foreach (x => setProp("partest.srcdir", x))
fileManager =
if (parsed isSet "--buildpath") new ConsoleFileManager(parsed("--buildpath"))
diff --git a/src/partest/scala/tools/partest/nest/DirectRunner.scala b/src/partest/scala/tools/partest/nest/DirectRunner.scala
index 3778a927df..1dd0d5a9aa 100644
--- a/src/partest/scala/tools/partest/nest/DirectRunner.scala
+++ b/src/partest/scala/tools/partest/nest/DirectRunner.scala
@@ -11,6 +11,7 @@ package nest
import java.io.{File, PrintStream, FileOutputStream, BufferedReader,
InputStreamReader, StringWriter, PrintWriter}
import java.util.StringTokenizer
+import scala.util.Properties.{ setProp }
import scala.tools.nsc.io.Directory
import scala.actors.Actor._
@@ -20,20 +21,14 @@ trait DirectRunner {
def fileManager: FileManager
- private val numActors = Integer.parseInt(System.getProperty("scalatest.actors", "8"))
+ import PartestDefaults.numActors
if (isPartestDebug)
scala.actors.Debug.level = 3
- private val coreProp = try {
- System.getProperty("actors.corePoolSize")
- } catch {
- case ace: java.security.AccessControlException =>
- null
- }
- if (coreProp == null) {
+ if (PartestDefaults.poolSize.isEmpty) {
scala.actors.Debug.info("actors.corePoolSize not defined")
- System.setProperty("actors.corePoolSize", "16")
+ setProp("actors.corePoolSize", "16")
}
def runTestsForFiles(kindFiles: List[File], kind: String): scala.collection.immutable.Map[String, Int] = {
diff --git a/src/partest/scala/tools/partest/nest/FileManager.scala b/src/partest/scala/tools/partest/nest/FileManager.scala
index ffeba6bbe3..b8f0770f3a 100644
--- a/src/partest/scala/tools/partest/nest/FileManager.scala
+++ b/src/partest/scala/tools/partest/nest/FileManager.scala
@@ -55,10 +55,9 @@ trait FileManager {
var showLog = false
var failed = false
- var SCALAC_OPTS = System.getProperty("scalatest.scalac_opts", "-deprecation")
- var JAVA_OPTS = System.getProperty("scalatest.java_opts", "")
-
- var timeout = "1200000"
+ var SCALAC_OPTS = PartestDefaults.scalacOpts
+ var JAVA_OPTS = PartestDefaults.javaOpts
+ var timeout = PartestDefaults.timeout
def getLogFile(dir: File, fileBase: String, kind: String): LogFile =
new LogFile(dir, fileBase + "-" + kind + ".log")
diff --git a/src/partest/scala/tools/partest/nest/ReflectiveRunner.scala b/src/partest/scala/tools/partest/nest/ReflectiveRunner.scala
index 2063d51b71..b3f199a3d6 100644
--- a/src/partest/scala/tools/partest/nest/ReflectiveRunner.scala
+++ b/src/partest/scala/tools/partest/nest/ReflectiveRunner.scala
@@ -8,9 +8,12 @@
package scala.tools.partest
package nest
+import scala.tools.nsc.Properties.{ setProp, propOrEmpty }
import scala.tools.nsc.util.ClassPath
import scala.tools.nsc.io
import io.Path
+import RunnerUtils._
+import java.net.URLClassLoader
/* This class is used to load an instance of DirectRunner using
* a custom class loader.
@@ -19,14 +22,10 @@ import io.Path
* the main NestRunner can be started merely by putting its
* class on the classpath (ideally).
*/
-class ReflectiveRunner extends RunnerUtils {
+class ReflectiveRunner {
// TODO: we might also use fileManager.CLASSPATH
// to use the same classes as used by `scala` that
// was used to start the runner.
-
- import java.net.URLClassLoader
- import utils.Properties.{ sysprop, syspropset }
-
val sepRunnerClassName = "scala.tools.partest.nest.ConsoleRunner"
def main(args: String) {
@@ -65,12 +64,12 @@ class ReflectiveRunner extends RunnerUtils {
}
val newClasspath = ClassPath.join(paths: _*)
- syspropset("java.class.path", newClasspath)
- syspropset("scala.home", "")
+ setProp("java.class.path", newClasspath)
+ setProp("scala.home", "")
if (isPartestDebug)
for (prop <- List("java.class.path", "sun.boot.class.path", "java.ext.dirs"))
- println(prop + ": " + sysprop(prop))
+ println(prop + ": " + propOrEmpty(prop))
try {
val sepRunnerClass = sepLoader loadClass sepRunnerClassName
diff --git a/src/partest/scala/tools/partest/nest/RunnerUtils.scala b/src/partest/scala/tools/partest/nest/RunnerUtils.scala
index 4e41d00bf1..24445bb545 100644
--- a/src/partest/scala/tools/partest/nest/RunnerUtils.scala
+++ b/src/partest/scala/tools/partest/nest/RunnerUtils.scala
@@ -8,35 +8,22 @@
package scala.tools.partest
package nest
-trait RunnerUtils {
+object RunnerUtils {
+ def splitArgs(str: String) = str split "\\s" filterNot (_ == "") toList
- def searchPath(option: String, as: List[String]): Option[String] = {
- val Option = option
- as match {
- case Option :: r :: rs => Some(r)
- case other :: rest => searchPath(option, rest)
- case List() => None
- }
+ def searchPath(option: String, as: List[String]): Option[String] = as match {
+ case `option` :: r :: _ => Some(r)
+ case _ :: rest => searchPath(option, rest)
+ case Nil => None
}
- def searchAndRemovePath(option: String, as: List[String]): (Option[String], List[String]) = {
- val Option = option
- def search(before: List[String], after: List[String]): (Option[String], List[String]) = after match {
- case Option :: r :: rs => (Some(r), before ::: rs)
- case other :: rest => search(before ::: List(other), rest)
- case List() => (None, before)
- }
- search(List(), as)
+ def searchAndRemovePath(option: String, as: List[String]) = (as indexOf option) match {
+ case -1 => (None, as)
+ case idx => (Some(as(idx + 1)), (as take idx) ::: (as drop (idx + 2)))
}
- def searchAndRemoveOption(option: String, as: List[String]): (Boolean, List[String]) = {
- val Option = option
- def search(before: List[String], after: List[String]): (Boolean, List[String]) = after match {
- case Option :: rest => (true, before ::: rest)
- case other :: rest => search(before ::: List(other), rest)
- case List() => (false, before)
- }
- search(List(), as)
+ def searchAndRemoveOption(option: String, as: List[String]) = (as indexOf option) match {
+ case -1 => (false, as)
+ case idx => (true, (as take idx) ::: (as drop (idx + 1)))
}
-
}
diff --git a/src/partest/scala/tools/partest/nest/Worker.scala b/src/partest/scala/tools/partest/nest/Worker.scala
index 7a947b3298..4bbd34766c 100644
--- a/src/partest/scala/tools/partest/nest/Worker.scala
+++ b/src/partest/scala/tools/partest/nest/Worker.scala
@@ -12,6 +12,7 @@ import java.io._
import java.net.{URLClassLoader, URL}
import java.util.{Timer, TimerTask}
+import scala.util.Properties.osName
import scala.tools.nsc.{ ObjectRunner, Settings, CompilerCommand, Global }
import scala.tools.nsc.io.{ AbstractFile, PlainFile, Path, Directory, File => SFile }
import scala.tools.nsc.reporters.ConsoleReporter
@@ -121,48 +122,48 @@ class Worker(val fileManager: FileManager) extends Actor {
}
/* Note: not yet used/tested. */
- def execTestObjectRunner(file: File, outDir: File, logFile: File) {
- val consFM = new ConsoleFileManager
-
- val classpath: List[URL] = {
- import consFM.{ latestCompFile, latestLibFile, latestPartestFile }
- val units = (
- List(outDir, latestCompFile, latestLibFile, latestPartestFile) :::
- ((CLASSPATH split File.pathSeparatorChar).toList map (x => new File(x)))
- )
- units map (_.toURI.toURL)
- }
-
- NestUI.verbose("ObjectRunner classpath: "+classpath)
-
- try {
- // configure input/output files
- val logOut = new FileOutputStream(logFile)
- val logWriter = new PrintStream(logOut)
-
- // grab global lock
- fileManager.synchronized {
- withOutputRedirected(logWriter) {
- System.setProperty("java.library.path", logFile.getParentFile.getCanonicalFile.getAbsolutePath)
- System.setProperty("scalatest.output", outDir.getCanonicalFile.getAbsolutePath)
- System.setProperty("scalatest.lib", LATEST_LIB)
- System.setProperty("scalatest.cwd", outDir.getParent)
- ObjectRunner.run(classpath, "Test", List("jvm"))
- }
- }
-
- /*val out = new FileOutputStream(logFile, true)
- Console.withOut(new PrintStream(out)) {
- ObjectRunner.run(classpath, "Test", List("jvm"))
- }
- out.flush
- out.close*/
- } catch {
- case e: Exception =>
- NestUI.verbose(e+" ("+file.getPath+")")
- e.printStackTrace()
- }
- }
+ // def execTestObjectRunner(file: File, outDir: File, logFile: File) {
+ // val consFM = new ConsoleFileManager
+ //
+ // val classpath: List[URL] = {
+ // import consFM.{ latestCompFile, latestLibFile, latestPartestFile }
+ // val units = (
+ // List(outDir, latestCompFile, latestLibFile, latestPartestFile) :::
+ // ((CLASSPATH split File.pathSeparatorChar).toList map (x => new File(x)))
+ // )
+ // units map (_.toURI.toURL)
+ // }
+ //
+ // NestUI.verbose("ObjectRunner classpath: "+classpath)
+ //
+ // try {
+ // // configure input/output files
+ // val logOut = new FileOutputStream(logFile)
+ // val logWriter = new PrintStream(logOut)
+ //
+ // // grab global lock
+ // fileManager.synchronized {
+ // withOutputRedirected(logWriter) {
+ // System.setProperty("java.library.path", logFile.getParentFile.getCanonicalFile.getAbsolutePath)
+ // System.setProperty("scalatest.output", outDir.getCanonicalFile.getAbsolutePath)
+ // System.setProperty("scalatest.lib", LATEST_LIB)
+ // System.setProperty("scalatest.cwd", outDir.getParent)
+ // ObjectRunner.run(classpath, "Test", List("jvm"))
+ // }
+ // }
+ //
+ // /*val out = new FileOutputStream(logFile, true)
+ // Console.withOut(new PrintStream(out)) {
+ // ObjectRunner.run(classpath, "Test", List("jvm"))
+ // }
+ // out.flush
+ // out.close*/
+ // } catch {
+ // case e: Exception =>
+ // NestUI.verbose(e+" ("+file.getPath+")")
+ // e.printStackTrace()
+ // }
+ // }
def javac(outDir: File, files: List[File], output: File): Boolean = {
// compile using command-line javac compiler
@@ -412,13 +413,14 @@ class Worker(val fileManager: FileManager) extends Actor {
val dir = file.getParentFile
//TODO: detect whether we have to use Runtime.exec
- val useRuntime = true
-
- if (useRuntime)
- execTest(outDir, logFile, fileBase)
- else
- execTestObjectRunner(file, outDir, logFile)
- // NestUI.verbose(this+" finished running "+fileBase)
+ // val useRuntime = true
+ //
+ // if (useRuntime)
+ // execTest(outDir, logFile, fileBase)
+ // else
+ // execTestObjectRunner(file, outDir, logFile)
+ // // NestUI.verbose(this+" finished running "+fileBase)
+ execTest(outDir, logFile, fileBase)
diff = compareOutput(dir, fileBase, kind, logFile)
if (!diff.equals("")) {
@@ -492,10 +494,7 @@ class Worker(val fileManager: FileManager) extends Actor {
}
})
- case "run" =>
- runJvmTest(file, kind)
-
- case "jvm" =>
+ case "run" | "jvm" =>
runJvmTest(file, kind)
case "buildmanager" =>
@@ -809,12 +808,15 @@ class Worker(val fileManager: FileManager) extends Actor {
// -------- run test --------
//TODO: detect whether we have to use Runtime.exec
- val useRuntime = true
+ // val useRuntime = true
+ //
+ // if (useRuntime)
+ // execTest(outDir, logFile, fileBase)
+ // else
+ // execTestObjectRunner(file, outDir, logFile)
+
+ execTest(outDir, logFile, fileBase)
- if (useRuntime)
- execTest(outDir, logFile, fileBase)
- else
- execTestObjectRunner(file, outDir, logFile)
NestUI.verbose(this+" finished running "+fileBase)
} // successful compile
} catch { // *catch-all*
@@ -892,7 +894,6 @@ class Worker(val fileManager: FileManager) extends Actor {
}
case "script" => {
- val osName = System.getProperty("os.name", "")
// when option "--failed" is provided
// execute test only if log file is present
// (which means it failed before)
diff --git a/src/partest/scala/tools/partest/package.scala b/src/partest/scala/tools/partest/package.scala
index d814fc4fc7..9337d78ef4 100644
--- a/src/partest/scala/tools/partest/package.scala
+++ b/src/partest/scala/tools/partest/package.scala
@@ -4,9 +4,35 @@
package scala.tools
+import nsc.io.{ Directory }
+import util.{ PathResolver }
+import nsc.Properties.{ propOrElse, propOrNone, propOrEmpty }
+
package object partest {
import nest.NestUI
+ object PartestDefaults {
+ import nsc.Properties._
+ private def wrapAccessControl[T](body: => Option[T]): Option[T] =
+ try body catch { case _: java.security.AccessControlException => None }
+
+ def prefixDir = Directory.Current map (_.normalize.toDirectory)
+ def srcDirName = propOrElse("partest.srcdir", "files")
+ def classPath = PathResolver.Environment.javaUserClassPath // XXX
+
+ def javaCmd = propOrElse("scalatest.javacmd", "java")
+ def javacCmd = propOrElse("scalatest.javac_cmd", "javac")
+ def javaOpts = propOrElse("scalatest.java_opts", "")
+ def scalacOpts = propOrElse("scalatest.scalac_opts", "-deprecation")
+
+ def testBuild = propOrNone("scalatest.build")
+ def errorCount = propOrElse("scalatest.errors", "0").toInt
+ def numActors = propOrElse("scalatest.actors", "8").toInt
+ def poolSize = wrapAccessControl(propOrNone("actors.corePoolSize"))
+
+ def timeout = "1200000"
+ }
+
def vmArgString = {
import scala.tools.nsc.io.Process
@@ -24,8 +50,5 @@ package object partest {
NestUI.verbose(allPropertiesString)
}
- def isPartestDebug = {
- (System.getProperty("partest.debug") == "true") ||
- (System.getProperty("scalatest.debug") == "true")
- }
+ def isPartestDebug = List("partest.debug", "scalatest.debug") map propOrEmpty contains "true"
} \ No newline at end of file