Skip to content

Commit

Permalink
Fix various scripted tests
Browse files Browse the repository at this point in the history
  • Loading branch information
eed3si9n committed Dec 18, 2023
1 parent 0507e58 commit ff504b8
Show file tree
Hide file tree
Showing 22 changed files with 72 additions and 58 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ val checkScalaLibrary = TaskKey[Unit]("checkScalaLibrary")
checkScalaLibrary := {
val scalaLibsJars = (Compile / managedClasspath)
.value
.map(_.data.getName)
.map(_.data.name)
.filter(_.startsWith("scala-library"))
.sorted
val expectedScalaLibsJars = Seq(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ lazy val root = (project in file(".")).
settings(commonSettings: _*).
settings(
check := {
val acp = (a / Compile / externalDependencyClasspath).value.map {_.data.getName}.sorted
val acp = (a / Compile / externalDependencyClasspath).value.map {_.data.name}.sorted
if (!(acp contains "netty-3.2.0.Final.jar")) {
sys.error("netty-3.2.0.Final not found when it should be included: " + acp.toString)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,9 @@ lazy val root = (project in file(".")).
(ThisBuild / organization) := "org.example",
(ThisBuild / version) := "1.0",
check := {
val acp = (a / Compile / externalDependencyClasspath).value.map {_.data.getName}.sorted
val bcp = (b / Compile / externalDependencyClasspath).value.map {_.data.getName}.sorted
val ccp = (c / Compile / externalDependencyClasspath).value.map {_.data.getName}.sorted filterNot { _ == "demo_2.10.jar"}
val acp = (a / Compile / externalDependencyClasspath).value.map {_.data.name}.sorted
val bcp = (b / Compile / externalDependencyClasspath).value.map {_.data.name}.sorted
val ccp = (c / Compile / externalDependencyClasspath).value.map {_.data.name}.sorted filterNot { _ == "demo_2.10.jar"}
if (!(acp contains "commons-io-1.4-sources.jar")) {
sys.error("commons-io-1.4-sources not found when it should be included: " + acp.toString)
}
Expand All @@ -90,9 +90,9 @@ lazy val root = (project in file(".")).
"\n - b (plain) " + bcpWithoutSource.toString +
"\n - c (inter-project) " + ccpWithoutSource.toString)

val atestcp = (a / Test / externalDependencyClasspath).value.map {_.data.getName}.sorted filterNot { _ == "commons-io-1.4.jar"}
val btestcp = (b / Test / externalDependencyClasspath).value.map {_.data.getName}.sorted filterNot { _ == "commons-io-1.4.jar"}
val ctestcp = (c / Test / externalDependencyClasspath).value.map {_.data.getName}.sorted filterNot { _ == "demo_2.10.jar"} filterNot { _ == "commons-io-1.4.jar"}
val atestcp = (a / Test / externalDependencyClasspath).value.map {_.data.name}.sorted filterNot { _ == "commons-io-1.4.jar"}
val btestcp = (b / Test / externalDependencyClasspath).value.map {_.data.name}.sorted filterNot { _ == "commons-io-1.4.jar"}
val ctestcp = (c / Test / externalDependencyClasspath).value.map {_.data.name}.sorted filterNot { _ == "demo_2.10.jar"} filterNot { _ == "commons-io-1.4.jar"}
if (ctestcp contains "junit-4.13.1.jar") {
sys.error("junit found when it should be excluded: " + ctestcp.toString)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ val y2 = project.settings(
)

TaskKey[Unit]("check") := {
val x1cp = (x1 / Compile / externalDependencyClasspath).value.map(_.data.getName).sorted
val x1cp = (x1 / Compile / externalDependencyClasspath).value.map(_.data.name).sorted
def x1cpStr = x1cp.mkString("\n* ", "\n* ", "")

// if (!(x1cp contains "slf4j-api-1.6.6.jar"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,16 +38,16 @@ lazy val root = (project in file(".")).
version := "1.0",
updateOptions := updateOptions.value.withCachedResolution(true),
check := {
val acp = (a / Compile / externalDependencyClasspath).value.sortBy {_.data.getName}
val bcp = (b / Compile / externalDependencyClasspath).value.sortBy {_.data.getName}
if (acp exists { _.data.getName contains "commons-io" }) {
val acp = (a / Compile / externalDependencyClasspath).value.sortBy {_.data.name}
val bcp = (b / Compile / externalDependencyClasspath).value.sortBy {_.data.name}
if (acp exists { _.data.name contains "commons-io" }) {
sys.error("commons-io found when it should be excluded")
}
if (acp exists { _.data.getName contains "commons-codec" }) {
if (acp exists { _.data.name contains "commons-codec" }) {
sys.error("commons-codec found when it should be excluded")
}
// This is checking to make sure excluded graph is not getting picked up
if (!(bcp exists { _.data.getName contains "commons-io" })) {
if (!(bcp exists { _.data.name contains "commons-io" })) {
sys.error("commons-io NOT found when it should NOT be excluded")
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,33 +67,33 @@ lazy val root = (project in file(".")).
ThisBuild / version := "1.0",
check := {
// sys.error(dependencyCacheDirectory.value.toString)
val acp = (a / Compile / externalDependencyClasspath).value.sortBy {_.data.getName}
val bcp = (b / Compile / externalDependencyClasspath).value.sortBy {_.data.getName}
val ccp = (c / Compile / externalDependencyClasspath).value.sortBy {_.data.getName}
val dcp = (d / Compile / externalDependencyClasspath).value.sortBy {_.data.getName}
val acp = (a / Compile / externalDependencyClasspath).value.sortBy {_.data.name}
val bcp = (b / Compile / externalDependencyClasspath).value.sortBy {_.data.name}
val ccp = (c / Compile / externalDependencyClasspath).value.sortBy {_.data.name}
val dcp = (d / Compile / externalDependencyClasspath).value.sortBy {_.data.name}

if (!(acp exists {_.data.getName contains "spring-core-3.2.2.RELEASE"})) {
if (!(acp exists {_.data.name contains "spring-core-3.2.2.RELEASE"})) {
sys.error("spring-core-3.2.2 is not found on a")
}
if (!(bcp exists {_.data.getName contains "spring-core-3.2.2.RELEASE"})) {
if (!(bcp exists {_.data.name contains "spring-core-3.2.2.RELEASE"})) {
sys.error("spring-core-3.2.2 is not found on b")
}
if (!(ccp exists {_.data.getName contains "spring-core-3.2.2.RELEASE"})) {
if (!(ccp exists {_.data.name contains "spring-core-3.2.2.RELEASE"})) {
sys.error("spring-core-3.2.2 is not found on c")
}
if (!(dcp exists {_.data.getName contains "spring-core-3.2.2.RELEASE"})) {
if (!(dcp exists {_.data.name contains "spring-core-3.2.2.RELEASE"})) {
sys.error("spring-core-3.2.2 is not found on d\n" + dcp.toString)
}
if (!(acp exists {_.data.getName contains "spring-tx-3.1.2.RELEASE"})) {
if (!(acp exists {_.data.name contains "spring-tx-3.1.2.RELEASE"})) {
sys.error("spring-tx-3.1.2 is not found on a")
}
if (!(bcp exists {_.data.getName contains "spring-tx-3.1.2.RELEASE"})) {
if (!(bcp exists {_.data.name contains "spring-tx-3.1.2.RELEASE"})) {
sys.error("spring-tx-3.1.2 is not found on b")
}
if (!(ccp exists {_.data.getName contains "spring-tx-3.1.2.RELEASE"})) {
if (!(ccp exists {_.data.name contains "spring-tx-3.1.2.RELEASE"})) {
sys.error("spring-tx-3.1.2 is not found on c")
}
if (!(dcp exists {_.data.getName contains "spring-tx-3.1.2.RELEASE"})) {
if (!(dcp exists {_.data.name contains "spring-tx-3.1.2.RELEASE"})) {
sys.error("spring-tx-3.1.2 is not found on d")
}
if (acp == bcp) ()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ lazy val root = (project in file(".")).
updateOptions := updateOptions.value.withCachedResolution(true),
check := {
val ur = (a / update).value
val acp = (a / Compile / externalDependencyClasspath).value.map {_.data.getName}
val acp = (a / Compile / externalDependencyClasspath).value.map {_.data.name}
val atestcp0 = (a / Test / fullClasspath).value
val atestcp = (a / Test / externalDependencyClasspath).value.map {_.data.getName}
val atestcp = (a / Test / externalDependencyClasspath).value.map {_.data.name}
// This is checking to make sure interproject dependency works
if (acp exists { _ contains "scalatest" }) {
sys.error("scalatest found when it should NOT be included: " + acp.toString)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ lazy val b = project.
lazy val root = (project in file(".")).
settings(
check := {
val acp = (a / Compile / externalDependencyClasspath).value.sortBy {_.data.getName}
val bcp = (b / Compile / externalDependencyClasspath).value.sortBy {_.data.getName}
val acp = (a / Compile / externalDependencyClasspath).value.sortBy {_.data.name}
val bcp = (b / Compile / externalDependencyClasspath).value.sortBy {_.data.name}
if (acp == bcp) ()
else sys.error("Different classpaths are found:" +
"\n - a (overrides + cached) " + acp.toString +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ TaskKey[Unit]("check") := {
def isTestJar(n: String): Boolean =
(n contains "scalacheck") ||
(n contains "specs2")
val testLibs = cp map (_.data.getName) filter isTestJar
val testLibs = cp map (_.data.name) filter isTestJar
assert(testLibs.isEmpty, s"Compile Classpath has test libs:\n * ${testLibs.mkString("\n * ")}")
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@ lazy val root = (project in file(".")).
check := {
(a / update).value
(b / update).value
val acp = (a / Compile / externalDependencyClasspath).value.sortBy {_.data.getName}
val bcp = (b / Compile / externalDependencyClasspath).value.sortBy {_.data.getName}
val acp = (a / Compile / externalDependencyClasspath).value.sortBy {_.data.name}
val bcp = (b / Compile / externalDependencyClasspath).value.sortBy {_.data.name}

if (acp exists { _.data.getName contains "slf4j-api-1.7.5.jar" }) {
if (acp exists { _.data.name contains "slf4j-api-1.7.5.jar" }) {
sys.error("slf4j-api-1.7.5.jar found when it should NOT be included: " + acp.toString)
}
if (bcp exists { _.data.getName contains "dispatch-core_2.11-0.11.1.jar" }) {
if (bcp exists { _.data.name contains "dispatch-core_2.11-0.11.1.jar" }) {
sys.error("dispatch-core_2.11-0.11.1.jar found when it should NOT be included: " + bcp.toString)
}

Expand Down
17 changes: 10 additions & 7 deletions sbt-app/src/sbt-test/dependency-management/exclude-scala/build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,16 @@ lazy val root = (project in file(".")).
scalaOverride := check("scala.App").value
)

def check(className: String): Def.Initialize[Task[Unit]] = (Compile / fullClasspath) map { cp =>
val existing = cp.files.filter(_.getName contains "scala-library")
println("Full classpath: " + cp.mkString("\n\t", "\n\t", ""))
println("scala-library.jar: " + existing.mkString("\n\t", "\n\t", ""))
val loader = ClasspathUtilities.toLoader(existing)
Class.forName(className, false, loader)
}
def check(className: String): Def.Initialize[Task[Unit]] =
import sbt.TupleSyntax.*
(Compile / fullClasspath, fileConverter.toTaskable) mapN { (cp, c) =>
given FileConverter = c
val existing = cp.files.filter(_.toFile.getName contains "scala-library")
println("Full classpath: " + cp.mkString("\n\t", "\n\t", ""))
println("scala-library.jar: " + existing.mkString("\n\t", "\n\t", ""))
val loader = ClasspathUtilities.toLoader(existing.map(_.toFile()))
Class.forName(className, false, loader)
}

def dependencies(base: File) =
if( ( base / "stm").exists ) ("org.scala-tools" % "scala-stm_2.8.2" % "0.6") :: Nil
Expand Down
2 changes: 1 addition & 1 deletion sbt-app/src/sbt-test/dependency-management/force/build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def libraryDeps(base: File) = {
def check(ver: String) =
(Compile / dependencyClasspath) map { jars =>
val log4j = jars map (_.data) collect {
case f if f.getName contains "log4j-" => f.getName
case f if f.name contains "log4j-" => f.name
}
if (log4j.size != 1 || !log4j.head.contains(ver))
sys.error("Did not download the correct jar.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,11 @@ ThisBuild / useCoursier := false
lazy val commonSettings = Seq(
autoScalaLibrary := false,
scalaModuleInfo := None,
(Compile / unmanagedJars) ++= (scalaInstance map (_.allJars.toSeq)).value,
(Compile / unmanagedJars) ++= {
val converter = fileConverter.value
val xs = scalaInstance.value.allJars.toSeq
xs.map(_.toPath).map(x => converter.toVirtualFile(x): HashedVirtualFileRef)
},
(packageSrc / publishArtifact) := false,
(packageDoc / publishArtifact) := false,
publishMavenStyle := false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ libraryDependencies ++= Seq("natives-windows", "natives-linux", "natives-osx") m
autoScalaLibrary := false

TaskKey[Unit]("check") := ((Compile / dependencyClasspath) map { cp =>
assert(cp.size == 3, "Expected 3 jars, got: " + cp.files.mkString("(", ", ", ")"))
assert(cp.size == 3, "Expected 3 jars, got: " + cp.mkString("(", ", ", ")"))
}).value

TaskKey[Unit]("checkPom") := {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ autoScalaLibrary := false
TaskKey[Unit]("check") := {
val cp = (Compile / externalDependencyClasspath).value
val tcp = (Test / externalDependencyClasspath).value
assert(cp.size == 2, "Expected 2 jars on compile classpath, got: " + cp.files.mkString("(", ", ", ")"))
assert(cp.size == 2, "Expected 2 jars on compile classpath, got: " + cp.mkString("(", ", ", ")"))
// this should really be 1 because of intransitive(), but Ivy doesn't handle this.
// So, this test can only check that the assertion reported in #582 isn't triggered.
assert(tcp.size == 2, "Expected 2 jar on test classpath, got: " + tcp.files.mkString("(", ", ", ")"))
assert(tcp.size == 2, "Expected 2 jar on test classpath, got: " + tcp.mkString("(", ", ", ")"))
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ lazy val check = taskKey[Unit]("Runs the check")

lazy val root = (project in file("."))
.settings(
autoScalaLibrary := false,
autoScalaLibrary := false,
libraryDependencies += "org.webjars.npm" % "is-odd" % "2.0.0",
dependencyOverrides += "org.webjars.npm" % "is-number" % "5.0.0",
check := {
val cp = (Compile / externalDependencyClasspath).value.map {_.data.getName}.sorted
val cp = (Compile / externalDependencyClasspath).value.map {_.data.name}.sorted
if (!(cp contains "is-number-5.0.0.jar")) {
sys.error("is-number-5.0.0 not found when it should be included: " + cp.toString)
}
Expand Down
5 changes: 3 additions & 2 deletions sbt-app/src/sbt-test/dependency-management/provided/build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ lazy val root = (project in file(".")).
provided := (baseDirectory.value / "useProvided").exists,
configuration := (if (provided.value) Provided else Compile),
libraryDependencies += "javax.servlet" % "servlet-api" % "2.5" % configuration.value.name,
Provided / managedClasspath := Classpaths.managedJars(Provided, classpathTypes.value, update.value),
Provided / managedClasspath := Classpaths.managedJars(Provided, classpathTypes.value, update.value, fileConverter.value),
check := {
val result = (
Space ~> token(Compile.name.id | Runtime.name | Provided.name | Test.name) ~ token(Space ~> Bool)
Expand All @@ -21,7 +21,8 @@ lazy val root = (project in file(".")).
case Test.name => (Test / fullClasspath).value
case _ => sys.error(s"Invalid config: $conf")
}
checkServletAPI(cp.files, expected, conf)
given FileConverter = fileConverter.value
checkServletAPI(cp.files.map(_.toFile()), expected, conf)
}
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ val checkScalaLibrary = TaskKey[Unit]("checkScalaLibrary")

checkScalaLibrary := {
val scalaLibsJars = (Compile / managedClasspath).value
.map(_.data.getName)
.map(_.data.name)
.filter(name => name.startsWith("scala-library") || name.startsWith("scala3-library"))
.sorted
val expectedScalaLibsJars = Seq(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ libraryDependencies += "exclude.test" % "app" % "1.0.0"
val checkDependencies = taskKey[Unit]("Checks that dependencies are correct.")

checkDependencies := {
val hasBadJar = (Compile / fullClasspath).value.exists { jar => jar.data.getName contains "bottom-1.0.0.jar"}
val errorJarString = (Compile / fullClasspath).value.map(_.data.getName).mkString(" * ", "\n * ", "")
val hasBadMiddleJar = (Compile / fullClasspath).value.exists { jar => jar.data.getName contains "middle-1.0.0.jar"}
val hasBadJar = (Compile / fullClasspath).value.exists { jar => jar.data.name contains "bottom-1.0.0.jar"}
val errorJarString = (Compile / fullClasspath).value.map(_.data.name).mkString(" * ", "\n * ", "")
val hasBadMiddleJar = (Compile / fullClasspath).value.exists { jar => jar.data.name contains "middle-1.0.0.jar"}
assert(!hasBadMiddleJar, s"Failed to exclude excluded dependency on classpath!\nFound:\n$errorJarString")
assert(!hasBadJar, s"Failed to exclude transitive excluded dependency on classpath!\nFound:\n$errorJarString")
val modules =
Expand Down
6 changes: 4 additions & 2 deletions sbt-app/src/sbt-test/dependency-management/url/build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,11 @@ lazy val root = (project in file(".")).
)

def checkClasspath(conf: Configuration) =
(conf / fullClasspath) map { cp =>
import sbt.TupleSyntax.*
(conf / fullClasspath, fileConverter.toTaskable) mapN { (cp, c) =>
given FileConverter = c
try {
val loader = ClasspathUtilities.toLoader(cp.files)
val loader = ClasspathUtilities.toLoader(cp.files.map(_.toFile()))
Class.forName("org.jsoup.Jsoup", false, loader)
()
}
Expand Down
5 changes: 4 additions & 1 deletion sbt-app/src/sbt-test/run/classpath/build.sbt
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
(Runtime / externalDependencyClasspath) += file("conf")
(Runtime / externalDependencyClasspath) += {
val converter = fileConverter.value
converter.toVirtualFile(file("conf").toPath): HashedVirtualFileRef
}
1 change: 1 addition & 0 deletions sbt-app/src/sbt-test/run/concurrent/build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ def runTestTask(pre: Def.Initialize[Task[Unit]]) =
val cp = (Compile / fullClasspath).value
val main = (Compile / mainClass).value getOrElse sys.error("No main class found")
val args = baseDirectory.value.getAbsolutePath :: Nil
given FileConverter = fileConverter.value
r.run(main, cp.files, args, streams.value.log).get
}

Expand Down

0 comments on commit ff504b8

Please sign in to comment.