Skip to content

Commit 15f8af8

Browse files
committed
chore: refactor build-module unit tests
1 parent 50ddcf7 commit 15f8af8

21 files changed

+164
-177
lines changed

modules/build/src/test/scala/scala/build/tests/ActionableDiagnosticTests.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@ import scala.build.{BuildThreads, Directories, LocalRepo}
1212

1313
class ActionableDiagnosticTests extends TestUtil.ScalaCliBuildSuite {
1414

15-
val extraRepoTmpDir = os.temp.dir(prefix = "scala-cli-tests-actionable-diagnostic-")
16-
val directories = Directories.under(extraRepoTmpDir)
17-
val baseOptions = BuildOptions(
15+
val extraRepoTmpDir: os.Path = os.temp.dir(prefix = "scala-cli-tests-actionable-diagnostic-")
16+
val directories: Directories = Directories.under(extraRepoTmpDir)
17+
val baseOptions = BuildOptions(
1818
internal = InternalOptions(
1919
localRepository = LocalRepo.localRepo(directories.localRepoDir, TestLogger())
2020
)
2121
)
22-
val buildThreads = BuildThreads.create()
22+
val buildThreads: BuildThreads = BuildThreads.create()
2323

2424
def path2url(p: os.Path): String = p.toIO.toURI.toURL.toString
2525

modules/build/src/test/scala/scala/build/tests/BspServerTests.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ import scala.collection.mutable.ArrayBuffer
1919
import scala.jdk.CollectionConverters.*
2020

2121
class BspServerTests extends TestUtil.ScalaCliBuildSuite {
22-
val extraRepoTmpDir = os.temp.dir(prefix = "scala-cli-tests-bsp-server-")
23-
val directories = Directories.under(extraRepoTmpDir)
24-
val baseOptions = BuildOptions(
22+
val extraRepoTmpDir: os.Path = os.temp.dir(prefix = "scala-cli-tests-bsp-server-")
23+
val directories: Directories = Directories.under(extraRepoTmpDir)
24+
val baseOptions = BuildOptions(
2525
internal = InternalOptions(
2626
localRepository = LocalRepo.localRepo(directories.localRepoDir, TestLogger())
2727
)
2828
)
29-
val buildThreads = BuildThreads.create()
29+
val buildThreads: BuildThreads = BuildThreads.create()
3030

3131
def getScriptBuildServer(
3232
generatedSources: Seq[GeneratedSource],

modules/build/src/test/scala/scala/build/tests/BuildOptionsTests.scala

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,10 @@ import scala.concurrent.duration.DurationInt
2323

2424
class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
2525
override def munitFlakyOK: Boolean = TestUtil.isCI
26-
27-
val extraRepoTmpDir = os.temp.dir(prefix = "scala-cli-tests-extra-repo-")
28-
val directories = Directories.under(extraRepoTmpDir)
29-
val buildThreads = BuildThreads.create()
30-
val baseOptions = BuildOptions(
26+
val extraRepoTmpDir: os.Path = os.temp.dir(prefix = "scala-cli-tests-extra-repo-")
27+
val directories: Directories = Directories.under(extraRepoTmpDir)
28+
val buildThreads: BuildThreads = BuildThreads.create()
29+
val baseOptions = BuildOptions(
3130
internal = InternalOptions(
3231
localRepository = LocalRepo.localRepo(directories.localRepoDir, TestLogger()),
3332
keepDiagnostics = true
@@ -53,7 +52,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
5352
scalaVersion = Some(MaybeScalaVersion("3.nightly"))
5453
)
5554
)
56-
val scalaParams = options.scalaParams.orThrow.getOrElse(???)
55+
val scalaParams = options.scalaParams.orThrow.getOrElse(sys.error("should not happen"))
5756
assert(
5857
scalaParams.scalaVersion.startsWith("3") && scalaParams.scalaVersion.endsWith("-NIGHTLY"),
5958
"-S 3.nightly argument does not lead to scala3 nightly build option"
@@ -65,7 +64,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
6564
scalaVersion = Some(MaybeScalaVersion("3.1.nightly"))
6665
)
6766
)
68-
val scalaParams = options.scalaParams.orThrow.getOrElse(???)
67+
val scalaParams = options.scalaParams.orThrow.getOrElse(sys.error("should not happen"))
6968
expect(
7069
scalaParams.scalaVersion.startsWith("3.1.") && scalaParams.scalaVersion.endsWith("-NIGHTLY"),
7170
"-S 3.1.nightly argument does not lead to scala 3.1. nightly build option"
@@ -170,7 +169,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
170169
scalaVersion = Some(MaybeScalaVersion("3.1.2-RC1"))
171170
)
172171
)
173-
val scalaParams = options.scalaParams.orThrow.getOrElse(???)
172+
val scalaParams = options.scalaParams.orThrow.getOrElse(sys.error("should not happen"))
174173
assert(
175174
scalaParams.scalaVersion == "3.1.2-RC1",
176175
"-S 3.1.2-RC1 argument does not lead to 3.1.2-RC1 build option"
@@ -213,7 +212,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
213212
scalaVersion = Some(MaybeScalaVersion("2.nightly"))
214213
)
215214
)
216-
val scalaParams = options.scalaParams.orThrow.getOrElse(???)
215+
val scalaParams = options.scalaParams.orThrow.getOrElse(sys.error("should not happen"))
217216
assert(
218217
scala2NightlyRegex.unapplySeq(scalaParams.scalaVersion).isDefined,
219218
"-S 2.nightly argument does not lead to scala2 nightly build option"
@@ -226,7 +225,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
226225
scalaVersion = Some(MaybeScalaVersion("2.13.nightly"))
227226
)
228227
)
229-
val scalaParams = options.scalaParams.orThrow.getOrElse(???)
228+
val scalaParams = options.scalaParams.orThrow.getOrElse(sys.error("should not happen"))
230229
assert(
231230
scala2NightlyRegex.unapplySeq(scalaParams.scalaVersion).isDefined,
232231
"-S 2.13.nightly argument does not lead to scala2 nightly build option"
@@ -239,7 +238,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
239238
scalaVersion = Some(MaybeScalaVersion("3.lts"))
240239
)
241240
)
242-
val scalaParams = options.scalaParams.orThrow.getOrElse(???)
241+
val scalaParams = options.scalaParams.orThrow.getOrElse(sys.error("should not happen"))
243242
assert(
244243
scala3LtsRegex.unapplySeq(scalaParams.scalaVersion).isDefined,
245244
"-S 3.lts argument does not lead to scala3 LTS"
@@ -252,7 +251,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
252251
scalaVersion = Some(MaybeScalaVersion("2.12.nightly"))
253252
)
254253
)
255-
val scalaParams = options.scalaParams.orThrow.getOrElse(???)
254+
val scalaParams = options.scalaParams.orThrow.getOrElse(sys.error("should not happen"))
256255
assert(
257256
scala2NightlyRegex.unapplySeq(scalaParams.scalaVersion).isDefined,
258257
"-S 2.12.nightly argument does not lead to scala2 nightly build option"
@@ -265,7 +264,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
265264
scalaVersion = Some(MaybeScalaVersion("2.13.9-bin-4505094"))
266265
)
267266
)
268-
val scalaParams = options.scalaParams.orThrow.getOrElse(???)
267+
val scalaParams = options.scalaParams.orThrow.getOrElse(sys.error("should not happen"))
269268
assert(
270269
scalaParams.scalaVersion == "2.13.9-bin-4505094",
271270
"-S 2.13.9-bin-4505094 argument does not lead to 2.13.9-bin-4505094 scala version in build option"
@@ -281,7 +280,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
281280
)
282281
}
283282

