summaryrefslogtreecommitdiff
path: root/src/partest
diff options
context:
space:
mode:
Diffstat (limited to 'src/partest')
-rw-r--r--src/partest/scala/tools/partest/PartestTask.scala1
-rw-r--r--src/partest/scala/tools/partest/nest/CompileManager.scala15
-rw-r--r--src/partest/scala/tools/partest/nest/TestFile.scala19
3 files changed, 23 insertions, 12 deletions
diff --git a/src/partest/scala/tools/partest/PartestTask.scala b/src/partest/scala/tools/partest/PartestTask.scala
index 551500e626..f1b3ea496d 100644
--- a/src/partest/scala/tools/partest/PartestTask.scala
+++ b/src/partest/scala/tools/partest/PartestTask.scala
@@ -14,7 +14,6 @@ package partest
import scala.actors.Actor._
import scala.util.Properties.setProp
import scala.tools.nsc.io.{ Directory, Path => SPath }
-import nsc.Settings
import nsc.util.ClassPath
import util.PathResolver
import scala.tools.ant.sabbus.CompilationPathProperty
diff --git a/src/partest/scala/tools/partest/nest/CompileManager.scala b/src/partest/scala/tools/partest/nest/CompileManager.scala
index 42e4d02934..fbf758d5a5 100644
--- a/src/partest/scala/tools/partest/nest/CompileManager.scala
+++ b/src/partest/scala/tools/partest/nest/CompileManager.scala
@@ -10,10 +10,9 @@ package nest
import scala.tools.nsc.{ Global, Settings, CompilerCommand, FatalError, io }
import scala.tools.nsc.reporters.{ Reporter, ConsoleReporter }
-import scala.tools.nsc.util.ClassPath
+import scala.tools.nsc.util.{ ClassPath, FakePos }
import scala.tools.util.PathResolver
import io.Path
-
import java.io.{ File, BufferedReader, PrintWriter, FileReader, Writer, FileWriter, StringWriter }
import File.pathSeparator
@@ -95,7 +94,13 @@ class DirectCompiler(val fileManager: FileManager) extends SimpleCompiler {
case "presentation" => PresentationTestFile.apply
}
val test: TestFile = testFileFn(files.head, fileManager)
- test.defineSettings(command.settings, out.isEmpty)
+ if (!test.defineSettings(command.settings, out.isEmpty)) {
+ testRep.error(FakePos("partest"), test.flags match {
+ case Some(flags) => "bad flags: " + flags
+ case _ => "bad settings: " + command.settings
+ })
+ }
+
val toCompile = files map (_.getPath)
try {
@@ -106,8 +111,8 @@ class DirectCompiler(val fileManager: FileManager) extends SimpleCompiler {
testRep.error(null, "fatal error: " + msg)
}
- testRep.printSummary
- testRep.writer.close
+ testRep.printSummary()
+ testRep.writer.close()
}
finally logWriter.close()
diff --git a/src/partest/scala/tools/partest/nest/TestFile.scala b/src/partest/scala/tools/partest/nest/TestFile.scala
index 9bfb4a992a..a00b94eba9 100644
--- a/src/partest/scala/tools/partest/nest/TestFile.scala
+++ b/src/partest/scala/tools/partest/nest/TestFile.scala
@@ -24,13 +24,18 @@ abstract class TestFile(kind: String) {
def setOutDirTo = objectDir
- def defineSettings(settings: Settings, setOutDir: Boolean) = {
+ def defineSettings(settings: Settings, setOutDir: Boolean): Boolean = {
settings.classpath append dir.path
if (setOutDir)
settings.outdir.value = setOutDirTo.path
- flags foreach (settings processArgumentString _)
+ // have to catch bad flags somewhere
+ flags foreach { f =>
+ if (!settings.processArgumentString(f)._1)
+ return false
+ }
settings.classpath append fileManager.CLASSPATH
+ true
}
override def toString(): String = "%s %s".format(kind, file)
@@ -49,10 +54,12 @@ case class ScalapTestFile(file: JFile, fileManager: FileManager) extends TestFil
override def setOutDirTo = file.parent
}
case class SpecializedTestFile(file: JFile, fileManager: FileManager) extends TestFile("specialized") {
- override def defineSettings(settings: Settings, setOutDir: Boolean) = {
- super.defineSettings(settings, setOutDir)
- // add the instrumented library version to classpath
- settings.classpath.value = ClassPath.join(PathSettings.srcSpecLib.toString, settings.classpath.value)
+ override def defineSettings(settings: Settings, setOutDir: Boolean): Boolean = {
+ super.defineSettings(settings, setOutDir) && {
+ // add the instrumented library version to classpath
+ settings.classpath prepend PathSettings.srcSpecLib.toString
+ true
+ }
}
}
case class PresentationTestFile(file: JFile, fileManager: FileManager) extends TestFile("presentation")