diff options
author | Josh Suereth <Joshua.Suereth@gmail.com> | 2012-08-13 14:03:38 -0700 |
---|---|---|
committer | Josh Suereth <Joshua.Suereth@gmail.com> | 2012-08-13 14:03:38 -0700 |
commit | 96afad8e9ae3872bd9f787f1b1da4dea56b10682 (patch) | |
tree | 474f79bb912a4fb9f2f036e5c8233e0195296f4f | |
parent | 07f942971aefcd6829415c56022af8226f931772 (diff) | |
parent | f07501e6f975aa578112327daf68d47b40fc542f (diff) | |
download | scala-96afad8e9ae3872bd9f787f1b1da4dea56b10682.tar.gz scala-96afad8e9ae3872bd9f787f1b1da4dea56b10682.tar.bz2 scala-96afad8e9ae3872bd9f787f1b1da4dea56b10682.zip |
Merge pull request #1102 from phaller/partest-local-flags
Support per-group flags files in partest
-rw-r--r-- | src/partest/scala/tools/partest/nest/CompileManager.scala | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/partest/scala/tools/partest/nest/CompileManager.scala b/src/partest/scala/tools/partest/nest/CompileManager.scala index 604e53e64c..0f2806214f 100644 --- a/src/partest/scala/tools/partest/nest/CompileManager.scala +++ b/src/partest/scala/tools/partest/nest/CompileManager.scala @@ -9,6 +9,7 @@ package scala.tools.partest package nest import scala.tools.nsc.{ Global, Settings, CompilerCommand, FatalError, io } +import scala.tools.nsc.io.{ File => SFile } import scala.tools.nsc.interactive.RangePositions import scala.tools.nsc.reporters.{ Reporter, ConsoleReporter } import scala.tools.nsc.util.{ ClassPath, FakePos } @@ -94,7 +95,17 @@ class DirectCompiler(val fileManager: FileManager) extends SimpleCompiler { val logFile = basename(log.getName) val flagsFileName = "%s.flags" format (logFile.substring(0, logFile.lastIndexOf("-"))) val argString = (io.File(log).parent / flagsFileName) ifFile (x => updatePluginPath(x.slurp())) getOrElse "" - val allOpts = fileManager.SCALAC_OPTS.toList ::: argString.split(' ').toList.filter(_.length > 0) + + // slurp local flags (e.g., "A_1.flags") + val fstFile = SFile(files(0)) + def isInGroup(num: Int) = fstFile.stripExtension endsWith ("_" + num) + val inGroup = (1 to 9) flatMap (group => if (isInGroup(group)) List(group) else List()) + val localFlagsList = if (inGroup.nonEmpty) { + val localArgString = (fstFile.parent / (fstFile.stripExtension + ".flags")) ifFile (x => updatePluginPath(x.slurp())) getOrElse "" + localArgString.split(' ').toList.filter(_.length > 0) + } else List() + + val allOpts = fileManager.SCALAC_OPTS.toList ::: argString.split(' ').toList.filter(_.length > 0) ::: localFlagsList val args = allOpts.toList NestUI.verbose("scalac options: "+allOpts) |