diff --git a/dependencies.txt b/dependencies.txt index 2ab2429d8..e9489012b 100644 --- a/dependencies.txt +++ b/dependencies.txt @@ -98,6 +98,7 @@ elastic4s: cloc-plugin, jackson-module-scala, scala, scala-xml, scalacheck, scal slick: cloc-plugin, sbt-testng, scala, scala-collection-compat, scala-xml, scalacheck, scalatest, scalatest-3-0 sttp-model: cloc-plugin, kind-projector, scala, scala-collection-compat, scala-xml, scalatest, silencer, wartremover grizzled: cloc-plugin, scala, scala-collection-compat, scala-xml, scalacheck, scalatest, scalatest-3-0, wartremover +scalatest-tests: cloc-plugin, scala, scala-parser-combinators, scala-xml, scalatest, scalatestplus-junit, scalatestplus-testng scalatex: acyclic, cloc-plugin, fastparse-scalameta, portable-scala-reflect, scala, scala-xml, scalatags, sourcecode, utest classutil: cloc-plugin, grizzled, scala, scala-collection-compat, scala-xml, scalacheck, scalatest, scalatest-3-0, wartremover scalapb: cloc-plugin, fastparse, portable-scala-reflect, scala, scala-xml, scalacheck, scalatest, scalatest-3-0, sourcecode, utest diff --git a/proj/scalatest.conf b/proj/scalatest.conf index d8df4974a..5003df64c 100644 --- a/proj/scalatest.conf +++ b/proj/scalatest.conf @@ -1,21 +1,52 @@ -// https://github.com/scalatest/scalatest.git#3.2.x-new +// https://github.com/cheeseng/scalatest.git#fix-generated-tests-2007 # was scalatest, 3.2.x-new -// We don't attempt to compile or run the tests at all. (We used to; -// see version control history. On 3.0 we compiled and ran them; -// on 3.1 we just compiled them.) - -// The tests involve a lot of code generation and even figuring out -// how to run them on 3.2 seems complicated. Perhaps I'll get some -// guidance at https://github.com/scalatest/scalatest/issues/1851 -// and/or https://github.com/scalatest/scalatest/issues/1852 on how -// this can be easily done. - -// In the meantime, the fact that ScalaTest is used in so many downstream -// projects should mean that it's getting a good workout. +// using fork, pending merge of https://github.com/scalatest/scalatest/pull/1853 vars.proj.scalatest: ${vars.base} { name: "scalatest" - uri: "https://github.com/scalatest/scalatest.git#f3d5f9d66631dc49b2218c8edd039840788bd915" + uri: "https://github.com/cheeseng/scalatest.git#960d94f08ba5124990165d2b81d93d380a94f42d" extra.projects: ["scalatest", "scalactic", "scalatestFunSuite"] } + +// this is almost 1M lines of code, but it needn't be green (or be compiled at all) +// for dependent projects to proceed, so let's keep it separate + +vars.proj.scalatest-tests: ${vars.base} { + name: "scalatest-tests" + uri: "https://github.com/cheeseng/scalatest.git#960d94f08ba5124990165d2b81d93d380a94f42d" + + extra.exclude: [ + // we already built these above + "scalatest", "scalactic", "scalacticMacro", "scalatestCompatible", "scalatestFunSuite", "scalatestCore" + "scalatestMatchersCore", "scalatestShouldMatchers", "scalatestMustMatchers", "scalatestDiagrams" + "scalatestFeatureSpec", "scalatestRefSpec", "scalatestFunSpec", "scalatestFreeSpec", "scalatestPropSpec", + "scalatestFlatSpec", "scalatestWordSpec" + // JVM only please + "*JS", "*Native", "*Dotty" + // out of scope + "root", "examples" + ] + // needs extra heap to even compile + extra.options: ["-Xmx4000m"] + + // dependencies are on prelease versions with different artifact names, so we must + // override to the released artifact names + deps.inject: [ + "org.scalatestplus#testng-6-7" + "org.scalatestplus#junit-4-12" + ] + extra.commands: ${vars.default-commands} [ + "removeDependency org.scalatestplus scalatestplus-testng" + "removeDependency org.scalatestplus scalatestplus-junit" + """set libraryDependencies in ThisBuild += "org.scalatestplus" %% "testng-6-7" % "0" % Test""" + """set libraryDependencies in ThisBuild += "org.scalatestplus" %% "junit-4-12" % "0" % Test""" + // not investigated + """set scalatestTest / Test / unmanagedSources / excludeFilter := HiddenFileFilter || "GeneratorSpec.scala" || "FrameworkSuite.scala" || "WaitersSpec.scala" || "TestSortingReporterSpec.scala" || "JavaFuturesSpec.scala" || "ParallelTestExecutionSpec.scala" || "TimeLimitsSpec.scala" || "TestThreadsStartingCounterSpec.scala" || "SuiteSortingReporterSpec.scala" || "CommonGeneratorsSpec.scala" || "PropCheckerAssertingSpec.scala" || "ConductorMethodsSuite.scala"""" + """set scalacticTest / Test / unmanagedSources / excludeFilter := HiddenFileFilter || "NonEmptyArraySpec.scala"""" + """set genRegularTests4 / Test / managedSources ~= (_.filterNot(_.getName == "FrameworkSuite.scala").filterNot(_.getName == "GeneratorSpec.scala").filterNot(_.getName == "CommonGeneratorsSpec.scala").filterNot(_.getName == "ParallelTestExecutionSpec.scala").filterNot(_.getName == "DispatchReporterSpec.scala").filterNot(_.getName == "TestThreadsStartingCounterSpec.scala").filterNot(_.getName == "EventuallySpec.scala"))""" + ] + // too many tests rely on Symbol#toString being 'foo + // reenable after 2.13.3 comes out and upstream adapts + extra.test-tasks: ["compile"] +} diff --git a/projs.conf b/projs.conf index e5ca582a9..abd1ee813 100644 --- a/projs.conf +++ b/projs.conf @@ -178,6 +178,7 @@ build += { ${vars.proj.scalastyle} ${vars.proj.scalatags} ${vars.proj.scalatest-3-0} + ${vars.proj.scalatest-tests} ${vars.proj.scalatestplus-junit} ${vars.proj.scalatestplus-mockito} ${vars.proj.scalatestplus-scalacheck}