summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Suereth <Joshua.Suereth@gmail.com>2012-08-13 14:03:38 -0700
committerJosh Suereth <Joshua.Suereth@gmail.com>2012-08-13 14:03:38 -0700
commit96afad8e9ae3872bd9f787f1b1da4dea56b10682 (patch)
tree474f79bb912a4fb9f2f036e5c8233e0195296f4f
parent07f942971aefcd6829415c56022af8226f931772 (diff)
parentf07501e6f975aa578112327daf68d47b40fc542f (diff)
downloadscala-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.scala13
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)