diff options
author | Paul Phillips <paulp@improving.org> | 2010-02-07 00:13:55 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-02-07 00:13:55 +0000 |
commit | 8d4f65fb24c6f0278e46ea58ab6d97f277903acc (patch) | |
tree | f4b811cc1681838bca4c670f5d30447596622fd7 /src/partest | |
parent | 982baae07693ff1a566b4d90e47be60291342e82 (diff) | |
download | scala-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.scala | 3 | ||||
-rw-r--r-- | src/partest/scala/tools/partest/nest/TestFile.scala | 87 |
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 } } |