From 7ddbd69e53cf8b5b439020b9b5148ceed79500dc Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sun, 15 Jan 2017 01:44:05 -0500 Subject: [PATCH] Use Scala 2.12.1 Bump up the Scala version used by sbt to 2.12.1. Most changes are migration of the integration tests. --- build.sbt | 12 +++--- .../test/scala/sbt/compiler/EvalTest.scala | 6 +-- main/src/test/resources/new-format/1.sbt.txt | 2 +- main/src/test/resources/new-format/2.sbt.txt | 2 +- main/src/test/scala/ParseKey.scala | 4 +- .../test/scala/sbt/internal/TestBuild.scala | 23 +++++++++-- .../sbt/internal/parser/EmbeddedXmlSpec.scala | 2 +- .../scala/sbt/internal/parser/ErrorSpec.scala | 2 +- project/Dependencies.scala | 6 ++- project/Util.scala | 1 - .../actions/aggregate/project/Marker.scala | 2 +- .../actions/cross-multiproject/build.sbt | 13 +++--- .../sbt-test/actions/cross-multiproject/test | 40 ++++++++----------- .../cache-classifiers/a/build.sbt | 11 ----- .../cache-classifiers/b/build.sbt | 7 ---- .../cache-classifiers/changes/B.scala | 2 +- .../cache-classifiers/multi.sbt | 24 +++++++++-- .../dependency-management/force/build.sbt | 2 +- .../pom-advanced/build.sbt | 2 +- .../snapshot-resolution/build.sbt | 2 + .../dependency-management/t468/build.sbt | 4 +- .../sbt-test/java/track-anonymous/build.sbt | 4 +- .../project/default-settings/build.sbt | 2 +- .../project/generated-root-no-publish/test | 10 ++--- .../run/error/changes/RunFailureMain.scala | 2 +- sbt/src/sbt-test/run/fork-loader/build.sbt | 12 +++--- .../run/spawn/src/main/scala/Spawn.scala | 2 +- .../source-dependencies/binary/build.sbt | 2 + .../inherited_type_params/A.scala | 2 +- sbt/src/sbt-test/tests/arguments/build.sbt | 30 ++++++++------ .../src/test/scala/ArgumentTest.scala | 17 +++++--- .../tests/fork-test-group-parallel/build.sbt | 3 +- sbt/src/sbt-test/tests/order/build.sbt | 3 +- .../sbt-test/tests/source-directory-name/test | 2 +- 34 files changed, 147 insertions(+), 113 deletions(-) delete mode 100644 sbt/src/sbt-test/dependency-management/cache-classifiers/a/build.sbt delete mode 100644 sbt/src/sbt-test/dependency-management/cache-classifiers/b/build.sbt diff --git a/build.sbt b/build.sbt index b60629fef..b530d0b18 100644 --- a/build.sbt +++ b/build.sbt @@ -34,7 +34,7 @@ def buildLevelSettings: Seq[Setting[_]] = inThisBuild(Seq( )) def commonSettings: Seq[Setting[_]] = Seq[SettingsDefinition]( - scalaVersion := scala211, + scalaVersion := baseScalaVersion, componentID := None, resolvers += Resolver.typesafeIvyRepo("releases"), resolvers += Resolver.sonatypeRepo("snapshots"), @@ -43,7 +43,7 @@ def commonSettings: Seq[Setting[_]] = Seq[SettingsDefinition]( testOptions += Tests.Argument(TestFrameworks.ScalaCheck, "-w", "1"), javacOptions in compile ++= Seq("-target", "6", "-source", "6", "-Xlint", "-Xlint:-serial"), incOptions := incOptions.value.withNameHashing(true), - crossScalaVersions := Seq(scala211), + crossScalaVersions := Seq(baseScalaVersion), bintrayPackage := (bintrayPackage in ThisBuild).value, bintrayRepository := (bintrayRepository in ThisBuild).value, mimaDefaultSettings, @@ -113,7 +113,7 @@ lazy val testingProj = (project in file("testing")). lazy val testAgentProj = (project in file("testing") / "agent"). settings( minimalSettings, - crossScalaVersions := Seq(scala211), + crossScalaVersions := Seq(baseScalaVersion), crossPaths := false, autoScalaLibrary := false, name := "Test Agent", @@ -228,7 +228,7 @@ lazy val sbtProj = (project in file("sbt")). baseSettings, name := "sbt", normalizedName := "sbt", - crossScalaVersions := Seq(scala211), + crossScalaVersions := Seq(baseScalaVersion), crossPaths := false ). configure(addSbtCompilerBridge) @@ -341,8 +341,8 @@ lazy val otherProjects: ScopeFilter = ScopeFilter( ) def customCommands: Seq[Setting[_]] = Seq( - commands += Command.command("setupBuildScala211") { state => - s"""set scalaVersion in ThisBuild := "$scala211" """ :: + commands += Command.command("setupBuildScala212") { state => + s"""set scalaVersion in ThisBuild := "$scala212" """ :: state }, safeUnitTests := { diff --git a/main-actions/src/test/scala/sbt/compiler/EvalTest.scala b/main-actions/src/test/scala/sbt/compiler/EvalTest.scala index dfdd839cf..e12c8839e 100644 --- a/main-actions/src/test/scala/sbt/compiler/EvalTest.scala +++ b/main-actions/src/test/scala/sbt/compiler/EvalTest.scala @@ -8,10 +8,10 @@ import scala.tools.nsc.reporters.StoreReporter import sbt.io.IO -object EvalTest extends Properties("eval") { - private[this] val reporter = new StoreReporter +class EvalTest extends Properties("eval") { + private[this] lazy val reporter = new StoreReporter import reporter.{ ERROR, Info } - private[this] val eval = new Eval(_ => reporter, None) + private[this] lazy val eval = new Eval(_ => reporter, None) property("inferred integer") = forAll { (i: Int) => val result = eval.eval(i.toString) diff --git a/main/src/test/resources/new-format/1.sbt.txt b/main/src/test/resources/new-format/1.sbt.txt index c7aacc410..536d659a3 100644 --- a/main/src/test/resources/new-format/1.sbt.txt +++ b/main/src/test/resources/new-format/1.sbt.txt @@ -7,7 +7,7 @@ checkPom := { val tpe = pom \\ "type" if(!tpe.isEmpty) - error("Expected no sections, got: " + tpe + " in \n\n" + pom) + sys.error("Expected no sections, got: " + tpe + " in \n\n" + pom) } val b = ( ) val a = sections are ge val pom = xml.XML.loadFile(pomFile) val tpe = pom \\ "type" if(!tpe.isEmpty) - error("Expected no sections, got: " + tpe + " in \n\n" + pom) + sys.error("Expected no sections, got: " + tpe + " in \n\n" + pom) } val b = ( ) diff --git a/main/src/test/scala/ParseKey.scala b/main/src/test/scala/ParseKey.scala index 147b54bf2..6f1430d65 100644 --- a/main/src/test/scala/ParseKey.scala +++ b/main/src/test/scala/ParseKey.scala @@ -136,6 +136,8 @@ object ParseKey extends Properties("Key parser test") { structure <- f(scopes, env, current) } yield structure + // pickN is a function that randomly picks load % items from the from sequence. + // The rest of the tests expect at least one item, so I changed it to return 1 in case of 0. def pickN[T](load: Double, from: Seq[T]): Gen[Seq[T]] = - pick((load * from.size).toInt, from) + pick(Math.max((load * from.size).toInt, 1), from) } diff --git a/main/src/test/scala/sbt/internal/TestBuild.scala b/main/src/test/scala/sbt/internal/TestBuild.scala index bac5fa0ab..b76630d0d 100644 --- a/main/src/test/scala/sbt/internal/TestBuild.scala +++ b/main/src/test/scala/sbt/internal/TestBuild.scala @@ -12,7 +12,8 @@ import Gen._ // Notes: // Generator doesn't produce cross-build project dependencies or do anything with the 'extra' axis -object TestBuild { +object TestBuild extends TestBuild +abstract class TestBuild { val MaxTasks = 6 val MaxProjects = 7 val MaxConfigs = 5 @@ -32,6 +33,7 @@ object TestBuild { implicit val cGen = Arbitrary { genConfigs(idGen, MaxDepsGen, MaxConfigsGen) } implicit val tGen = Arbitrary { genTasks(idGen, MaxDepsGen, MaxTasksGen) } + val seed = rng.Seed.random final class Keys(val env: Env, val scopes: Seq[Scope]) { override def toString = env + "\n" + scopes.mkString("Scopes:\n\t", "\n\t", "") @@ -53,7 +55,13 @@ object TestBuild { new BuildUtil(keyIndex, data, env.root.uri, env.rootProject, getp, _.configurations.map(c => ConfigKey(c.name)), Relation.empty) } - lazy val allAttributeKeys: Set[AttributeKey[_]] = data.data.values.flatMap(_.keys).toSet + lazy val allAttributeKeys: Set[AttributeKey[_]] = { + val x = data.data.values.flatMap(_.keys).toSet + if (x.isEmpty) { + sys.error("allAttributeKeys is empty") + } + x + } lazy val (taskAxes, globalTaskAxis, onlyTaskAxis, multiTaskAxis) = { import collection.mutable @@ -170,6 +178,15 @@ object TestBuild { def structure(env: Env, settings: Seq[Setting[_]], current: ProjectRef): Structure = { implicit val display = Def.showRelativeKey(current, env.allProjects.size > 1) + if (settings.isEmpty) { + try { + sys.error("settings is empty") + } catch { + case e: Throwable => + e.printStackTrace + throw e + } + } val data = Def.make(settings)(env.delegates, const(Nil), display) val keys = data.allKeys((s, key) => ScopedKey(s, key)) val keyMap = keys.map(k => (k.key.label, k.key)).toMap[String, AttributeKey[_]] @@ -246,7 +263,7 @@ object TestBuild { genAcyclic(maxDeps, xs, next :: acc) } def sequence[T](gs: Seq[Gen[T]]): Gen[Seq[T]] = Gen.parameterized { prms => - wrap(gs map { g => g(prms) getOrElse sys.error("failed generator") }) + delay(gs map { g => g(prms, seed) getOrElse sys.error("failed generator") }) } type Inputs[A, T] = (T, Seq[T], Seq[A] => A) } diff --git a/main/src/test/scala/sbt/internal/parser/EmbeddedXmlSpec.scala b/main/src/test/scala/sbt/internal/parser/EmbeddedXmlSpec.scala index f6c1670bb..4b3d0b7db 100644 --- a/main/src/test/scala/sbt/internal/parser/EmbeddedXmlSpec.scala +++ b/main/src/test/scala/sbt/internal/parser/EmbeddedXmlSpec.scala @@ -129,7 +129,7 @@ class EmbeddedXmlSpec extends CheckIfParsedSpec { | val pom = xml.XML.loadFile(pomFile) | val tpe = pom \\ "type" | if(!tpe.isEmpty) - | error("Expected no sections, got: " + tpe + " in \n\n" + pom) + | sys.error("Expected no sections, got: " + tpe + " in \n\n" + pom) |} | | diff --git a/main/src/test/scala/sbt/internal/parser/ErrorSpec.scala b/main/src/test/scala/sbt/internal/parser/ErrorSpec.scala index 15751c094..66b47ac8d 100644 --- a/main/src/test/scala/sbt/internal/parser/ErrorSpec.scala +++ b/main/src/test/scala/sbt/internal/parser/ErrorSpec.scala @@ -9,7 +9,7 @@ import sbt.internal.util.MessageOnlyException import scala.io.Source -class ErrorSpec extends AbstractSpec with ScalaCheck { +class ErrorSpec extends AbstractSpec { implicit val splitter: SplitExpressions.SplitExpression = EvaluateConfigurations.splitExpressions "Parser " should { diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 42ce4cc75..10934b79d 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -7,6 +7,8 @@ object Dependencies { val scala293 = "2.9.3" val scala210 = "2.10.6" val scala211 = "2.11.8" + val scala212 = "2.12.1" + val baseScalaVersion = scala212 // sbt modules private val ioVersion = "1.0.0-M9" @@ -87,8 +89,8 @@ object Dependencies { val sjsonNewScalaJson = "com.eed3si9n" %% "sjson-new-scalajson" % "0.7.0" - val scalaCheck = "org.scalacheck" %% "scalacheck" % "1.11.4" - val specs2 = "org.specs2" %% "specs2" % "2.3.11" + val scalaCheck = "org.scalacheck" %% "scalacheck" % "1.13.4" + val specs2 = "org.specs2" %% "specs2" % "2.4.17" val junit = "junit" % "junit" % "4.11" private def scala211Module(name: String, moduleVersion: String) = Def setting ( diff --git a/project/Util.scala b/project/Util.scala index 4d8419e36..4be2870fa 100644 --- a/project/Util.scala +++ b/project/Util.scala @@ -32,7 +32,6 @@ object Util { "-language:implicitConversions", "-language:postfixOps", "-Xfuture", - "-Yinline-warnings", "-Yno-adapted-args", "-Ywarn-dead-code", "-Ywarn-numeric-widen", diff --git a/sbt/src/sbt-test/actions/aggregate/project/Marker.scala b/sbt/src/sbt-test/actions/aggregate/project/Marker.scala index 72f47b8fa..fa10c0bc4 100644 --- a/sbt/src/sbt-test/actions/aggregate/project/Marker.scala +++ b/sbt/src/sbt-test/actions/aggregate/project/Marker.scala @@ -11,7 +11,7 @@ object Marker extends AutoPlugin { final def mark(baseKey: SettingKey[File]): Initialize[Task[Unit]] = baseKey map { base => val toMark = base / "ran" if(toMark.exists) - error("Already ran (" + toMark + " exists)") + sys.error("Already ran (" + toMark + " exists)") else IO touch toMark } diff --git a/sbt/src/sbt-test/actions/cross-multiproject/build.sbt b/sbt/src/sbt-test/actions/cross-multiproject/build.sbt index 6414c5417..4d434aabd 100644 --- a/sbt/src/sbt-test/actions/cross-multiproject/build.sbt +++ b/sbt/src/sbt-test/actions/cross-multiproject/build.sbt @@ -1,18 +1,21 @@ lazy val rootProj = (project in file(".")). - aggregate(libProj, fooPlugin) + aggregate(libProj, fooPlugin). + settings( + scalaVersion := "2.12.1" + ) lazy val libProj = (project in file("lib")). settings( name := "foo-lib", - scalaVersion := "2.11.8", - crossScalaVersions := Seq("2.11.8", "2.10.4") + scalaVersion := "2.12.1", + crossScalaVersions := Seq("2.12.1", "2.11.8") ) lazy val fooPlugin =(project in file("sbt-foo")). settings( name := "sbt-foo", sbtPlugin := true, - scalaVersion := "2.10.4", - crossScalaVersions := Seq("2.10.4") + scalaVersion := "2.12.1", + crossScalaVersions := Seq("2.12.1") ) diff --git a/sbt/src/sbt-test/actions/cross-multiproject/test b/sbt/src/sbt-test/actions/cross-multiproject/test index 6c4f8282c..ea4079cf0 100644 --- a/sbt/src/sbt-test/actions/cross-multiproject/test +++ b/sbt/src/sbt-test/actions/cross-multiproject/test @@ -1,46 +1,38 @@ > + compile +$ exists lib/target/scala-2.12 $ exists lib/target/scala-2.11 -$ exists lib/target/scala-2.10 -$ exists sbt-foo/target/scala-2.10 +$ exists sbt-foo/target/scala-2.12 -$ exists sbt-foo/target/scala-2.11 > clean > + libProj/compile +$ exists lib/target/scala-2.12 $ exists lib/target/scala-2.11 -$ exists lib/target/scala-2.10 --$ exists sbt-foo/target/scala-2.10 +-$ exists sbt-foo/target/scala-2.12 -$ exists sbt-foo/target/scala-2.11 > clean -> ++ 2.11.1 compile - -$ exists lib/target/scala-2.11 --$ exists lib/target/scala-2.10 -$ exists sbt-foo/target/scala-2.10 --$ exists sbt-foo/target/scala-2.11 - -> clean -> ++ 2.10.4 compile +> ++ 2.12.1 compile +$ exists lib/target/scala-2.12 -$ exists lib/target/scala-2.11 -$ exists lib/target/scala-2.10 -$ exists sbt-foo/target/scala-2.10 +$ exists sbt-foo/target/scala-2.12 -$ exists sbt-foo/target/scala-2.11 > clean -> ++ 2.11.5 compile +> ++ 2.11.8 -v compile $ exists lib/target/scala-2.11 --$ exists lib/target/scala-2.10 -$ exists sbt-foo/target/scala-2.10 +-$ exists lib/target/scala-2.12 +# -$ exists sbt-foo/target/scala-2.12 -$ exists sbt-foo/target/scala-2.11 -> clean -> ++ 2.11.5! compile +# > clean +# > ++ 2.11.8! compile -$ exists lib/target/scala-2.11 --$ exists lib/target/scala-2.10 --$ exists sbt-foo/target/scala-2.10 -$ exists sbt-foo/target/scala-2.11 +# $ exists lib/target/scala-2.11 +# -$ exists lib/target/scala-2.12 +# -$ exists sbt-foo/target/scala-2.12 +# $ exists sbt-foo/target/scala-2.11 diff --git a/sbt/src/sbt-test/dependency-management/cache-classifiers/a/build.sbt b/sbt/src/sbt-test/dependency-management/cache-classifiers/a/build.sbt deleted file mode 100644 index 6a81f8446..000000000 --- a/sbt/src/sbt-test/dependency-management/cache-classifiers/a/build.sbt +++ /dev/null @@ -1,11 +0,0 @@ -organization := "org.example" - -name := "artifacta" - -version := "1.0.0-SNAPSHOT" - -publishArtifact in (Test,packageBin) := true - -publishTo := Some(MavenCache("demo", ((baseDirectory in ThisBuild).value / "demo-repo"))) - -//Resolver.file("demo", (baseDirectory in ThisBuild).value / "demo-repo")) diff --git a/sbt/src/sbt-test/dependency-management/cache-classifiers/b/build.sbt b/sbt/src/sbt-test/dependency-management/cache-classifiers/b/build.sbt deleted file mode 100644 index b57c5eff7..000000000 --- a/sbt/src/sbt-test/dependency-management/cache-classifiers/b/build.sbt +++ /dev/null @@ -1,7 +0,0 @@ -libraryDependencies += "org.example" %% "artifacta" % "1.0.0-SNAPSHOT" withSources() classifier("tests") - -externalResolvers := Seq( - MavenCache("demo", ((baseDirectory in ThisBuild).value / "demo-repo")), - DefaultMavenRepository -) - diff --git a/sbt/src/sbt-test/dependency-management/cache-classifiers/changes/B.scala b/sbt/src/sbt-test/dependency-management/cache-classifiers/changes/B.scala index 6ba7a4620..2da077284 100644 --- a/sbt/src/sbt-test/dependency-management/cache-classifiers/changes/B.scala +++ b/sbt/src/sbt-test/dependency-management/cache-classifiers/changes/B.scala @@ -1,3 +1,3 @@ -object B { +object B { val y = A.x } diff --git a/sbt/src/sbt-test/dependency-management/cache-classifiers/multi.sbt b/sbt/src/sbt-test/dependency-management/cache-classifiers/multi.sbt index dbcfe5915..a831ce37b 100644 --- a/sbt/src/sbt-test/dependency-management/cache-classifiers/multi.sbt +++ b/sbt/src/sbt-test/dependency-management/cache-classifiers/multi.sbt @@ -1,6 +1,24 @@ -def localCache = +def localCache = ivyPaths := IvyPaths(baseDirectory.value, Some((baseDirectory in ThisBuild).value / "ivy" / "cache")) -val b = project.settings(localCache) +val b = project + .settings( + localCache, + scalaVersion := "2.11.8", + libraryDependencies += "org.example" %% "artifacta" % "1.0.0-SNAPSHOT" withSources() classifier("tests"), + externalResolvers := Seq( + MavenCache("demo", ((baseDirectory in ThisBuild).value / "demo-repo")), + DefaultMavenRepository + ) + ) -val a = project.settings(localCache) +val a = project + .settings( + localCache, + scalaVersion := "2.11.8", + organization := "org.example", + name := "artifacta", + version := "1.0.0-SNAPSHOT", + publishArtifact in (Test,packageBin) := true, + publishTo := Some(MavenCache("demo", ((baseDirectory in ThisBuild).value / "demo-repo"))) + ) diff --git a/sbt/src/sbt-test/dependency-management/force/build.sbt b/sbt/src/sbt-test/dependency-management/force/build.sbt index 7405ef609..1f43a10f4 100644 --- a/sbt/src/sbt-test/dependency-management/force/build.sbt +++ b/sbt/src/sbt-test/dependency-management/force/build.sbt @@ -17,5 +17,5 @@ def check(ver: String) = case f if f.getName contains "log4j-" => f.getName } if (log4j.size != 1 || !log4j.head.contains(ver)) - error("Did not download the correct jar.") + sys.error("Did not download the correct jar.") } diff --git a/sbt/src/sbt-test/dependency-management/pom-advanced/build.sbt b/sbt/src/sbt-test/dependency-management/pom-advanced/build.sbt index cefcdd3da..7ca4464e7 100644 --- a/sbt/src/sbt-test/dependency-management/pom-advanced/build.sbt +++ b/sbt/src/sbt-test/dependency-management/pom-advanced/build.sbt @@ -29,5 +29,5 @@ def checkPomRepositories(file: File, args: Seq[String], s: TaskStreams) s.log.info("Extracted: " + extracted.mkString("\n\t", "\n\t", "\n")) s.log.info("Expected: " + args.mkString("\n\t", "\n\t", "\n")) extracted.find { e => !expected.exists(_.accept(e.root)) } map { "Repository should not be exported: " + _ } orElse - (expected.find { e => !extracted.exists(r => e.accept(r.root)) } map { "Repository should be exported: " + _ } ) foreach error + (expected.find { e => !extracted.exists(r => e.accept(r.root)) } map { "Repository should be exported: " + _ } ) foreach sys.error } diff --git a/sbt/src/sbt-test/dependency-management/snapshot-resolution/build.sbt b/sbt/src/sbt-test/dependency-management/snapshot-resolution/build.sbt index f0846cc85..90b3c2812 100644 --- a/sbt/src/sbt-test/dependency-management/snapshot-resolution/build.sbt +++ b/sbt/src/sbt-test/dependency-management/snapshot-resolution/build.sbt @@ -12,6 +12,7 @@ lazy val sharedResolver: Resolver = { lazy val common = project. settings(customIvyPaths: _*). settings( + scalaVersion := "2.11.8", organization := "com.badexample", name := "badexample", version := "1.0-SNAPSHOT", @@ -29,6 +30,7 @@ lazy val common = project. lazy val dependent = project. settings(customIvyPaths: _*). settings( + scalaVersion := "2.11.8", // Uncomment the following to test the before/after // updateOptions := updateOptions.value.withLatestSnapshots(false), // Ignore the inter-project resolver, so we force to look remotely. diff --git a/sbt/src/sbt-test/dependency-management/t468/build.sbt b/sbt/src/sbt-test/dependency-management/t468/build.sbt index 4574cbc61..6609420ca 100644 --- a/sbt/src/sbt-test/dependency-management/t468/build.sbt +++ b/sbt/src/sbt-test/dependency-management/t468/build.sbt @@ -12,7 +12,7 @@ TaskKey[Unit]("checkUpdate") := { val mods = report.configuration(Compile.name).get.allModules.map(_.name).toSet val expected = Set("org.sat4j.pb", "org.sat4j.core") if(mods != expected) - error("Expected modules " + expected + ", got: " + mods) + sys.error("Expected modules " + expected + ", got: " + mods) } TaskKey[Unit]("checkClasspath") := (dependencyClasspath in Compile map { cp => @@ -20,5 +20,5 @@ TaskKey[Unit]("checkClasspath") := (dependencyClasspath in Compile map { cp => // Note: pb depends on tests artifact in core for no good reason. Previously this was not correctly added to the classpath. val expected = Set("org.sat4j.pb-2.3.1.jar", "org.sat4j.core-2.3.1.jar", "org.sat4j.core-2.3.1-tests.jar") if(jars != expected) - error("Expected jars " + expected + ", got: " + jars) + sys.error("Expected jars " + expected + ", got: " + jars) }).value diff --git a/sbt/src/sbt-test/java/track-anonymous/build.sbt b/sbt/src/sbt-test/java/track-anonymous/build.sbt index edcc050ff..b0c61b63f 100644 --- a/sbt/src/sbt-test/java/track-anonymous/build.sbt +++ b/sbt/src/sbt-test/java/track-anonymous/build.sbt @@ -5,9 +5,9 @@ val shouldExist = parser.parsed val dir = (classDirectory in Compile).value if((dir / "Anon.class").exists != shouldExist) - error("Top level class incorrect" ) + sys.error("Top level class incorrect" ) else if( (dir / "Anon$1.class").exists != shouldExist) - error("Inner class incorrect" ) + sys.error("Inner class incorrect" ) else () } diff --git a/sbt/src/sbt-test/project/default-settings/build.sbt b/sbt/src/sbt-test/project/default-settings/build.sbt index eb3cb4c16..d910b30ac 100644 --- a/sbt/src/sbt-test/project/default-settings/build.sbt +++ b/sbt/src/sbt-test/project/default-settings/build.sbt @@ -2,7 +2,7 @@ val root = (project in file(".")) TaskKey[Unit]("checkScalaVersion", "test") := { val sv = scalaVersion.value - assert(sv startsWith "2.11.", s"Found $sv!") + assert(sv startsWith "2.12.", s"Found $sv!") } TaskKey[Unit]("checkArtifacts", "test") := { diff --git a/sbt/src/sbt-test/project/generated-root-no-publish/test b/sbt/src/sbt-test/project/generated-root-no-publish/test index 9b428f03a..bbe00c95c 100644 --- a/sbt/src/sbt-test/project/generated-root-no-publish/test +++ b/sbt/src/sbt-test/project/generated-root-no-publish/test @@ -1,10 +1,10 @@ > publishLocal -$ exists target/ivy-cache/local/com.example/app_2.11/0.1.0/poms/app_2.11.pom -$ exists target/ivy-cache/local/com.example/app_2.11/0.1.0/jars/app_2.11.jar -$ absent target/ivy-cache/local/com.example/default-root_2.11/0.1.0/ivys/ivy.xml +$ exists target/ivy-cache/local/com.example/app_2.12/0.1.0/poms/app_2.12.pom +$ exists target/ivy-cache/local/com.example/app_2.12/0.1.0/jars/app_2.12.jar +$ absent target/ivy-cache/local/com.example/default-root_2.12/0.1.0/ivys/ivy.xml $ copy-file changes/bare.sbt build.sbt > reload > publishLocal -$ exists target/ivy-cache/local/com.example/generated-root-no-publish_2.11/0.1.0/poms/generated-root-no-publish_2.11.pom -$ exists target/ivy-cache/local/com.example/generated-root-no-publish_2.11/0.1.0/jars/generated-root-no-publish_2.11.jar +$ exists target/ivy-cache/local/com.example/generated-root-no-publish_2.12/0.1.0/poms/generated-root-no-publish_2.12.pom +$ exists target/ivy-cache/local/com.example/generated-root-no-publish_2.12/0.1.0/jars/generated-root-no-publish_2.12.jar diff --git a/sbt/src/sbt-test/run/error/changes/RunFailureMain.scala b/sbt/src/sbt-test/run/error/changes/RunFailureMain.scala index 2971eabbe..d4e6faf42 100644 --- a/sbt/src/sbt-test/run/error/changes/RunFailureMain.scala +++ b/sbt/src/sbt-test/run/error/changes/RunFailureMain.scala @@ -2,6 +2,6 @@ object Spawn { def main(args: Array[String]) { - error("Test error main") + sys.error("Test error main") } } \ No newline at end of file diff --git a/sbt/src/sbt-test/run/fork-loader/build.sbt b/sbt/src/sbt-test/run/fork-loader/build.sbt index a542a2d90..7cc4c62d5 100644 --- a/sbt/src/sbt-test/run/fork-loader/build.sbt +++ b/sbt/src/sbt-test/run/fork-loader/build.sbt @@ -1,5 +1,7 @@ -name := "forked-test" - -organization := "org.example" - -libraryDependencies += "org.scalacheck" %% "scalacheck" % "1.10.0" % "test" \ No newline at end of file +lazy val root = (project in file(".")) + .settings( + scalaVersion in ThisBuild := "2.11.8", + name := "forked-test", + organization := "org.example", + libraryDependencies += "org.scalacheck" %% "scalacheck" % "1.10.0" % Test + ) diff --git a/sbt/src/sbt-test/run/spawn/src/main/scala/Spawn.scala b/sbt/src/sbt-test/run/spawn/src/main/scala/Spawn.scala index 26085748e..762e029f8 100644 --- a/sbt/src/sbt-test/run/spawn/src/main/scala/Spawn.scala +++ b/sbt/src/sbt-test/run/spawn/src/main/scala/Spawn.scala @@ -23,7 +23,7 @@ object Spawn catch { case e: InterruptedException => val msg = "TrapExit improperly interrupted non-daemon thread" System.err.println(msg) - error(msg) + sys.error(msg) } } } diff --git a/sbt/src/sbt-test/source-dependencies/binary/build.sbt b/sbt/src/sbt-test/source-dependencies/binary/build.sbt index 27d7016cc..08fb1e21d 100644 --- a/sbt/src/sbt-test/source-dependencies/binary/build.sbt +++ b/sbt/src/sbt-test/source-dependencies/binary/build.sbt @@ -1,3 +1,5 @@ +scalaVersion in ThisBuild := "2.11.8" + lazy val dep = project lazy val use = project. diff --git a/sbt/src/sbt-test/source-dependencies/inherited_type_params/A.scala b/sbt/src/sbt-test/source-dependencies/inherited_type_params/A.scala index 9de61dd5f..ba2f3a2c4 100644 --- a/sbt/src/sbt-test/source-dependencies/inherited_type_params/A.scala +++ b/sbt/src/sbt-test/source-dependencies/inherited_type_params/A.scala @@ -3,5 +3,5 @@ trait Equal[-A] { def equal(a1: A, a2: A): Boolean } object Test { - implicit def TraversableEqual[CC[X] <: collection.TraversableLike[X, CC[X]] with Traversable[X], A: Equal]: Equal[CC[A]] = error("") + implicit def TraversableEqual[CC[X] <: collection.TraversableLike[X, CC[X]] with Traversable[X], A: Equal]: Equal[CC[A]] = sys.error("") } \ No newline at end of file diff --git a/sbt/src/sbt-test/tests/arguments/build.sbt b/sbt/src/sbt-test/tests/arguments/build.sbt index 34c601886..18128aaac 100644 --- a/sbt/src/sbt-test/tests/arguments/build.sbt +++ b/sbt/src/sbt-test/tests/arguments/build.sbt @@ -1,13 +1,19 @@ -libraryDependencies += "org.scalatest" % "scalatest_2.10.0-RC3" % "1.8-B1" % "test" +val scalatest = "org.scalatest" %% "scalatest" % "3.0.1" - -testOptions in Configurations.Test ++= { - def args(path: String, args: String*): Seq[TestOption] = if(file(path).exists) Tests.Argument(args : _*) :: Nil else Nil -// - args("success1", "-n", "test2 test3") ++ - args("success2", "-n", "test2") ++ - args("success3", "-n", "test3") ++ - args("failure1", "-n", "test1") ++ - args("failure2", "-n", "test1 test4") ++ - args("failure3", "-n", "test1 test3") -} \ No newline at end of file +lazy val root = (project in file(".")) + .settings( + scalaVersion in ThisBuild := "2.11.8", + libraryDependencies += scalatest % Test, + // testOptions in Test += Tests.Argument(TestFrameworks.ScalaTest, "-f", "result.txt", "-eNDXEHLO") + testOptions in Configurations.Test ++= { + def args(path: String, args: String*): Seq[TestOption] = + if(file(path).exists) Tests.Argument(args : _*) :: Nil + else Nil + args("success1", "-n", "test2 test3") ++ + args("success2", "-n", "test2") ++ + args("success3", "-n", "test3") ++ + args("failure1", "-n", "test1") ++ + args("failure2", "-n", "test1 test4") ++ + args("failure3", "-n", "test1 test3") + } + ) diff --git a/sbt/src/sbt-test/tests/arguments/src/test/scala/ArgumentTest.scala b/sbt/src/sbt-test/tests/arguments/src/test/scala/ArgumentTest.scala index 62a4ef4a0..896e54148 100644 --- a/sbt/src/sbt-test/tests/arguments/src/test/scala/ArgumentTest.scala +++ b/sbt/src/sbt-test/tests/arguments/src/test/scala/ArgumentTest.scala @@ -1,12 +1,19 @@ - -import org.scalatest.fixture.FixtureFunSuite +import org.scalatest._ import org.scalatest.Tag +import org.scalatest.fixture -class ArgumentTest extends FixtureFunSuite{ +class ArgumentTest extends fixture.FunSuite { type FixtureParam = Map[String,Any] - override def withFixture(test: OneArgTest): Unit = { - test(test.configMap) + + override def withFixture(test: OneArgTest) = { + // Perform setup + val theFixture = test.configMap + try withFixture(test.toNoArgTest(theFixture)) // Invoke the test function + finally { + // Perform cleanup + } } + test("1", Tag("test1")){ conf => sys.error("error #1") } test("2", Tag("test2")){ conf => () } test("3", Tag("test3")){ conf => () } diff --git a/sbt/src/sbt-test/tests/fork-test-group-parallel/build.sbt b/sbt/src/sbt-test/tests/fork-test-group-parallel/build.sbt index 12b577589..549691d2c 100644 --- a/sbt/src/sbt-test/tests/fork-test-group-parallel/build.sbt +++ b/sbt/src/sbt-test/tests/fork-test-group-parallel/build.sbt @@ -1,7 +1,6 @@ +scalaVersion in ThisBuild := "2.11.8" concurrentRestrictions in Global := Seq(Tags.limitAll(4)) - libraryDependencies += "org.specs2" %% "specs2-core" % "3.8.4" % Test - inConfig(Test)(Seq( testGrouping := definedTests.value.map { test => new Tests.Group(test.name, Seq(test), Tests.SubProcess( ForkOptions( diff --git a/sbt/src/sbt-test/tests/order/build.sbt b/sbt/src/sbt-test/tests/order/build.sbt index d6f36add2..48f571f7c 100644 --- a/sbt/src/sbt-test/tests/order/build.sbt +++ b/sbt/src/sbt-test/tests/order/build.sbt @@ -1,3 +1,4 @@ +scalaVersion in ThisBuild := "2.11.8" parallelExecution in Test := false +libraryDependencies += "org.scalacheck" %% "scalacheck" % "1.10.0" % Test -libraryDependencies += "org.scalacheck" %% "scalacheck" % "1.10.0" % "test" diff --git a/sbt/src/sbt-test/tests/source-directory-name/test b/sbt/src/sbt-test/tests/source-directory-name/test index 23b3323ba..9fc35bcff 100644 --- a/sbt/src/sbt-test/tests/source-directory-name/test +++ b/sbt/src/sbt-test/tests/source-directory-name/test @@ -1,2 +1,2 @@ > compile -$ exists target/scala-2.11/classes/ch/epfl/scala/Client.class +$ exists target/scala-2.12/classes/ch/epfl/scala/Client.class