Skip to content
This repository was archived by the owner on Sep 8, 2022. It is now read-only.

Parse -Dpartest.scalac_opts in SBT runner #64

Merged
merged 1 commit into from
Jun 8, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions src/main/scala/scala/tools/partest/nest/Runner.scala
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ class Runner(val testFile: File, val suiteRunner: SuiteRunner) {
// use lines in block so labeled? Default to sorry, Charlie.
def retainOn(expr: String) = {
val f = expr.trim
val allArgs = suiteRunner.scalacExtraArgs ++ PartestDefaults.scalacOpts.split(' ')
val allArgs = suiteRunner.scalacExtraArgs ++ suiteRunner.scalacOpts.split(' ')
def flagWasSet(f: String) = allArgs contains f
val (invert, token) =
if (f startsWith "!") (true, f drop 1) else (false, f)
Expand Down Expand Up @@ -756,7 +756,8 @@ class SuiteRunner(
val javaCmdPath: String = PartestDefaults.javaCmd,
val javacCmdPath: String = PartestDefaults.javacCmd,
val scalacExtraArgs: Seq[String] = Seq.empty,
val javaOpts: String = PartestDefaults.javaOpts) {
val javaOpts: String = PartestDefaults.javaOpts,
val scalacOpts: String = PartestDefaults.scalacOpts) {

import PartestDefaults.{ numThreads, waitTime }

Expand All @@ -774,7 +775,7 @@ class SuiteRunner(
s"""|Partest version: ${Properties.versionNumberString}
|Compiler under test: ${relativize(fileManager.compilerUnderTest.getAbsolutePath)}
|Scala version is: $versionMsg
|Scalac options are: ${(scalacExtraArgs ++ PartestDefaults.scalacOpts.split(' ')).mkString(" ")}
|Scalac options are: ${(scalacExtraArgs ++ scalacOpts.split(' ')).mkString(" ")}
|Compilation Path: ${relativize(joinPaths(fileManager.testClassPath))}
|Java binaries in: $vmBin
|Java runtime is: $vmName
Expand Down
16 changes: 14 additions & 2 deletions src/main/scala/scala/tools/partest/nest/SBTRunner.scala
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,19 @@ class SBTRunner(partestFingerprint: Fingerprint, eventHandler: EventHandler, log
printSummary = false
partestCmd = "partest"

val defs = {
val Def = "-D([^=]*)=(.*)".r
args.collect { case Def(k, v) => (k, v) }
}

val javaOpts = {
val l = args.filter(_.startsWith("-Dpartest.java_opts=")).map(_.substring(20))
val l = defs.collect { case ("partest.java_opts", v) => v }
if(l.isEmpty) PartestDefaults.javaOpts
else l.mkString(" ")
}

val scalacOpts = {
val l = defs.collect { case ("partest.scalac_opts", v) => v }
if(l.isEmpty) PartestDefaults.javaOpts
else l.mkString(" ")
}
Expand All @@ -35,7 +46,8 @@ class SBTRunner(partestFingerprint: Fingerprint, eventHandler: EventHandler, log
javaCmdPath = Option(javaCmd).map(_.getAbsolutePath) getOrElse PartestDefaults.javaCmd,
javacCmdPath = Option(javacCmd).map(_.getAbsolutePath) getOrElse PartestDefaults.javacCmd,
scalacExtraArgs = scalacArgs,
javaOpts = javaOpts) {
javaOpts = javaOpts,
scalacOpts = scalacOpts) {

override def onFinishTest(testFile: File, result: TestState): TestState = {
eventHandler.handle(new Event {
Expand Down