284-
val expectedScalaVersions = Seq(
283+
val expectedScalaVersions: Seq[(Option[String], String)] = Seq(
285284
None -> defaultScalaVersion,
286285
Some("2.13.2") -> "2.13.2",
287286
Some("3.0.1") -> "3.0.1",
@@ -300,7 +299,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
300299
cache = Some(FileCache().withTtl(0.seconds))
301300
)
302301
)
303-
val scalaParams = options.scalaParams.orThrow.getOrElse(???)
302+
val scalaParams = options.scalaParams.orThrow.getOrElse(sys.error("should not happen"))
304303

305304
val expectedScalaParams = ScalaParameters(expectedScalaVersion)
306305

@@ -364,7 +363,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
364363
testDescription =
365364
s"-S $prefix should choose the $expectedVersionDescription version ($expectedVersion), not necessarily the latest stable ($latestMatchingVersion) $launcherDefaultVersionDescription"
366365
} test(testDescription) {
367-
val scalaParams = options.scalaParams.orThrow.getOrElse(???)
366+
val scalaParams = options.scalaParams.orThrow.getOrElse(sys.error("should not happen"))
368367

369368
val expectedScalaParams = ScalaParameters(expectedVersion)
370369

modules/build/src/test/scala/scala/build/tests/BuildProjectTests.scala

Lines changed: 28 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -17,45 +17,40 @@ import scala.build.{Build, LocalRepo, Logger, Sources}
1717
class BuildProjectTests extends TestUtil.ScalaCliBuildSuite {
1818

1919
class LoggerMock extends Logger {
20-
21-
var diagnostics: List[Diagnostic] = Nil
22-
23-
override def error(message: String): Unit = ???
24-
25-
override def message(message: => String): Unit = ???
26-
27-
override def log(s: => String): Unit = ???
28-
29-
override def log(s: => String, debug: => String): Unit = ???
30-
31-
override def debug(s: => String): Unit = {}
32-
33-
override def log(diagnostics: Seq[Diagnostic]): Unit = {
20+
var diagnostics: List[Diagnostic] = Nil
21+
override def error(message: String): Unit = sys.error(message)
22+
override def message(message: => String): Unit = System.err.println(message)
23+
override def log(s: => String): Unit = System.err.println(s)
24+
override def log(s: => String, debug: => String): Unit = System.err.println(s)
25+
override def debug(s: => String): Unit = System.err.println(s)
26+
override def log(diagnostics: Seq[Diagnostic]): Unit = {
3427
this.diagnostics = this.diagnostics ++ diagnostics
3528
}
36-
37-
override def log(ex: BuildException): Unit = {}
38-
override def debug(ex: BuildException): Unit = {}
39-
40-
override def exit(ex: BuildException): Nothing = ???
41-
42-
override def coursierLogger(message: String): CacheLogger = CacheLogger.nop
43-
44-
override def bloopRifleLogger: BloopRifleLogger = BloopRifleLogger.nop
45-
override def scalaJsLogger: ScalaJsLogger = NullLogger
46-
29+
override def log(ex: BuildException): Unit = {
30+
ex.printStackTrace()
31+
System.err.println(ex.message)
32+
}
33+
override def debug(ex: BuildException): Unit = {
34+
ex.printStackTrace()
35+
System.err.println(ex.message)
36+
}
37+
override def exit(ex: BuildException): Nothing = {
38+
ex.printStackTrace()
39+
System.err.println(ex.message)
40+
sys.exit(1)
41+
}
42+
override def coursierLogger(message: String): CacheLogger = CacheLogger.nop
43+
override def bloopRifleLogger: BloopRifleLogger = BloopRifleLogger.nop
44+
override def scalaJsLogger: ScalaJsLogger = NullLogger
4745
override def scalaNativeTestLogger: scala.scalanative.build.Logger =
4846
scala.scalanative.build.Logger.nullLogger
49-
5047
override def scalaNativeCliInternalLoggerOptions: List[String] =
5148
List()
52-
53-
override def compilerOutputStream: PrintStream = ???
54-
55-
override def verbosity = ???
56-
57-
override def experimentalWarning(featureName: String, featureType: FeatureType): Unit = ???
58-
override def flushExperimentalWarnings: Unit = ???
49+
override def compilerOutputStream: PrintStream = System.out
50+
override def verbosity: Int = 0
51+
override def experimentalWarning(featureName: String, featureType: FeatureType): Unit =
52+
System.err.println(s"experimental: $featureName")
53+
override def flushExperimentalWarnings: Unit = ()
5954
}
6055

6156
test("workspace for bsp") {

modules/build/src/test/scala/scala/build/tests/BuildTests.scala

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package scala.build.tests
22

33
import bloop.config.Config.LinkerMode
4+
import bloop.rifle.BloopRifleConfig
45
import ch.epfl.scala.bsp4j
56
import com.eed3si9n.expecty.Expecty.expect
67
import com.google.gson.Gson
78
import dependency.parser.DependencyParser
89

910
import java.io.IOException
10-
1111
import scala.build.Ops.*
1212
import scala.build.errors.{
1313
DependencyFormatError,
@@ -26,13 +26,12 @@ import scala.util.Properties
2626
abstract class BuildTests(server: Boolean) extends TestUtil.ScalaCliBuildSuite {
2727
private def hasDiagnostics = server
2828

29-
val buildThreads = BuildThreads.create()
30-
def bloopConfigOpt =
31-
if (server) Some(BloopServer.bloopConfig)
32-
else None
29+
val buildThreads: BuildThreads = BuildThreads.create()
30+
def bloopConfigOpt: Option[BloopRifleConfig] =
31+
if server then Some(BloopServer.bloopConfig) else None
3332

34-
val extraRepoTmpDir = os.temp.dir(prefix = "scala-cli-tests-extra-repo-")
35-
val directories = Directories.under(extraRepoTmpDir)
33+
val extraRepoTmpDir: os.Path = os.temp.dir(prefix = "scala-cli-tests-extra-repo-")
34+
val directories: Directories = Directories.under(extraRepoTmpDir)
3635

3736
override def afterAll(): Unit = {
3837
TestInputs.tryRemoveAll(extraRepoTmpDir)
@@ -46,17 +45,17 @@ abstract class BuildTests(server: Boolean) extends TestUtil.ScalaCliBuildSuite {
4645
)
4746
)
4847

49-
def sv2 = Constants.defaultScala213Version
50-
val defaultOptions = baseOptions.copy(
48+
def sv2: String = Constants.defaultScala213Version
49+
val defaultOptions: BuildOptions = baseOptions.copy(
5150
scalaOptions = baseOptions.scalaOptions.copy(
5251
scalaVersion = Some(MaybeScalaVersion(sv2)),
5352
scalaBinaryVersion = None
5453
),
5554
scriptOptions = ScriptOptions(Some(true))
5655
)
5756

58-
def sv3 = Constants.defaultScalaVersion
59-
val defaultScala3Options = defaultOptions.copy(
57+
def sv3: String = Constants.defaultScalaVersion
58+
val defaultScala3Options: BuildOptions = defaultOptions.copy(
6059
scalaOptions = defaultOptions.scalaOptions.copy(
6160
scalaVersion = Some(MaybeScalaVersion(sv3)),
6261
scalaBinaryVersion = None
@@ -109,7 +108,7 @@ abstract class BuildTests(server: Boolean) extends TestUtil.ScalaCliBuildSuite {
109108
"simple$package.class",
110109
"simple$package.tasty"
111110
)
112-
maybeBuild.orThrow.assertNoDiagnostics
111+
maybeBuild.orThrow.assertNoDiagnostics()
113112
}
114113
}
115114

@@ -133,7 +132,7 @@ abstract class BuildTests(server: Boolean) extends TestUtil.ScalaCliBuildSuite {
133132
"other$package.class",
134133
"other$package.tasty"
135134
)
136-
maybeBuild.orThrow.assertNoDiagnostics
135+
maybeBuild.orThrow.assertNoDiagnostics()
137136
}
138137
}
139138

@@ -184,7 +183,7 @@ abstract class BuildTests(server: Boolean) extends TestUtil.ScalaCliBuildSuite {
184183
"simple.class",
185184
"META-INF/semanticdb/simple.sc.semanticdb"
186185
)
187-
maybeBuild.orThrow.assertNoDiagnostics
186+
maybeBuild.orThrow.assertNoDiagnostics()
188187

189188
val outputDir = build.outputOpt.getOrElse(sys.error("no build output???"))
190189
val semDb = os.read.bytes(outputDir / "META-INF" / "semanticdb" / "simple.sc.semanticdb")
@@ -238,7 +237,7 @@ abstract class BuildTests(server: Boolean) extends TestUtil.ScalaCliBuildSuite {
238237
"simple$package.tasty",
239238
"META-INF/semanticdb/simple.sc.semanticdb"
240239
)
241-
maybeBuild.orThrow.assertNoDiagnostics
240+
maybeBuild.orThrow.assertNoDiagnostics()
242241
val outputDir = build.outputOpt.getOrElse(sys.error("no build output???"))
243242
val tastyData = TastyData.read(os.read.bytes(outputDir / "simple$_.tasty")).orThrow
244243
val names = tastyData.names.simpleNames
@@ -263,7 +262,7 @@ abstract class BuildTests(server: Boolean) extends TestUtil.ScalaCliBuildSuite {
263262
"simple.class",
264263
"simple.sjsir"
265264
)
266-
maybeBuild.orThrow.assertNoDiagnostics
265+
maybeBuild.orThrow.assertNoDiagnostics()
267266
}
268267
}
269268

@@ -284,7 +283,7 @@ abstract class BuildTests(server: Boolean) extends TestUtil.ScalaCliBuildSuite {
284283
"simple.class",
285284
"simple.nir"
286285
)
287-
maybeBuild.orThrow.assertNoDiagnostics
286+
maybeBuild.orThrow.assertNoDiagnostics()
288287
}
289288
}
290289
if (!Properties.isWin)
@@ -307,7 +306,7 @@ abstract class BuildTests(server: Boolean) extends TestUtil.ScalaCliBuildSuite {
307306
"simple$.class",
308307
"simple$delayedInit$body.class"
309308
)
310-
maybeBuild.orThrow.assertNoDiagnostics
309+
maybeBuild.orThrow.assertNoDiagnostics()
311310
}
312311
}
313312

