summaryrefslogtreecommitdiff
path: root/src/partest
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-02-07 00:13:55 +0000
committerPaul Phillips <paulp@improving.org>2010-02-07 00:13:55 +0000
commit8d4f65fb24c6f0278e46ea58ab6d97f277903acc (patch)
treef4b811cc1681838bca4c670f5d30447596622fd7 /src/partest
parent982baae07693ff1a566b4d90e47be60291342e82 (diff)
downloadscala-8d4f65fb24c6f0278e46ea58ab6d97f277903acc.tar.gz
scala-8d4f65fb24c6f0278e46ea58ab6d97f277903acc.tar.bz2
scala-8d4f65fb24c6f0278e46ea58ab6d97f277903acc.zip
Some code duplication removal as I inch us towa...
Some code duplication removal as I inch us toward consistent classpath handling. No review.
Diffstat (limited to 'src/partest')
-rw-r--r--src/partest/scala/tools/partest/nest/CompileManager.scala3
-rw-r--r--src/partest/scala/tools/partest/nest/TestFile.scala87
2 files changed, 22 insertions, 68 deletions
diff --git a/src/partest/scala/tools/partest/nest/CompileManager.scala b/src/partest/scala/tools/partest/nest/CompileManager.scala
index b67653d900..e9d9d65390 100644
--- a/src/partest/scala/tools/partest/nest/CompileManager.scala
+++ b/src/partest/scala/tools/partest/nest/CompileManager.scala
@@ -113,8 +113,7 @@ class DirectCompiler(val fileManager: FileManager) extends SimpleCompiler {
out match {
case Some(outDir) =>
command.settings.outdir.value = outDir.getAbsolutePath
- command.settings.classpath.value = command.settings.classpath.value+
- File.pathSeparator+outDir.getAbsolutePath
+ command.settings appendToClasspath outDir.getAbsolutePath
case None =>
// do nothing
}
diff --git a/src/partest/scala/tools/partest/nest/TestFile.scala b/src/partest/scala/tools/partest/nest/TestFile.scala
index 5a62beb48d..a7656a3c12 100644
--- a/src/partest/scala/tools/partest/nest/TestFile.scala
+++ b/src/partest/scala/tools/partest/nest/TestFile.scala
@@ -10,23 +10,24 @@ package nest
import java.io.{File, BufferedReader, FileReader}
import scala.tools.nsc.Settings
+import scala.tools.nsc.io.{ Path, Directory }
+
+abstract class TestFile(kind: String) {
+ def file: File
+ def fileManager: FileManager
+ def createOutDir: Boolean
-class TestFile(kind: String, val file: File, val fileManager: FileManager, createOutDir: Boolean) {
val dir = file.getParentFile
val dirpath = dir.getAbsolutePath
val fileBase: String = basename(file.getName)
+ def objDir = fileBase + "-" + kind + ".obj"
// @mutates settings
protected def baseSettings(settings: Settings) {
- settings.classpath.value = settings.classpath.value+
- File.pathSeparator+dirpath
+ settings appendToClasspath dirpath
+
if (createOutDir)
- settings.outdir.value = {
- val outDir = new File(dir, fileBase + "-" + kind + ".obj")
- if (!outDir.exists)
- outDir.mkdir()
- outDir.toString
- }
+ settings.outdir.value = (Path(dir) / objDir).createDirectory(true).path
// add additional flags found in 'testname.flags'
val flagsFile = new File(dir, fileBase + ".flags")
@@ -40,6 +41,7 @@ class TestFile(kind: String, val file: File, val fileManager: FileManager, creat
def defineSettings(settings: Settings) {
baseSettings(settings)
+ settings appendToClasspath fileManager.CLASSPATH
}
private def basename(name: String): String = {
@@ -50,68 +52,21 @@ class TestFile(kind: String, val file: File, val fileManager: FileManager, creat
override def toString(): String = kind+" "+file
}
-case class PosTestFile(override val file: File, override val fileManager: FileManager, createOutDir: Boolean) extends TestFile("pos", file, fileManager, createOutDir) {
- override def defineSettings(settings: Settings) {
- baseSettings(settings)
- settings.classpath.value = settings.classpath.value+
- File.pathSeparator+fileManager.CLASSPATH
- }
-}
-
-case class NegTestFile(override val file: File, override val fileManager: FileManager, createOutDir: Boolean) extends TestFile("neg", file, fileManager, createOutDir) {
- override def defineSettings(settings: Settings) {
- baseSettings(settings)
- settings.classpath.value = settings.classpath.value+
- File.pathSeparator+fileManager.CLASSPATH
- }
-}
-
-case class RunTestFile(override val file: File, override val fileManager: FileManager, createOutDir: Boolean) extends TestFile("run", file, fileManager, createOutDir) {
+case class PosTestFile(file: File, fileManager: FileManager, createOutDir: Boolean) extends TestFile("pos")
+case class NegTestFile(file: File, fileManager: FileManager, createOutDir: Boolean) extends TestFile("neg")
+case class RunTestFile(file: File, fileManager: FileManager, createOutDir: Boolean) extends TestFile("run")
+case class BuildManagerTestFile(file: File, fileManager: FileManager, createOutDir: Boolean) extends TestFile("bm")
+case class ScalaCheckTestFile(file: File, fileManager: FileManager, createOutDir: Boolean) extends TestFile("scalacheck")
+case class JvmTestFile(file: File, fileManager: FileManager, createOutDir: Boolean) extends TestFile("jvm")
+case class ShootoutTestFile(file: File, fileManager: FileManager, createOutDir: Boolean) extends TestFile("shootout") {
override def defineSettings(settings: Settings) {
- baseSettings(settings)
- settings.classpath.value = settings.classpath.value+
- File.pathSeparator+fileManager.CLASSPATH
- }
-}
-
-case class BuildManagerTestFile(override val file: File, override val fileManager: FileManager, createOutDir: Boolean) extends TestFile("bm", file, fileManager, createOutDir) {
- override def defineSettings(settings: Settings) {
- baseSettings(settings)
- settings.classpath.value = settings.classpath.value+
- File.pathSeparator+fileManager.CLASSPATH
- }
-}
-
-case class ScalaCheckTestFile(override val file: File, override val fileManager: FileManager, createOutDir: Boolean) extends TestFile("scalacheck", file, fileManager, createOutDir) {
- override def defineSettings(settings: Settings) {
- baseSettings(settings)
- settings.classpath.value = settings.classpath.value+
- File.pathSeparator+fileManager.CLASSPATH
- }
-}
-
-case class JvmTestFile(override val file: File, override val fileManager: FileManager, createOutDir: Boolean) extends TestFile("jvm", file, fileManager, createOutDir) {
- override def defineSettings(settings: Settings) {
- baseSettings(settings)
- settings.classpath.value = settings.classpath.value+
- File.pathSeparator+fileManager.CLASSPATH
- }
-}
-
-case class ShootoutTestFile(override val file: File, override val fileManager: FileManager, createOutDir: Boolean) extends TestFile("shootout", file, fileManager, createOutDir) {
- override def defineSettings(settings: Settings) {
- baseSettings(settings)
- settings.classpath.value = settings.classpath.value+
- File.pathSeparator+fileManager.CLASSPATH
+ super.defineSettings(settings)
settings.outdir.value = file.getParent
}
}
-
-case class ScalapTestFile(override val file: File, override val fileManager: FileManager, createOutDir: Boolean) extends TestFile("scalap", file, fileManager, createOutDir) {
+case class ScalapTestFile(file: File, fileManager: FileManager, createOutDir: Boolean) extends TestFile("scalap") {
override def defineSettings(settings: Settings) {
- baseSettings(settings)
- settings.classpath.value = settings.classpath.value+
- File.pathSeparator+fileManager.CLASSPATH
+ super.defineSettings(settings)
settings.outdir.value = file.getParent
}
}