mirror of https://github.com/sbt/sbt.git
Merge pull request #4703 from eed3si9n/wip/scalatest
Fixes layer 4 missing scala-reflect
This commit is contained in:
commit
ecce47e5b7
|
|
@ -146,8 +146,9 @@ private[sbt] object ClassLoaders {
|
|||
val allTestDependencies = if (layerTestDependencies) allDependenciesSet else Set.empty[File]
|
||||
val allRuntimeDependencies = (if (layerDependencies) rawRuntimeDependencies else Nil).toSet
|
||||
|
||||
val scalaLibrarySet = Set(si.libraryJar)
|
||||
val scalaLibraryLayer =
|
||||
globalCache.get((List(si.libraryJar), interfaceLoader, resources, tmp))
|
||||
globalCache.get((scalaLibrarySet.toList, interfaceLoader, resources, tmp))
|
||||
// layer 2
|
||||
val runtimeDependencySet = allDependenciesSet intersect allRuntimeDependencies
|
||||
val runtimeDependencies = rawRuntimeDependencies.filter(runtimeDependencySet)
|
||||
|
|
@ -163,7 +164,7 @@ private[sbt] object ClassLoaders {
|
|||
|
||||
// layer 4
|
||||
val dynamicClasspath =
|
||||
fullCP.filterNot(testDependencySet ++ runtimeDependencies ++ si.allJars)
|
||||
fullCP.filterNot(testDependencySet ++ runtimeDependencies ++ scalaLibrarySet)
|
||||
if (dynamicClasspath.nonEmpty)
|
||||
new LayeredClassLoader(dynamicClasspath, testLayer, resources, tmp)
|
||||
else testLayer
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
val test = (project in file(".")).settings(
|
||||
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.4" % "test"
|
||||
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.7" % Test
|
||||
)
|
||||
|
|
@ -1,5 +1,19 @@
|
|||
> test
|
||||
|
||||
$ copy-file changes/ScalatestTest.scala src/test/scala/sbt/ScalatestTest.scala
|
||||
> set Test / classLoaderLayeringStrategy := ClassLoaderLayeringStrategy.ShareRuntimeDependenciesLayerWithTestDependencies
|
||||
|
||||
-> test
|
||||
> test
|
||||
|
||||
> set Test / classLoaderLayeringStrategy := ClassLoaderLayeringStrategy.Flat
|
||||
|
||||
> test
|
||||
|
||||
> set Test / classLoaderLayeringStrategy := ClassLoaderLayeringStrategy.ScalaLibrary
|
||||
|
||||
> test
|
||||
|
||||
> set Test / classLoaderLayeringStrategy := ClassLoaderLayeringStrategy.TestDependencies
|
||||
|
||||
$ copy-file changes/bad.scala src/test/scala/sbt/ScalatestTest.scala
|
||||
|
||||
-> test
|
||||
|
|
|
|||
|
|
@ -181,16 +181,13 @@ final class ScriptedTests(
|
|||
import RemoteSbtCreatorKind._
|
||||
val (group, name) = testName
|
||||
s"$group/$name" match {
|
||||
case "actions/add-alias" => LauncherBased // sbt/Package$
|
||||
case "actions/cross-multiproject" => LauncherBased // tbd
|
||||
case "actions/external-doc" => LauncherBased // sbt/Package$
|
||||
case "actions/input-task" => LauncherBased // sbt/Package$
|
||||
case "actions/input-task-dyn" => LauncherBased // sbt/Package$
|
||||
case "classloader-cache/akka-actor-system" => LauncherBased // sbt/Package$
|
||||
case "classloader-cache/jni" => LauncherBased // sbt/Package$
|
||||
case "classloader-cache/library-mismatch" => LauncherBased // sbt/Package$
|
||||
case "classloader-cache/runtime-layers" => LauncherBased // sbt/Package$
|
||||
case "classloader-cache/package-private" => LauncherBased // sbt/Package$
|
||||
case "actions/add-alias" => LauncherBased // sbt/Package$
|
||||
case "actions/cross-multiproject" => LauncherBased // tbd
|
||||
case "actions/external-doc" => LauncherBased // sbt/Package$
|
||||
case "actions/input-task" => LauncherBased // sbt/Package$
|
||||
case "actions/input-task-dyn" => LauncherBased // sbt/Package$
|
||||
case gn if gn.startsWith("classloader-cache/") =>
|
||||
LauncherBased // This should be tested using launcher
|
||||
case "compiler-project/dotty-compiler-plugin" => LauncherBased // sbt/Package$
|
||||
case "compiler-project/run-test" => LauncherBased // sbt/Package$
|
||||
case "compiler-project/src-dep-plugin" => LauncherBased // sbt/Package$
|
||||
|
|
|
|||
Loading…
Reference in New Issue