From 6f17cbe265ff37c5b031365d520b47eb62ce91fc Mon Sep 17 00:00:00 2001 From: Anton Sviridov Date: Wed, 16 Aug 2023 15:15:35 +0100 Subject: [PATCH] Update sbt-sourcegraph and re-enable SBT build tool tests (#636) --- build.sbt | 14 +++++++--- project/plugins.sbt | 2 +- .../test/scala/tests/BaseBuildToolSuite.scala | 12 +++++++-- .../test/scala/tests/SbtBuildToolSuite.scala | 26 ++++++++----------- 4 files changed, 33 insertions(+), 21 deletions(-) diff --git a/build.sbt b/build.sbt index 4b2a8645..afe96cf7 100644 --- a/build.sbt +++ b/build.sbt @@ -509,7 +509,10 @@ lazy val buildTools = project Map( "SCIP_JAVA_CLI" -> ((cli / pack).value / "bin" / "scip-java").toString ), - Test / fork := true + Test / fork := true, + // Our CI set up is a couple of measly vCPUs so parallelising tests there makes + // everything worse + Test / testForkedParallel := !sys.env.contains("CI") ) .dependsOn(agent, unit) @@ -564,11 +567,16 @@ lazy val javaOnlySettings = List[Def.Setting[_]]( crossPaths := false ) -lazy val testSettings = List( +val testSettings = List( (publish / skip) := true, autoScalaLibrary := true, testFrameworks := List(TestFrameworks.MUnit), - testOptions ++= List(Tests.Argument(TestFrameworks.MUnit, "-b")), + testOptions ++= { + if (!(Test / testForkedParallel).value) + List(Tests.Argument(TestFrameworks.MUnit, "-b")) + else + Nil + }, libraryDependencies ++= List( "org.scalameta" %% "munit" % "0.7.29", diff --git a/project/plugins.sbt b/project/plugins.sbt index 061f38aa..972113ed 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -6,7 +6,7 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.6") addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.2.24") addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.10.1") addSbtPlugin("com.thesamet" % "sbt-protoc" % "1.0.6") -addSbtPlugin("com.sourcegraph" % "sbt-sourcegraph" % "0.4.0") +addSbtPlugin("com.sourcegraph" % "sbt-sourcegraph" % "0.4.2") addSbtPlugin("com.lightbend.sbt" % "sbt-java-formatter" % "0.6.1") addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.3") addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.15.0") diff --git a/tests/buildTools/src/test/scala/tests/BaseBuildToolSuite.scala b/tests/buildTools/src/test/scala/tests/BaseBuildToolSuite.scala index 80fe64a9..d4401fbd 100644 --- a/tests/buildTools/src/test/scala/tests/BaseBuildToolSuite.scala +++ b/tests/buildTools/src/test/scala/tests/BaseBuildToolSuite.scala @@ -21,6 +21,7 @@ import os.Shellable object Java8Only extends munit.Tag("Java8Only") abstract class BaseBuildToolSuite extends MopedSuite(ScipJava.app) { + self => override def environmentVariables: Map[String, String] = sys.env def tags = List.empty[Tag] @@ -49,8 +50,15 @@ abstract class BaseBuildToolSuite extends MopedSuite(ScipJava.app) { // NOTE(olafur): workaround for https://github.com/scalameta/moped/issues/18 override val temporaryDirectory: DirectoryFixture = new DirectoryFixture { - private val path = BuildInfo.temporaryDirectory.toPath - override def apply(): Path = path + private val path = BuildInfo + .temporaryDirectory + .toPath + .resolve(self.getClass().getSimpleName()) + + override def apply(): Path = { + Files.createDirectories(path) + path + } override def beforeEach(context: BeforeEach): Unit = { DeleteVisitor.deleteRecursively(path) } diff --git a/tests/buildTools/src/test/scala/tests/SbtBuildToolSuite.scala b/tests/buildTools/src/test/scala/tests/SbtBuildToolSuite.scala index 3df2fd64..9eea1f6f 100644 --- a/tests/buildTools/src/test/scala/tests/SbtBuildToolSuite.scala +++ b/tests/buildTools/src/test/scala/tests/SbtBuildToolSuite.scala @@ -1,17 +1,12 @@ package tests -import munit.IgnoreSuite - -// Ignored because the sbt-sourcegraph plugin adds the -build-tool:sbt flag, which -// is yet not supported by any stable release of scip-java. We can un-ignore this -// test suite after the next release. -@IgnoreSuite -class SbtBuildToolSuite extends BaseBuildToolSuite { - List("1.5.2", "0.13.17").foreach { version => +abstract class SbtBuildToolSuite(sbtVersion: String) + extends BaseBuildToolSuite { + List("2.11.9", "2.12.18", "2.13.11", "3.3.0").foreach { scalaVersion => checkBuild( - s"basic-$version", + s"basic-sbt=$sbtVersion-scala=$scalaVersion", s"""|/build.sbt - |scalaVersion := "2.11.9" + |scalaVersion := "$scalaVersion" |libraryDependencies += "junit" % "junit" % "4.13.2" |/project/build.properties |sbt.version=1.5.2 @@ -25,16 +20,17 @@ class SbtBuildToolSuite extends BaseBuildToolSuite { |class ExampleScala() |/src/test/java/example/ExampleJavaSuite.java |package example; - |public class ExampleSuite {} - |/src/test/scala/example/ExampleScalaSuite.java + |public class ExampleJavaSuite {} + |/src/test/scala/example/ExampleaSuite.scala |package example |class ExampleSuite() {} |""".stripMargin, expectedSemanticdbFiles = 4, - expectedPackages = - """|maven:junit:junit:4.13.1 - |""".stripMargin + targetRoot = Some("target") ) } } + +class Sbt_1_BuildToolSuite extends SbtBuildToolSuite("1.5.2") +class Sbt_013_BuildToolSuite extends SbtBuildToolSuite("0.13.17")