From 6c58e2da2dabb77b73f7699a2691d9f563e42888 Mon Sep 17 00:00:00 2001 From: Dale Wijnand Date: Mon, 7 Aug 2017 16:05:05 +0100 Subject: [PATCH] Dedup check task in project/cross-plugins-defaults --- .../project/cross-plugins-defaults/build.sbt | 46 +++++++------------ 1 file changed, 17 insertions(+), 29 deletions(-) diff --git a/sbt/src/sbt-test/project/cross-plugins-defaults/build.sbt b/sbt/src/sbt-test/project/cross-plugins-defaults/build.sbt index 8bd47a1e2..12820688c 100644 --- a/sbt/src/sbt-test/project/cross-plugins-defaults/build.sbt +++ b/sbt/src/sbt-test/project/cross-plugins-defaults/build.sbt @@ -8,35 +8,23 @@ lazy val root = (project in file(".")) .settings( sbtPlugin := true, - TaskKey[Unit]("check") := { - val crossV = (sbtVersion in pluginCrossBuild).value - val sv = projectID.value.extraAttributes("e:scalaVersion") - assert(sbtVersion.value startsWith baseSbt, s"Wrong sbt version: ${sbtVersion.value}") - assert(sv == "2.12", s"Wrong e:scalaVersion: $sv") - assert(scalaBinaryVersion.value == "2.12", s"Wrong Scala binary version: ${scalaBinaryVersion.value}") - assert(crossV startsWith "1.0.", s"Wrong `sbtVersion in pluginCrossBuild`: $crossV") - - // crossScalaVersions in app should not be affected - val appCrossScalaVersions = (crossScalaVersions in app).value.toList - val appScalaVersion = (scalaVersion in app).value - assert(appCrossScalaVersions == buildCrossList, s"Wrong `crossScalaVersions in app`: $appCrossScalaVersions") - assert(appScalaVersion startsWith "2.12", s"Wrong `scalaVersion in app`: $appScalaVersion") - }, - - TaskKey[Unit]("check2") := { - val crossV = (sbtVersion in pluginCrossBuild).value - val sv = projectID.value.extraAttributes("e:scalaVersion") - assert(sbtVersion.value startsWith baseSbt, s"Wrong sbt version: ${sbtVersion.value}") - assert(sv == "2.10", s"Wrong e:scalaVersion: $sv") - assert(scalaBinaryVersion.value == "2.10", s"Wrong Scala binary version: ${scalaBinaryVersion.value}") - assert(crossV startsWith "0.13", s"Wrong `sbtVersion in pluginCrossBuild`: $crossV") - - // ^^ should not affect app's crossScalaVersions - val appCrossScalaVersions = (crossScalaVersions in app).value.toList - val appScalaVersion = (scalaVersion in app).value - assert(appCrossScalaVersions == buildCrossList, s"Wrong `crossScalaVersions in app`: $appCrossScalaVersions") - assert(appScalaVersion startsWith "2.12", s"Wrong `scalaVersion in app`: $appScalaVersion") - } + TaskKey[Unit]("check") := mkCheck("2.12", "1.0").value, + TaskKey[Unit]("check2") := mkCheck("2.10", "0.13").value ) lazy val app = (project in file("app")) + +def mkCheck(scalaBinV: String, sbtBinVer: String) = Def task { + val crossV = (sbtVersion in pluginCrossBuild).value + val sv = projectID.value.extraAttributes("e:scalaVersion") + assert(sbtVersion.value startsWith baseSbt, s"Wrong sbt version: ${sbtVersion.value}") + assert(sv == scalaBinV, s"Wrong e:scalaVersion: $sv") + assert(scalaBinaryVersion.value == scalaBinV, s"Wrong Scala binary version: ${scalaBinaryVersion.value}") + assert(crossV startsWith sbtBinVer, s"Wrong `sbtVersion in pluginCrossBuild`: $crossV") + + // crossScalaVersions in app should not be affected, per se or after ^^ + val appCrossScalaVersions = (crossScalaVersions in app).value.toList + val appScalaVersion = (scalaVersion in app).value + assert(appCrossScalaVersions == buildCrossList, s"Wrong `crossScalaVersions in app`: $appCrossScalaVersions") + assert(appScalaVersion startsWith "2.12", s"Wrong `scalaVersion in app`: $appScalaVersion") +}