mirror of https://github.com/sbt/sbt.git
copy some tests from coursier/sbt-coursier
Copying over sbt-coursier integration tests that do not depend on Coursier-specific things, but excercises sbt integration.
This commit is contained in:
parent
7658f14762
commit
24db77edc5
|
|
@ -17,6 +17,7 @@ env:
|
|||
- SBT_CMD="scripted dependency-management/*2of4"
|
||||
- SBT_CMD="scripted dependency-management/*3of4"
|
||||
- SBT_CMD="scripted dependency-management/*4of4"
|
||||
- SBT_CMD="scripted plugins/*"
|
||||
- SBT_CMD="scripted package/* reporter/* run/* project-load/*"
|
||||
- SBT_CMD="scripted project/*1of2"
|
||||
- SBT_CMD="scripted project/*2of2"
|
||||
|
|
|
|||
|
|
@ -355,6 +355,7 @@ object Keys {
|
|||
|
||||
val useCoursier = settingKey[Boolean]("Use Coursier for dependency resolution.").withRank(BSetting)
|
||||
val csrCachePath = settingKey[File]("Coursier cache path").withRank(CSetting)
|
||||
val csrMavenProfiles = settingKey[Set[String]]("").withRank(CSetting)
|
||||
private[sbt] val csrConfiguration = taskKey[CoursierConfiguration]("General dependency management (Coursier) settings, such as the resolvers and options to use.").withRank(DTask)
|
||||
private[sbt] val csrProject = taskKey[coursier.core.Project]("")
|
||||
private[sbt] val csrResolvers = taskKey[Seq[Resolver]]("")
|
||||
|
|
@ -362,7 +363,6 @@ object Keys {
|
|||
private[sbt] val csrSbtResolvers = taskKey[Seq[Resolver]]("Resolvers used for sbt artifacts.")
|
||||
private[sbt] val csrInterProjectDependencies = taskKey[Seq[coursier.core.Project]]("Projects the current project depends on, possibly transitively")
|
||||
private[sbt] val csrFallbackDependencies = taskKey[Seq[FallbackDependency]]("")
|
||||
private[sbt] val csrMavenProfiles = settingKey[Set[String]]("")
|
||||
private[sbt] val csrLogger = taskKey[Option[CacheLogger]]("")
|
||||
private[sbt] val csrExtraCredentials = taskKey[Seq[coursier.credentials.Credentials]]("")
|
||||
private[sbt] val csrPublications = taskKey[Seq[(coursier.core.Configuration, coursier.core.Publication)]]("")
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
scalaVersion := "2.11.8"
|
||||
|
||||
libraryDependencies += ("com.rengwuxian.materialedittext" % "library" % "2.1.4")
|
||||
.exclude("com.android.support", "support-v4")
|
||||
.exclude("com.android.support", "support-annotations")
|
||||
.exclude("com.android.support", "appcompat-v7")
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
import java.io.File
|
||||
import java.nio.file.Files
|
||||
|
||||
object Main extends App {
|
||||
Files.write(new File("output").toPath, "OK".getBytes("UTF-8"))
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
$ delete output
|
||||
> run
|
||||
$ exists output
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
autoScalaLibrary := false
|
||||
libraryDependencies += "com.chuusai" % "shapeless_2.12" % "2.3.2"
|
||||
|
||||
val checkScalaLibrary = TaskKey[Unit]("checkScalaLibrary")
|
||||
|
||||
checkScalaLibrary := {
|
||||
val scalaLibsJars = managedClasspath
|
||||
.in(Compile)
|
||||
.value
|
||||
.map(_.data.getName)
|
||||
.filter(_.startsWith("scala-library"))
|
||||
.sorted
|
||||
val expectedScalaLibsJars = Seq(
|
||||
"scala-library-2.12.0.jar"
|
||||
)
|
||||
assert(
|
||||
scalaLibsJars == expectedScalaLibsJars,
|
||||
s"$scalaLibsJars != $expectedScalaLibsJars"
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
> checkScalaLibrary
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
scalaVersion := "2.11.8"
|
||||
libraryDependencies += "org.jclouds.api" % "nova" % "1.5.9" classifier "tests"
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
import java.io.File
|
||||
import java.nio.file.Files
|
||||
|
||||
import scala.util.Try
|
||||
|
||||
object Main extends App {
|
||||
|
||||
def classFound(clsName: String) = Try(
|
||||
Thread.currentThread()
|
||||
.getContextClassLoader()
|
||||
.loadClass(clsName)
|
||||
).toOption.nonEmpty
|
||||
|
||||
val name = "org.jclouds.openstack.nova.functions.ParseServerFromJsonResponseTest"
|
||||
val classifierTest = classFound(name)
|
||||
|
||||
assert(classifierTest, s"Couldn't find $name")
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
> run
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
scalaVersion := "2.11.8"
|
||||
|
||||
organization := "io.get-coursier.test"
|
||||
name := "sbt-coursier-exclude-dependencies"
|
||||
version := "0.1.0-SNAPSHOT"
|
||||
|
||||
libraryDependencies += "com.github.alexarchambault" %% "argonaut-shapeless_6.1" % "1.0.0-RC1"
|
||||
|
||||
excludeDependencies += sbt.ExclusionRule("com.chuusai", "shapeless_2.11")
|
||||
excludeDependencies += "io.argonaut" %% "argonaut"
|
||||
Binary file not shown.
|
|
@ -0,0 +1,32 @@
|
|||
import java.io.File
|
||||
import java.nio.file.Files
|
||||
|
||||
import scala.util.Try
|
||||
|
||||
object Main extends App {
|
||||
|
||||
def classFound(clsName: String) = Try(
|
||||
Thread.currentThread()
|
||||
.getContextClassLoader()
|
||||
.loadClass(clsName)
|
||||
).toOption.nonEmpty
|
||||
|
||||
val shapelessFound = classFound("shapeless.HList")
|
||||
val argonautFound = classFound("argonaut.Json")
|
||||
val argonautShapelessFound = classFound("argonaut.derive.MkEncodeJson")
|
||||
|
||||
assert(
|
||||
argonautShapelessFound,
|
||||
"Expected to find class from argonaut-shapeless"
|
||||
)
|
||||
assert(
|
||||
!shapelessFound,
|
||||
"Expected not to find classes from shapeless"
|
||||
)
|
||||
assert(
|
||||
!argonautFound,
|
||||
"Expected not to find classes from argonaut"
|
||||
)
|
||||
|
||||
Files.write(new File("output").toPath, "OK".getBytes("UTF-8"))
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
$ delete output
|
||||
> run
|
||||
$ exists output
|
||||
> publishLocal
|
||||
$ exec java -jar coursier launch io.get-coursier.test:sbt-coursier-exclude-dependencies_2.11:0.1.0-SNAPSHOT
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
case class A(msg: String)
|
||||
|
||||
object A {
|
||||
def default = A("OK")
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
import java.io.File
|
||||
import java.nio.file.Files
|
||||
|
||||
object Main extends App {
|
||||
|
||||
val msg = shapeless.Generic[A].to(A.default).head
|
||||
|
||||
Files.write(new File("output").toPath, msg.getBytes("UTF-8"))
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
|
||||
lazy val a = project
|
||||
.settings(sharedSettings)
|
||||
.settings(
|
||||
libraryDependencies += "com.chuusai" %% "shapeless" % "2.3.234" from "https://oss.sonatype.org/content/repositories/releases/com/chuusai/shapeless_2.11/2.3.1/shapeless_2.11-2.3.1.jar"
|
||||
)
|
||||
|
||||
lazy val b = project
|
||||
.dependsOn(a)
|
||||
.settings(sharedSettings)
|
||||
|
||||
lazy val root = project
|
||||
.in(file("."))
|
||||
.aggregate(a, b)
|
||||
.settings(sharedSettings)
|
||||
|
||||
|
||||
lazy val sharedSettings = Seq(
|
||||
scalaVersion := "2.11.8"
|
||||
)
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
$ delete output
|
||||
> b/run
|
||||
$ exists output
|
||||
|
|
@ -0,0 +1 @@
|
|||
scalaVersion := "2.12.8"
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
addSbtPlugin("ch.epfl.scala" % "sbt-bloop" % "1.2.5")
|
||||
addSbtPlugin("org.scalameta" % "sbt-metals" % "0.4.4")
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
> metalsEnable
|
||||
> bloopInstall
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
scalaVersion := "2.11.8"
|
||||
|
||||
libraryDependencies += "org.apache.hadoop" % "hadoop-yarn-server-resourcemanager" % "2.7.1"
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
import java.io.File
|
||||
import java.nio.file.Files
|
||||
|
||||
import org.apache.zookeeper.ZooKeeper
|
||||
|
||||
object Main extends App {
|
||||
Files.write(new File("output").toPath, classOf[ZooKeeper].getSimpleName.getBytes("UTF-8"))
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
$ delete output
|
||||
> run
|
||||
$ exists output
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
case class A(msg: String)
|
||||
|
||||
object A {
|
||||
def default = A("OK")
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
import java.io.File
|
||||
import java.nio.file.Files
|
||||
|
||||
import scalaz.stream._
|
||||
import scalaz.concurrent.Task
|
||||
|
||||
object Main extends App {
|
||||
|
||||
val pch = Process.constant((i:Int) => Task.now(())).take(3)
|
||||
val count = Process.constant(1).toSource.to(pch).runLog.run.size
|
||||
assert(count == 3)
|
||||
|
||||
Files.write(new File("output").toPath, A.default.msg.getBytes("UTF-8"))
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
|
||||
lazy val a = project
|
||||
.settings(sharedSettings)
|
||||
.settings(
|
||||
resolvers += "Scalaz Bintray Repo" at "https://dl.bintray.com/scalaz/releases"
|
||||
)
|
||||
|
||||
lazy val b = project
|
||||
.dependsOn(a)
|
||||
.settings(sharedSettings)
|
||||
.settings(
|
||||
// resolver added in inter-project dependency only - should still be fine
|
||||
libraryDependencies += "org.scalaz.stream" %% "scalaz-stream" % "0.7.1a"
|
||||
)
|
||||
|
||||
lazy val root = project
|
||||
.in(file("."))
|
||||
.aggregate(a, b)
|
||||
.settings(sharedSettings)
|
||||
|
||||
|
||||
lazy val sharedSettings = Seq(
|
||||
scalaVersion := "2.11.8"
|
||||
)
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
$ delete output
|
||||
> b/run
|
||||
$ exists output
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
object A {
|
||||
|
||||
def msg = "OK"
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
import java.io.File
|
||||
import java.nio.file.Files
|
||||
|
||||
import argonaut._, Argonaut._, ArgonautShapeless._
|
||||
|
||||
object Main extends App {
|
||||
|
||||
case class CC(i: Int, s: String)
|
||||
|
||||
val msg = CC(2, A.msg).asJson.spaces2
|
||||
|
||||
Files.write(new File("output").toPath, msg.getBytes("UTF-8"))
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
|
||||
lazy val sharedSettings = Seq(
|
||||
scalaVersion := "2.11.8"
|
||||
)
|
||||
|
||||
/** Module with the same Maven coordinates as shapeless 2.3.1 */
|
||||
lazy val `shapeless-mock` = project
|
||||
.settings(sharedSettings)
|
||||
.settings(
|
||||
organization := "com.chuusai",
|
||||
name := "shapeless",
|
||||
version := "2.3.1"
|
||||
)
|
||||
|
||||
lazy val a = project
|
||||
.settings(sharedSettings)
|
||||
.settings(
|
||||
organization := "com.pany",
|
||||
name := "a",
|
||||
version := "0.0.1"
|
||||
)
|
||||
|
||||
/** Transitively depends on the - real - shapeless 2.3.1 */
|
||||
lazy val b = project
|
||||
.dependsOn(a)
|
||||
.settings(sharedSettings)
|
||||
.settings(
|
||||
organization := "com.pany",
|
||||
name := "b",
|
||||
version := "0.0.1",
|
||||
libraryDependencies += "com.github.alexarchambault" %% "argonaut-shapeless_6.2" % "1.2.0-M1"
|
||||
)
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
$ delete output
|
||||
> b/run
|
||||
$ exists output
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
|
||||
lazy val noPomCheck = TaskKey[Unit]("noPomCheck")
|
||||
|
||||
noPomCheck := {
|
||||
|
||||
val log = streams.value.log
|
||||
|
||||
val configReport = update.value
|
||||
.configuration(Compile)
|
||||
.getOrElse {
|
||||
throw new Exception(
|
||||
"compile configuration not found in update report"
|
||||
)
|
||||
}
|
||||
|
||||
val artifacts = configReport
|
||||
.modules
|
||||
.flatMap(_.artifacts)
|
||||
.map(_._1)
|
||||
|
||||
val pomArtifacts = artifacts
|
||||
.filter { a =>
|
||||
a.`type` == "pom" && a.classifier.isEmpty
|
||||
}
|
||||
|
||||
for (a <- pomArtifacts)
|
||||
log.error(s"Found POM artifact $a")
|
||||
|
||||
assert(pomArtifacts.isEmpty)
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
> noPomCheck
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
ThisBuild / scalaVersion := "2.11.8"
|
||||
|
||||
Compile / classLoaderLayeringStrategy := ClassLoaderLayeringStrategy.Flat
|
||||
libraryDependencies += "org.apache.spark" %% "spark-sql" % "1.6.2"
|
||||
csrMavenProfiles += "hadoop-2.6"
|
||||
|
|
@ -0,0 +1 @@
|
|||
OK
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
import java.io.File
|
||||
import java.nio.file.Files
|
||||
|
||||
object Main extends App {
|
||||
val p = new java.util.Properties
|
||||
p.load(
|
||||
Thread.currentThread()
|
||||
.getContextClassLoader
|
||||
.getResource("common-version-info.properties")
|
||||
.openStream()
|
||||
)
|
||||
|
||||
val hadoopVersion = p.getProperty("version")
|
||||
Console.err.println(s"Found hadoop version $hadoopVersion")
|
||||
|
||||
assert(hadoopVersion == "2.6.0")
|
||||
|
||||
Files.write(new File("output").toPath, "OK".getBytes("UTF-8"))
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
$ delete output
|
||||
> run
|
||||
$ exists output
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
scalaOrganization := "org.typelevel"
|
||||
scalaVersion := "2.11.7"
|
||||
scalacOptions += "-Xexperimental"
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
import java.io.File
|
||||
import java.nio.file.Files
|
||||
|
||||
object Main extends App {
|
||||
val n': 2.type = 2
|
||||
|
||||
Files.write(new File("output").toPath, "OK".getBytes("UTF-8"))
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
$ delete output
|
||||
> run
|
||||
$ exists output
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
scalaVersion := "2.11.8"
|
||||
|
||||
libraryDependencies += "ccl.northwestern.edu" % "netlogo" % "5.3.1" % "provided" from s"https://github.com/NetLogo/NetLogo/releases/download/5.3.1/NetLogo.jar"
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
import java.io.File
|
||||
import java.nio.file.Files
|
||||
|
||||
object Main extends App {
|
||||
// Not using directly the NetLogo 5.x lib, which seems to depend on Scala 2.9
|
||||
// Can't find a way to check that NetLogo.jar is in the classpath
|
||||
// These don't work, even with fork := true:
|
||||
// assert(Thread.currentThread.getContextClassLoader.getResource("org/nlogo/nvm/Task.class") != null)
|
||||
// Thread.currentThread.getContextClassLoader.getResource("org/nlogo/nvm/Task.class")
|
||||
Files.write(new File("output").toPath, "OK".getBytes("UTF-8"))
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
$ delete output
|
||||
> run
|
||||
$ exists output
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
|
||||
libraryDependencies += "org.json4s" %% "json4s-native" % "[3.3.0,3.5.0)"
|
||||
|
||||
|
||||
lazy val actualVersionCheck = taskKey[Unit]("")
|
||||
|
||||
actualVersionCheck := {
|
||||
|
||||
val log = streams.value.log
|
||||
|
||||
val configReport = update.value
|
||||
.configuration(Compile)
|
||||
.getOrElse {
|
||||
sys.error("compile configuration not found in update report")
|
||||
}
|
||||
|
||||
val modules = configReport
|
||||
.modules
|
||||
.map(_.module)
|
||||
|
||||
assert(modules.nonEmpty)
|
||||
assert(modules.exists(_.name.startsWith("json4s-native")))
|
||||
|
||||
val wrongModules = modules.filter { m =>
|
||||
val v = m.revision
|
||||
v.contains("[") || v.contains("]") || v.contains("(") || v.contains(")")
|
||||
}
|
||||
|
||||
if (wrongModules.nonEmpty) {
|
||||
log.error("Found unexpected intervals in revisions")
|
||||
for (m <- wrongModules)
|
||||
log.error(s" ${m.organization}:${m.name}:${m.revision}")
|
||||
sys.error("Found intervals in revisions")
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
> actualVersionCheck
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
Copyright (c) 2015 The dotty-example-project contributors.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. The name of the author may not be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
Cut-n-pasted from https://github.com/lampepfl/dotty-example-project/tree/a753b14e281bbaa6c69f26298913ad6feba969c7
|
||||
|
|
@ -0,0 +1 @@
|
|||
scalaVersion := "0.13.0-RC1"
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
# sbt-coursier scripted tests: required, as we default to sbt 1.0.3,
|
||||
# but sbt-dotty requires sbt >= 1.2.7
|
||||
sbt.version=1.2.7
|
||||
|
|
@ -0,0 +1 @@
|
|||
addSbtPlugin("ch.epfl.lamp" % "sbt-dotty" % "0.3.0")
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
|
||||
object Main {
|
||||
|
||||
def main(args: Array[String]): Unit = {
|
||||
|
||||
runExample("Trait Params")(TraitParams.test)
|
||||
|
||||
}
|
||||
|
||||
private def runExample(name: String)(f: => Unit) = {
|
||||
println(Console.MAGENTA + s"$name example:" + Console.RESET)
|
||||
f
|
||||
println()
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
/**
|
||||
* Trait Parameters: https://dotty.epfl.ch/docs/reference/other-new-features/trait-parameters.html
|
||||
*/
|
||||
object TraitParams {
|
||||
|
||||
trait Base(val msg: String)
|
||||
class A extends Base("Hello")
|
||||
class B extends Base("Dotty!")
|
||||
|
||||
// Union types only exist in Dotty, so there's no chance that this will accidentally be compiled with Scala 2
|
||||
private def printMessages(msgs: (A | B)*) = println(msgs.map(_.msg).mkString(" "))
|
||||
|
||||
def test: Unit = {
|
||||
|
||||
printMessages(new A, new B)
|
||||
|
||||
// Sanity check the classpath: this won't run if the dotty jar is not present.
|
||||
val x: Int => Int = z => z
|
||||
x(1)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
> run
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
scalaVersion := "2.12.2"
|
||||
enablePlugins(ScalafmtPlugin)
|
||||
|
|
@ -0,0 +1 @@
|
|||
addSbtPlugin("com.lucidchart" % "sbt-scalafmt" % "1.15")
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
import java.io.File
|
||||
import java.nio.file.Files
|
||||
|
||||
object Main extends App {
|
||||
Files.write(new File("output").toPath, "OK".getBytes("UTF-8"))
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
> scalafmt
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
ThisBuild / scalaVersion := "2.12.8"
|
||||
|
||||
name := "hello"
|
||||
enablePlugins(JavaAppPackaging)
|
||||
|
||||
lazy val check = taskKey[Unit]("")
|
||||
|
||||
check := {
|
||||
val cmd = "target/universal/stage/bin/hello"
|
||||
val cmd0 =
|
||||
if (sys.props("os.name").toLowerCase(java.util.Locale.ROOT).contains("windows"))
|
||||
cmd + ".bat"
|
||||
else
|
||||
cmd
|
||||
val b = new ProcessBuilder(cmd0)
|
||||
b.inheritIO()
|
||||
val p = b.start()
|
||||
val retCode = p.waitFor()
|
||||
assert(retCode == 0, s"Command $cmd returned code $retCode")
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.3.3")
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
import java.io.File
|
||||
import java.nio.file.Files
|
||||
|
||||
object Main extends App {
|
||||
Files.write(new File("output").toPath, "OK".getBytes("UTF-8"))
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
$ delete output
|
||||
> stage
|
||||
> check
|
||||
$ exists output
|
||||
$ delete output
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
scalaVersion := "2.12.3"
|
||||
enablePlugins(ScalaJSPlugin)
|
||||
libraryDependencies += "org.scala-js" %%% "scalajs-java-time" % "0.2.2"
|
||||
|
|
@ -0,0 +1 @@
|
|||
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.19")
|
||||
|
|
@ -0,0 +1 @@
|
|||
> update
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
scalaVersion := "2.12.1"
|
||||
scalacOptions += "-Xfatal-warnings" // required for the test
|
||||
|
||||
enablePlugins(ScalaUnidocPlugin)
|
||||
autoAPIMappings := true
|
||||
|
|
@ -0,0 +1 @@
|
|||
addSbtPlugin("com.eed3si9n" % "sbt-unidoc" % "0.4.2")
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
/** Default instances for Scala's [[scala.concurrent.Future Future]]. */
|
||||
class Foo
|
||||
|
|
@ -0,0 +1 @@
|
|||
> unidoc
|
||||
|
|
@ -167,94 +167,59 @@ 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 "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$
|
||||
case "dependency-management/artifact" => LauncherBased // tbd
|
||||
case "dependency-management/cache-classifiers" => LauncherBased // tbd
|
||||
case "dependency-management/cache-local" => LauncherBased // tbd
|
||||
case "dependency-management/cache-resolver" => LauncherBased // sbt/Package$
|
||||
case "dependency-management/cache-update" => LauncherBased // tbd
|
||||
case "dependency-management/cached-resolution-circular" => LauncherBased // tbd
|
||||
case "dependency-management/cached-resolution-classifier" => LauncherBased // tbd
|
||||
case "dependency-management/cached-resolution-configurations" => LauncherBased // tbd
|
||||
case "dependency-management/cached-resolution-conflicts" => LauncherBased // tbd
|
||||
case "dependency-management/cached-resolution-exclude" => LauncherBased // tbd
|
||||
case "dependency-management/cached-resolution-force" => LauncherBased // tbd
|
||||
case "dependency-management/cached-resolution-interproj" => LauncherBased // tbd
|
||||
case "dependency-management/cached-resolution-overrides" => LauncherBased // tbd
|
||||
case "dependency-management/chainresolver" => LauncherBased // tbd
|
||||
case "dependency-management/circular-dependency" => LauncherBased // tbd
|
||||
case "dependency-management/classifier" => LauncherBased // tbd
|
||||
case "dependency-management/default-resolvers" => LauncherBased // tbd
|
||||
case "dependency-management/deliver-artifacts" => LauncherBased // tbd
|
||||
case "dependency-management/exclude-transitive" => LauncherBased // tbd
|
||||
case "dependency-management/extra" => LauncherBased // tbd
|
||||
case "dependency-management/force" => LauncherBased // tbd
|
||||
case "dependency-management/info" => LauncherBased // tbd
|
||||
case "dependency-management/inline-dependencies-a" => LauncherBased // tbd
|
||||
case "dependency-management/ivy-settings-c" => LauncherBased // sbt/Package$
|
||||
case "dependency-management/latest-local-plugin" => LauncherBased // sbt/Package$
|
||||
case "dependency-management/metadata-only-resolver" => LauncherBased // tbd
|
||||
case "dependency-management/no-file-fails-publish" => LauncherBased // tbd
|
||||
case "dependency-management/override" => LauncherBased // tbd
|
||||
case "dependency-management/parent-publish" => LauncherBased // sbt/Package$
|
||||
case "dependency-management/pom-parent-pom" => LauncherBased // tbd
|
||||
case "dependency-management/publish-to-maven-local-file" => LauncherBased // sbt/Package$
|
||||
case "dependency-management/snapshot-resolution" => LauncherBased // tbd
|
||||
case "dependency-management/snapshot-local" => LauncherBased // tbd
|
||||
case "dependency-management/test-artifact" => LauncherBased // sbt/Package$
|
||||
case "dependency-management/transitive-version-range" => LauncherBased // tbd
|
||||
case "dependency-management/update-sbt-classifiers" => LauncherBased // tbd
|
||||
case "dependency-management/url" => LauncherBased // tbd
|
||||
case "java/argfile" => LauncherBased // sbt/Package$
|
||||
case "java/cross" => LauncherBased // sbt/Package$
|
||||
case "java/basic" => LauncherBased // sbt/Package$
|
||||
case "java/varargs-main" => LauncherBased // sbt/Package$
|
||||
case "package/lazy-name" => LauncherBased // sbt/Package$
|
||||
case "package/manifest" => LauncherBased // sbt/Package$
|
||||
case "package/resources" => LauncherBased // sbt/Package$
|
||||
case "project/Class.forName" => LauncherBased // sbt/Package$
|
||||
case "project/binary-plugin" => LauncherBased // sbt/Package$
|
||||
case "project/default-settings" => LauncherBased // sbt/Package$
|
||||
case "project/extra" => LauncherBased // tbd
|
||||
case "project/flatten" => LauncherBased // sbt/Package$
|
||||
case "project/generated-root-no-publish" => LauncherBased // tbd
|
||||
case "project/giter8-plugin" => LauncherBased // tbd
|
||||
case "project/lib" => LauncherBased // sbt/Package$
|
||||
case "project/scripted-plugin" => LauncherBased // tbd
|
||||
case "project/scripted-skip-incompatible" => LauncherBased // sbt/Package$
|
||||
case "project/session-update-from-cmd" => LauncherBased // tbd
|
||||
case "project/transitive-plugins" => LauncherBased // tbd
|
||||
case "run/awt" => LauncherBased // sbt/Package$
|
||||
case "run/classpath" => LauncherBased // sbt/Package$
|
||||
case "run/daemon" => LauncherBased // sbt/Package$
|
||||
case "run/daemon-exit" => LauncherBased // sbt/Package$
|
||||
case "run/error" => LauncherBased // sbt/Package$
|
||||
case "run/fork" => LauncherBased // sbt/Package$
|
||||
case "run/fork-loader" => LauncherBased // sbt/Package$
|
||||
case "run/non-local-main" => LauncherBased // sbt/Package$
|
||||
case "run/spawn" => LauncherBased // sbt/Package$
|
||||
case "run/spawn-exit" => LauncherBased // sbt/Package$
|
||||
case "source-dependencies/binary" => LauncherBased // sbt/Package$
|
||||
case "source-dependencies/export-jars" => LauncherBased // sbt/Package$
|
||||
case "source-dependencies/implicit-search" => LauncherBased // sbt/Package$
|
||||
case "source-dependencies/java-basic" => LauncherBased // sbt/Package$
|
||||
case "source-dependencies/less-inter-inv" => LauncherBased // sbt/Package$
|
||||
case "source-dependencies/less-inter-inv-java" => LauncherBased // sbt/Package$
|
||||
case "source-dependencies/linearization" => LauncherBased // sbt/Package$
|
||||
case "source-dependencies/named" => LauncherBased // sbt/Package$
|
||||
case "source-dependencies/specialized" => 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 "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 "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$
|
||||
case gn if gn.startsWith("dependency-management/") => LauncherBased // sbt/Package$
|
||||
case gn if gn.startsWith("plugins/") => LauncherBased // sbt/Package$
|
||||
case "java/argfile" => LauncherBased // sbt/Package$
|
||||
case "java/cross" => LauncherBased // sbt/Package$
|
||||
case "java/basic" => LauncherBased // sbt/Package$
|
||||
case "java/varargs-main" => LauncherBased // sbt/Package$
|
||||
case "package/lazy-name" => LauncherBased // sbt/Package$
|
||||
case "package/manifest" => LauncherBased // sbt/Package$
|
||||
case "package/resources" => LauncherBased // sbt/Package$
|
||||
case "project/Class.forName" => LauncherBased // sbt/Package$
|
||||
case "project/binary-plugin" => LauncherBased // sbt/Package$
|
||||
case "project/default-settings" => LauncherBased // sbt/Package$
|
||||
case "project/extra" => LauncherBased // tbd
|
||||
case "project/flatten" => LauncherBased // sbt/Package$
|
||||
case "project/generated-root-no-publish" => LauncherBased // tbd
|
||||
case "project/giter8-plugin" => LauncherBased // tbd
|
||||
case "project/lib" => LauncherBased // sbt/Package$
|
||||
case "project/scripted-plugin" => LauncherBased // tbd
|
||||
case "project/scripted-skip-incompatible" => LauncherBased // sbt/Package$
|
||||
case "project/session-update-from-cmd" => LauncherBased // tbd
|
||||
case "project/transitive-plugins" => LauncherBased // tbd
|
||||
case "run/awt" => LauncherBased // sbt/Package$
|
||||
case "run/classpath" => LauncherBased // sbt/Package$
|
||||
case "run/daemon" => LauncherBased // sbt/Package$
|
||||
case "run/daemon-exit" => LauncherBased // sbt/Package$
|
||||
case "run/error" => LauncherBased // sbt/Package$
|
||||
case "run/fork" => LauncherBased // sbt/Package$
|
||||
case "run/fork-loader" => LauncherBased // sbt/Package$
|
||||
case "run/non-local-main" => LauncherBased // sbt/Package$
|
||||
case "run/spawn" => LauncherBased // sbt/Package$
|
||||
case "run/spawn-exit" => LauncherBased // sbt/Package$
|
||||
case "source-dependencies/binary" => LauncherBased // sbt/Package$
|
||||
case "source-dependencies/export-jars" => LauncherBased // sbt/Package$
|
||||
case "source-dependencies/implicit-search" => LauncherBased // sbt/Package$
|
||||
case "source-dependencies/java-basic" => LauncherBased // sbt/Package$
|
||||
case "source-dependencies/less-inter-inv" => LauncherBased // sbt/Package$
|
||||
case "source-dependencies/less-inter-inv-java" => LauncherBased // sbt/Package$
|
||||
case "source-dependencies/linearization" => LauncherBased // sbt/Package$
|
||||
case "source-dependencies/named" => LauncherBased // sbt/Package$
|
||||
case "source-dependencies/specialized" => LauncherBased // sbt/Package$
|
||||
case "tests/test-cross" =>
|
||||
LauncherBased // the sbt metabuild classpath leaks into the test interface classloader in older versions of sbt
|
||||
case _ => RunFromSourceBased
|
||||
|
|
|
|||
Loading…
Reference in New Issue