Merge pull request #4703 from eed3si9n/wip/scalatest

Fixes layer 4 missing scala-reflect
This commit is contained in:
eugene yokota 2019-05-20 14:26:42 -04:00 committed by GitHub
commit ecce47e5b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 27 additions and 15 deletions

View File

@ -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

View File

@ -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
)

View File

@ -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

View File

@ -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$