Skip to content

Commit f32e81d

Browse files
committed
Some additional simplification of AbstractRunner initialization
1 parent 4add0ea commit f32e81d

File tree

4 files changed

+18
-33
lines changed

4 files changed

+18
-33
lines changed

src/partest/scala/tools/partest/nest/AbstractRunner.scala

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,11 @@ import java.util.concurrent.Executors
1818
import java.util.concurrent.TimeUnit
1919
import java.util.concurrent.TimeUnit.NANOSECONDS
2020

21-
abstract class AbstractRunner {
21+
class AbstractRunner(val config: RunnerSpec.Config, protected final val testSourcePath: String, val fileManager: FileManager) {
2222

23-
val config: RunnerSpec.Config
24-
val fileManager: FileManager
25-
protected val testSourcePath: String
26-
27-
lazy val nestUI: NestUI = new NestUI(
23+
// lazy because colorEnabled is overridden in SBTRunner
24+
// TODO: integrate NestUI into AbstractRunner
25+
private lazy val nestUI: NestUI = new NestUI(
2826
verbose = config.optVerbose,
2927
debug = config.optDebug || propOrFalse("partest.debug"),
3028
terse = config.optTerse,

src/partest/scala/tools/partest/nest/ConsoleRunner.scala

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
package scala.tools.partest
77
package nest
88

9-
class ConsoleRunner(val config: RunnerSpec.Config) extends AbstractRunner {
10-
val testSourcePath = config.optSourcePath getOrElse PartestDefaults.sourcePath
11-
val fileManager = new FileManager(ClassPath split PathResolver.Environment.javaUserClassPath map (Path(_))) // the script sets up our classpath for us via ant
12-
}
13-
149
object ConsoleRunner {
1510
def main(args: Array[String]): Unit = {
16-
val r = new ConsoleRunner(RunnerSpec.forArgs(args))
11+
val config = RunnerSpec.forArgs(args)
12+
val r = new AbstractRunner(
13+
config,
14+
config.optSourcePath getOrElse PartestDefaults.sourcePath,
15+
new FileManager(ClassPath split PathResolver.Environment.javaUserClassPath map (Path(_))) // the script sets up our classpath for us via ant
16+
)
1717
// So we can ctrl-C a test run and still hear all
1818
// the buffered failure info.
1919
scala.sys addShutdownHook r.issueSummaryReport()

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

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -753,21 +753,7 @@ class Runner(val testFile: File, val suiteRunner: AbstractRunner, val nestUI: Ne
753753
/** Loads `library.properties` from the jar. */
754754
object Properties extends scala.util.PropertiesTrait {
755755
protected def propCategory = "partest"
756-
protected def pickJarBasedOn = classOf[SuiteRunner]
757-
}
758-
759-
/** Used by SBT- and ConsoleRunner for running a set of tests. */
760-
class SuiteRunner(
761-
val config: RunnerSpec.Config,
762-
val testSourcePath: String, // relative path, like "files", or "pending"
763-
val fileManager: FileManager,
764-
val nestUI: NestUI,
765-
val javaCmdPath: String = PartestDefaults.javaCmd,
766-
val javacCmdPath: String = PartestDefaults.javacCmd,
767-
val scalacExtraArgs: Seq[String] = Seq.empty,
768-
val javaOpts: String = PartestDefaults.javaOpts,
769-
val scalacOpts: String = PartestDefaults.scalacOpts) {
770-
756+
protected def pickJarBasedOn = classOf[AbstractRunner]
771757
}
772758

773759
case class TimeoutException(duration: Duration) extends RuntimeException

src/partest/scala/tools/partest/sbt/SBTRunner.scala

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,16 @@ import _root_.sbt.testing._
1414

1515
import scala.tools.partest.TestState._
1616
import scala.tools.partest._
17-
import scala.tools.partest.nest.{AbstractRunner, FileManager, RunnerSpec, SuiteRunner}
17+
import scala.tools.partest.nest.{AbstractRunner, FileManager, RunnerSpec}
1818

19-
class SBTRunner(val config: RunnerSpec.Config,
19+
class SBTRunner(config: RunnerSpec.Config,
2020
partestFingerprint: Fingerprint, eventHandler: EventHandler, loggers: Array[Logger],
2121
srcDir: String, testClassLoader: URLClassLoader, javaCmd: File, javacCmd: File,
22-
scalacArgs: Array[String], args: Array[String]) extends AbstractRunner {
22+
scalacArgs: Array[String], args: Array[String]) extends AbstractRunner(
23+
config,
24+
config.optSourcePath orElse Option(srcDir) getOrElse PartestDefaults.sourcePath,
25+
new FileManager(testClassLoader = testClassLoader)
26+
) {
2327

2428
// no summary, SBT will do that for us
2529
override protected val printSummary = false
@@ -58,9 +62,6 @@ class SBTRunner(val config: RunnerSpec.Config,
5862
override val javacCmdPath = Option(javacCmd).map(_.getAbsolutePath) getOrElse PartestDefaults.javacCmd
5963
override val scalacExtraArgs = scalacArgs.toIndexedSeq
6064

61-
val testSourcePath: String = config.optSourcePath orElse Option(srcDir) getOrElse PartestDefaults.sourcePath
62-
val fileManager = new FileManager(testClassLoader = testClassLoader)
63-
6465
override def onFinishTest(testFile: File, result: TestState, durationMs: Long): TestState = {
6566
synchronized {
6667
eventHandler.handle(new Event {

0 commit comments

Comments
 (0)