@@ -336,7 +335,7 @@ abstract class BuildTests(server: Boolean) extends TestUtil.ScalaCliBuildSuite {
336335
"simple2$delayedInit$body.class",
337336
"simple2.class"
338337
)
339-
maybeBuild.orThrow.assertNoDiagnostics
338+
maybeBuild.orThrow.assertNoDiagnostics()
340339
}
341340
}
342341

@@ -647,7 +646,7 @@ abstract class BuildTests(server: Boolean) extends TestUtil.ScalaCliBuildSuite {
647646
val buildOptions = defaultOptions.copy(
648647
scalaOptions = defaultOptions.scalaOptions.copy(
649648
scalacOptions = ShadowingSeq.from(
650-
cliScalacOptions.map(ScalacOpt(_)).map(Positioned.commandLine(_))
649+
cliScalacOptions.map(ScalacOpt(_)).map(Positioned.commandLine)
651650
)
652651
)
653652
)
@@ -678,7 +677,7 @@ abstract class BuildTests(server: Boolean) extends TestUtil.ScalaCliBuildSuite {
678677
val buildOptions = defaultOptions.copy(
679678
javaOptions = defaultOptions.javaOptions.copy(
680679
javaOpts = ShadowingSeq.from(
681-
cliJavaOptions.map(JavaOpt(_)).map(Positioned.commandLine(_))
680+
cliJavaOptions.map(JavaOpt(_)).map(Positioned.commandLine)
682681
)
683682
)
684683
)

modules/build/src/test/scala/scala/build/tests/DirectiveTests.scala

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package scala.build.tests
22

3+
import bloop.rifle.BloopRifleConfig
34
import com.eed3si9n.expecty.Expecty.expect
45

56
import scala.build.Ops.EitherThrowOps
@@ -21,13 +22,10 @@ import scala.build.tests.util.BloopServer
2122
import scala.build.{Build, BuildThreads, Directories, LocalRepo, Position, Positioned}
2223

2324
class DirectiveTests extends TestUtil.ScalaCliBuildSuite {
24-
25-
val buildThreads = BuildThreads.create()
26-
27-
def bloopConfigOpt = Some(BloopServer.bloopConfig)
28-
29-
val extraRepoTmpDir = os.temp.dir(prefix = "scala-cli-tests-extra-repo-")
30-
val directories = Directories.under(extraRepoTmpDir)
25+
val buildThreads: BuildThreads = BuildThreads.create()
26+
def bloopConfigOpt: Option[BloopRifleConfig] = Some(BloopServer.bloopConfig)
27+
val extraRepoTmpDir: os.Path = os.temp.dir(prefix = "scala-cli-tests-extra-repo-")
28+
val directories: Directories = Directories.under(extraRepoTmpDir)
3129

3230
override def afterAll(): Unit = {
3331
TestInputs.tryRemoveAll(extraRepoTmpDir)

0 commit comments

Comments
 (0)