Skip to content

Commit 5d1f01e

Browse files
authored
Merge pull request #3931 from Gedochao/maintenance/refactor-unit-tests
Misc unit test fixes
2 parents 8defad8 + 98cae31 commit 5d1f01e

35 files changed

+356
-413
lines changed

build.mill.scala

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -303,9 +303,9 @@ trait BuildMacros extends ScalaCliCrossSbtModule
303303
else super.compileIvyDeps() ++ Agg(Deps.scalaReflect(crossScalaVersion))
304304
}
305305

306-
object test extends ScalaCliTests {
306+
object test extends ScalaCliTests with ScalaCliScalafixModule {
307307
override def scalacOptions: T[Seq[String]] = Task {
308-
super.scalacOptions() ++ asyncScalacOptions(scalaVersion())
308+
super.scalacOptions() ++ Seq("-deprecation")
309309
}
310310

311311
def testNegativeCompilation(): Command[Unit] = Task.Command(exclusive = true) {
@@ -669,7 +669,8 @@ trait Options extends ScalaCliCrossSbtModule with ScalaCliPublishModule with Has
669669
override def repositoriesTask: Task[Seq[Repository]] =
670670
Task.Anon(super.repositoriesTask() ++ deps.customRepositories)
671671

672-
object test extends ScalaCliTests {
672+
object test extends ScalaCliTests with ScalaCliScalafixModule {
673+
override def scalacOptions = super.scalacOptions() ++ Seq("-deprecation")
673674
// uncomment below to debug tests in attach mode on 5005 port
674675
// def forkArgs = Task {
675676
// super.forkArgs() ++ Seq("-agentlib:jdwp=transport=dt_socket,server=n,address=localhost:5005,suspend=y")
@@ -716,8 +717,9 @@ trait Build extends ScalaCliCrossSbtModule
716717
override def repositoriesTask: Task[Seq[Repository]] =
717718
Task.Anon(super.repositoriesTask() ++ deps.customRepositories)
718719

719-
object test extends ScalaCliTests {
720-
override def ivyDeps: T[Loose.Agg[Dep]] = super.ivyDeps() ++ Agg(
720+
object test extends ScalaCliTests with ScalaCliScalafixModule {
721+
override def scalacOptions: T[Seq[String]] = super.scalacOptions() ++ Seq("-deprecation")
722+
override def ivyDeps: T[Loose.Agg[Dep]] = super.ivyDeps() ++ Agg(
721723
Deps.pprint,
722724
Deps.slf4jNop
723725
)

modules/build-macros/src/test/scala/scala/build/CPSTest.scala

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

3-
import EitherCps._
3+
import scala.build.EitherCps.*
44

55
class CPSTest extends munit.FunSuite {
66

77
val failed1: Either[Int, String] = Left(1)
88
val ok: Either[Int, String] = Right("OK")
99

10-
def checkResult(expected: Either[Int, String])(res: => Either[Int, String]) =
10+
def checkResult(expected: Either[Int, String])(res: => Either[Int, String]): Unit =
1111
assertEquals(expected, res)
1212

1313
test("Basic CPS test") {

modules/build/src/test/scala/scala/build/options/publish/VcsParseTest.scala

Lines changed: 39 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ package scala.build.options.publish
33
import scala.build.Positioned
44
import scala.build.errors.{BuildException, MalformedInputError}
55

6-
import munit.Assertions.assertEquals
7-
86
class VcsParseTest extends munit.FunSuite {
97
test("valid GitHub") {
108
val actual = Vcs.parse(Positioned.none("github:VirtusLab/scala-cli"))
@@ -18,24 +16,33 @@ class VcsParseTest extends munit.FunSuite {
1816
}
1917

2018
test("invalid GitHub: missing /") {
21-
val actual = Vcs.parse(Positioned.none("github:scala-cli"))
22-
val expected =
19+
val actual: Either[BuildException, Vcs] = Vcs.parse(Positioned.none("github:scala-cli"))
20+
val expected =
2321
Left(new MalformedInputError("github-vcs", "github:scala-cli", "github:org/project", Nil))
24-
25-
assert(actual.isInstanceOf[Left[BuildException, Vcs]])
22+
assert {
23+
actual match {
24+
case Left(_: BuildException) => true
25+
case _ => sys.error("incorrect type")
26+
}
27+
}
2628
assertEquals(expected.toString, actual.toString)
2729
}
2830

2931
test("invalid GitHub: too many /") {
30-
val actual = Vcs.parse(Positioned.none("github:github.com/VirtusLab/scala-cli"))
32+
val actual: Either[BuildException, Vcs] =
33+
Vcs.parse(Positioned.none("github:github.com/VirtusLab/scala-cli"))
3134
val expected = Left(new MalformedInputError(
3235
"github-vcs",
3336
"github:github.com/VirtusLab/scala-cli",
3437
"github:org/project",
3538
Nil
3639
))
37-
38-
assert(actual.isInstanceOf[Left[BuildException, Vcs]])
40+
assert {
41+
actual match {
42+
case Left(_: BuildException) => true
43+
case _ => sys.error("incorrect type")
44+
}
45+
}
3946
assertEquals(expected.toString, actual.toString)
4047
}
4148

@@ -53,7 +60,7 @@ class VcsParseTest extends munit.FunSuite {
5360
}
5461

5562
test("invalid generic: missing |") {
56-
val actual = Vcs.parse(Positioned.none(
63+
val actual: Either[BuildException, Vcs] = Vcs.parse(Positioned.none(
5764
"https://github.com/VirtusLab/scala-cli|scm:git:github.com/VirtusLab/scala-cli.git"
5865
))
5966
val expected = Left(new MalformedInputError(
@@ -63,29 +70,44 @@ class VcsParseTest extends munit.FunSuite {
6370
Nil
6471
))
6572

66-
assert(actual.isInstanceOf[Left[BuildException, Vcs]])
73+
assert {
74+
actual match {
75+
case Left(_: BuildException) => true
76+
case _ => sys.error("incorrect type")
77+
}
78+
}
6779
assertEquals(expected.toString, actual.toString)
6880
}
6981

7082
test("invalid generic: extra |") {
71-
val actual = Vcs.parse(Positioned.none("a|b|c|d"))
72-
val expected =
83+
val actual: Either[BuildException, Vcs] = Vcs.parse(Positioned.none("a|b|c|d"))
84+
val expected =
7385
Left(new MalformedInputError("vcs", "a|b|c|d", "url|connection|developer-connection", Nil))
7486

75-
assert(actual.isInstanceOf[Left[BuildException, Vcs]])
87+
assert {
88+
actual match {
89+
case Left(_: BuildException) => true
90+
case _ => sys.error("incorrect type")
91+
}
92+
}
7693
assertEquals(expected.toString, actual.toString)
7794
}
7895

7996
test("invalid generic: gibberish") {
80-
val actual = Vcs.parse(Positioned.none("sfrgt pagdhn"))
81-
val expected = Left(new MalformedInputError(
97+
val actual: Either[BuildException, Vcs] = Vcs.parse(Positioned.none("sfrgt pagdhn"))
98+
val expected = Left(new MalformedInputError(
8299
"vcs",
83100
"sfrgt pagdhn",
84101
"url|connection|developer-connection",
85102
Nil
86103
))
87104

88-
assert(actual.isInstanceOf[Left[BuildException, Vcs]])
105+
assert {
106+
actual match {
107+
case Left(_: BuildException) => true
108+
case _ => sys.error("incorrect type")
109+
}
110+
}
89111
assertEquals(expected.toString, actual.toString)
90112
}
91113
}

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

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,25 @@
11
package scala.build.tests
22

33
import com.eed3si9n.expecty.Expecty.expect
4+
import coursier.version.Version
45

5-
import scala.build.options.{BuildOptions, InternalOptions, SuppressWarningOptions}
66
import scala.build.Ops.*
7-
import scala.build.{BuildThreads, Directories, LocalRepo}
8-
import scala.build.actionable.ActionablePreprocessor
9-
import scala.build.actionable.ActionableDiagnostic.*
107
import scala.build.Position.File
11-
import coursier.core.Version
12-
13-
import scala.build.errors.{BuildException, CompositeBuildException}
8+
import scala.build.actionable.ActionableDiagnostic.*
9+
import scala.build.actionable.ActionablePreprocessor
10+
import scala.build.options.{BuildOptions, InternalOptions, SuppressWarningOptions}
11+
import scala.build.{BuildThreads, Directories, LocalRepo}
1412

1513
class ActionableDiagnosticTests extends TestUtil.ScalaCliBuildSuite {
1614

17-
val extraRepoTmpDir = os.temp.dir(prefix = "scala-cli-tests-actionable-diagnostic-")
18-
val directories = Directories.under(extraRepoTmpDir)
19-
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(
2018
internal = InternalOptions(
2119
localRepository = LocalRepo.localRepo(directories.localRepoDir, TestLogger())
2220
)
2321
)
24-
val buildThreads = BuildThreads.create()
22+
val buildThreads: BuildThreads = BuildThreads.create()
2523

2624
def path2url(p: os.Path): String = p.toIO.toURI.toURL.toString
2725

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

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

33
import com.eed3si9n.expecty.Expecty.expect
4-
import coursier.cache.CacheLogger
5-
import org.scalajs.logging.{NullLogger, Logger as ScalaJsLogger}
64

75
import java.util.concurrent.TimeUnit
6+
87
import scala.build.Ops.*
9-
import scala.build.{Build, BuildThreads, Directories, GeneratedSource, LocalRepo}
10-
import scala.build.options.{BuildOptions, InternalOptions, Scope}
118
import scala.build.bsp.{
129
BspServer,
1310
ScalaScriptBuildServer,
@@ -16,20 +13,20 @@ import scala.build.bsp.{
1613
WrappedSourcesParams,
1714
WrappedSourcesResult
1815
}
16+
import scala.build.options.{BuildOptions, InternalOptions, Scope}
17+
import scala.build.{Build, BuildThreads, Directories, GeneratedSource, LocalRepo}
1918
import scala.collection.mutable.ArrayBuffer
2019
import scala.jdk.CollectionConverters.*
21-
import scala.build.bsp.{WrappedSourcesItem, WrappedSourcesResult}
22-
import scala.build.internal.ClassCodeWrapper
2320

2421
class BspServerTests extends TestUtil.ScalaCliBuildSuite {
25-
val extraRepoTmpDir = os.temp.dir(prefix = "scala-cli-tests-bsp-server-")
26-
val directories = Directories.under(extraRepoTmpDir)
27-
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(
2825
internal = InternalOptions(
2926
localRepository = LocalRepo.localRepo(directories.localRepoDir, TestLogger())
3027
)
3128
)
32-
val buildThreads = BuildThreads.create()
29+
val buildThreads: BuildThreads = BuildThreads.create()
3330

3431
def getScriptBuildServer(
3532
generatedSources: Seq[GeneratedSource],

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

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

33
import com.eed3si9n.expecty.Expecty.assert as expect
4-
import coursier.{Repositories, Repository}
4+
import coursier.Repositories
55
import coursier.cache.FileCache
6-
import coursier.core.Version
76
import coursier.maven.MavenRepository
7+
import coursier.version.Version
88
import dependency.ScalaParameters
99

1010
import scala.build.Ops.*
1111
import scala.build.errors.{
1212
InvalidBinaryScalaVersionError,
1313
NoValidScalaVersionFoundError,
14+
ScalaVersionError,
1415
UnsupportedScalaVersionError
1516
}
1617
import scala.build.internal.Constants.*
17-
import scala.build.internal.Regexes.scala2NightlyRegex
18-
import scala.build.options.{
19-
BuildOptions,
20-
BuildRequirements,
21-
ClassPathOptions,
22-
InternalOptions,
23-
MaybeScalaVersion,
24-
ScalaOptions,
25-
ScalaVersionUtil,
26-
ScalacOpt,
27-
ShadowingSeq
28-
}
29-
import scala.build.{Build, BuildThreads, Directories, LocalRepo, Positioned, RepositoryUtils}
18+
import scala.build.internal.Regexes.{scala2NightlyRegex, scala3LtsRegex}
19+
import scala.build.options.*
3020
import scala.build.tests.util.BloopServer
21+
import scala.build.{Build, BuildThreads, Directories, LocalRepo, Positioned, RepositoryUtils}
3122
import scala.concurrent.duration.DurationInt
32-
import scala.build.internal.Regexes.scala3LtsRegex
33-
import scala.build.errors.ScalaVersionError
3423

3524
class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
3625
override def munitFlakyOK: Boolean = TestUtil.isCI
37-
38-
val extraRepoTmpDir = os.temp.dir(prefix = "scala-cli-tests-extra-repo-")
39-
val directories = Directories.under(extraRepoTmpDir)
40-
val buildThreads = BuildThreads.create()
41-
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(
4230
internal = InternalOptions(
4331
localRepository = LocalRepo.localRepo(directories.localRepoDir, TestLogger()),
4432
keepDiagnostics = true
@@ -64,7 +52,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
6452
scalaVersion = Some(MaybeScalaVersion("3.nightly"))
6553
)
6654
)
67-
val scalaParams = options.scalaParams.orThrow.getOrElse(???)
55+
val scalaParams = options.scalaParams.orThrow.getOrElse(sys.error("should not happen"))
6856
assert(
6957
scalaParams.scalaVersion.startsWith("3") && scalaParams.scalaVersion.endsWith("-NIGHTLY"),
7058
"-S 3.nightly argument does not lead to scala3 nightly build option"
@@ -76,7 +64,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
7664
scalaVersion = Some(MaybeScalaVersion("3.1.nightly"))
7765
)
7866
)
79-
val scalaParams = options.scalaParams.orThrow.getOrElse(???)
67+
val scalaParams = options.scalaParams.orThrow.getOrElse(sys.error("should not happen"))
8068
expect(
8169
scalaParams.scalaVersion.startsWith("3.1.") && scalaParams.scalaVersion.endsWith("-NIGHTLY"),
8270
"-S 3.1.nightly argument does not lead to scala 3.1. nightly build option"
@@ -181,7 +169,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
181169
scalaVersion = Some(MaybeScalaVersion("3.1.2-RC1"))
182170
)
183171
)
184-
val scalaParams = options.scalaParams.orThrow.getOrElse(???)
172+
val scalaParams = options.scalaParams.orThrow.getOrElse(sys.error("should not happen"))
185173
assert(
186174
scalaParams.scalaVersion == "3.1.2-RC1",
187175
"-S 3.1.2-RC1 argument does not lead to 3.1.2-RC1 build option"
@@ -224,7 +212,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
224212
scalaVersion = Some(MaybeScalaVersion("2.nightly"))
225213
)
226214
)
227-
val scalaParams = options.scalaParams.orThrow.getOrElse(???)
215+
val scalaParams = options.scalaParams.orThrow.getOrElse(sys.error("should not happen"))
228216
assert(
229217
scala2NightlyRegex.unapplySeq(scalaParams.scalaVersion).isDefined,
230218
"-S 2.nightly argument does not lead to scala2 nightly build option"
@@ -237,7 +225,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
237225
scalaVersion = Some(MaybeScalaVersion("2.13.nightly"))
238226
)
239227
)
240-
val scalaParams = options.scalaParams.orThrow.getOrElse(???)
228+
val scalaParams = options.scalaParams.orThrow.getOrElse(sys.error("should not happen"))
241229
assert(
242230
scala2NightlyRegex.unapplySeq(scalaParams.scalaVersion).isDefined,
243231
"-S 2.13.nightly argument does not lead to scala2 nightly build option"
@@ -250,7 +238,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
250238
scalaVersion = Some(MaybeScalaVersion("3.lts"))
251239
)
252240
)
253-
val scalaParams = options.scalaParams.orThrow.getOrElse(???)
241+
val scalaParams = options.scalaParams.orThrow.getOrElse(sys.error("should not happen"))
254242
assert(
255243
scala3LtsRegex.unapplySeq(scalaParams.scalaVersion).isDefined,
256244
"-S 3.lts argument does not lead to scala3 LTS"
@@ -263,7 +251,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
263251
scalaVersion = Some(MaybeScalaVersion("2.12.nightly"))
264252
)
265253
)
266-
val scalaParams = options.scalaParams.orThrow.getOrElse(???)
254+
val scalaParams = options.scalaParams.orThrow.getOrElse(sys.error("should not happen"))
267255
assert(
268256
scala2NightlyRegex.unapplySeq(scalaParams.scalaVersion).isDefined,
269257
"-S 2.12.nightly argument does not lead to scala2 nightly build option"
@@ -276,7 +264,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
276264
scalaVersion = Some(MaybeScalaVersion("2.13.9-bin-4505094"))
277265
)
278266
)
279-
val scalaParams = options.scalaParams.orThrow.getOrElse(???)
267+
val scalaParams = options.scalaParams.orThrow.getOrElse(sys.error("should not happen"))
280268
assert(
281269
scalaParams.scalaVersion == "2.13.9-bin-4505094",
282270
"-S 2.13.9-bin-4505094 argument does not lead to 2.13.9-bin-4505094 scala version in build option"
@@ -292,7 +280,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
292280
)
293281
}
294282

295-
val expectedScalaVersions = Seq(
283+
val expectedScalaVersions: Seq[(Option[String], String)] = Seq(
296284
None -> defaultScalaVersion,
297285
Some("2.13.2") -> "2.13.2",
298286
Some("3.0.1") -> "3.0.1",
@@ -311,7 +299,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
311299
cache = Some(FileCache().withTtl(0.seconds))
312300
)
313301
)
314-
val scalaParams = options.scalaParams.orThrow.getOrElse(???)
302+
val scalaParams = options.scalaParams.orThrow.getOrElse(sys.error("should not happen"))
315303

316304
val expectedScalaParams = ScalaParameters(expectedScalaVersion)
317305

@@ -375,7 +363,7 @@ class BuildOptionsTests extends TestUtil.ScalaCliBuildSuite {
375363
testDescription =
376364
s"-S $prefix should choose the $expectedVersionDescription version ($expectedVersion), not necessarily the latest stable ($latestMatchingVersion) $launcherDefaultVersionDescription"
377365
} test(testDescription) {
378-
val scalaParams = options.scalaParams.orThrow.getOrElse(???)
366+
val scalaParams = options.scalaParams.orThrow.getOrElse(sys.error("should not happen"))
379367

380368
val expectedScalaParams = ScalaParameters(expectedVersion)
381369

0 commit comments

Comments
 (0)