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

Commit 026af33

Browse files
committed
Merge pull request #64 from szeiger/wip/scalac_opts
Parse `-Dpartest.scalac_opts` in SBT runner
2 parents 8be7e3b + 52977fd commit 026af33

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

src/main/scala/scala/tools/partest/nest/Runner.scala

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ class Runner(val testFile: File, val suiteRunner: SuiteRunner) {
255255
// use lines in block so labeled? Default to sorry, Charlie.
256256
def retainOn(expr: String) = {
257257
val f = expr.trim
258-
val allArgs = suiteRunner.scalacExtraArgs ++ PartestDefaults.scalacOpts.split(' ')
258+
val allArgs = suiteRunner.scalacExtraArgs ++ suiteRunner.scalacOpts.split(' ')
259259
def flagWasSet(f: String) = allArgs contains f
260260
val (invert, token) =
261261
if (f startsWith "!") (true, f drop 1) else (false, f)
@@ -763,7 +763,8 @@ class SuiteRunner(
763763
val javaCmdPath: String = PartestDefaults.javaCmd,
764764
val javacCmdPath: String = PartestDefaults.javacCmd,
765765
val scalacExtraArgs: Seq[String] = Seq.empty,
766-
val javaOpts: String = PartestDefaults.javaOpts) {
766+
val javaOpts: String = PartestDefaults.javaOpts,
767+
val scalacOpts: String = PartestDefaults.scalacOpts) {
767768

768769
import PartestDefaults.{ numThreads, waitTime }
769770

@@ -781,7 +782,7 @@ class SuiteRunner(
781782
s"""|Partest version: ${Properties.versionNumberString}
782783
|Compiler under test: ${relativize(fileManager.compilerUnderTest.getAbsolutePath)}
783784
|Scala version is: $versionMsg
784-
|Scalac options are: ${(scalacExtraArgs ++ PartestDefaults.scalacOpts.split(' ')).mkString(" ")}
785+
|Scalac options are: ${(scalacExtraArgs ++ scalacOpts.split(' ')).mkString(" ")}
785786
|Compilation Path: ${relativize(joinPaths(fileManager.testClassPath))}
786787
|Java binaries in: $vmBin
787788
|Java runtime is: $vmName

src/main/scala/scala/tools/partest/nest/SBTRunner.scala

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,19 @@ class SBTRunner(partestFingerprint: Fingerprint, eventHandler: EventHandler, log
2121
printSummary = false
2222
partestCmd = "partest"
2323

24+
val defs = {
25+
val Def = "-D([^=]*)=(.*)".r
26+
args.collect { case Def(k, v) => (k, v) }
27+
}
28+
2429
val javaOpts = {
25-
val l = args.filter(_.startsWith("-Dpartest.java_opts=")).map(_.substring(20))
30+
val l = defs.collect { case ("partest.java_opts", v) => v }
31+
if(l.isEmpty) PartestDefaults.javaOpts
32+
else l.mkString(" ")
33+
}
34+
35+
val scalacOpts = {
36+
val l = defs.collect { case ("partest.scalac_opts", v) => v }
2637
if(l.isEmpty) PartestDefaults.javaOpts
2738
else l.mkString(" ")
2839
}
@@ -35,7 +46,8 @@ class SBTRunner(partestFingerprint: Fingerprint, eventHandler: EventHandler, log
3546
javaCmdPath = Option(javaCmd).map(_.getAbsolutePath) getOrElse PartestDefaults.javaCmd,
3647
javacCmdPath = Option(javacCmd).map(_.getAbsolutePath) getOrElse PartestDefaults.javacCmd,
3748
scalacExtraArgs = scalacArgs,
38-
javaOpts = javaOpts) {
49+
javaOpts = javaOpts,
50+
scalacOpts = scalacOpts) {
3951

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

0 commit comments

Comments
 (0)