summaryrefslogtreecommitdiff
path: root/scalaplugin/src/test
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2017-11-03 23:44:39 -0700
committerLi Haoyi <haoyi.sg@gmail.com>2017-11-03 23:44:39 -0700
commit13270145903b457c906a9fa77bd152afb6448ef5 (patch)
treee85b7ed530e0c8e3c3041cbf17641857c448b602 /scalaplugin/src/test
parent66f1c5c2438aeb8f2496575f52c25b09cf5793a6 (diff)
downloadmill-13270145903b457c906a9fa77bd152afb6448ef5.tar.gz
mill-13270145903b457c906a9fa77bd152afb6448ef5.tar.bz2
mill-13270145903b457c906a9fa77bd152afb6448ef5.zip
Split up forge into `scalaplugin` an `core` subprojects, to allow us to use the `T#apply` macro in the implementation of `scalaplugin.Subproject`
Also needed to implement inter-`Subproject` dependencies so the `MetacircularTests` can continue to support the new layout
Diffstat (limited to 'scalaplugin/src/test')
-rw-r--r--scalaplugin/src/test/scala/forge/scalaplugin/MetacircularTests.scala68
1 files changed, 68 insertions, 0 deletions
diff --git a/scalaplugin/src/test/scala/forge/scalaplugin/MetacircularTests.scala b/scalaplugin/src/test/scala/forge/scalaplugin/MetacircularTests.scala
new file mode 100644
index 00000000..05dd0dbd
--- /dev/null
+++ b/scalaplugin/src/test/scala/forge/scalaplugin/MetacircularTests.scala
@@ -0,0 +1,68 @@
+package forge
+package scalaplugin
+
+import ammonite.ops.pwd
+import coursier.{Dependency => Dep, Module => Mod}
+import forge.util.{OSet, PathRef}
+import utest._
+
+object MetacircularTests extends TestSuite{
+ object Core extends Subproject {
+ val scalaVersion = T{ "2.12.4" }
+ override val compileIvyDeps = T{
+ Seq(
+ Dep(Mod("org.scala-lang", "scala-reflect"), scalaVersion(), configuration = "provided")
+ )
+ }
+
+ override val ivyDeps = T{
+ Seq(
+ Dep(Mod("com.lihaoyi", "sourcecode_" + scalaBinaryVersion()), "0.1.4"),
+ Dep(Mod("com.lihaoyi", "pprint_" + scalaBinaryVersion()), "0.5.3"),
+ Dep(Mod("com.lihaoyi", "ammonite_" + scalaVersion()), "1.0.3"),
+ Dep(Mod("com.typesafe.play", "play-json_" + scalaBinaryVersion()), "2.6.6"),
+ Dep(Mod("org.scala-sbt", "zinc_" + scalaBinaryVersion()), "1.0.3")
+ )
+ }
+
+
+ val basePath = T{ pwd / 'core }
+ override val sources = T{ PathRef(pwd/'core/'src/'main/'scala) }
+ override val resources = T{ sources }
+ }
+ object ScalaPlugin extends Subproject {
+ val scalaVersion = T.apply{ "2.12.4" }
+
+ override val ivyDeps = T{
+ Seq(
+ Dep(Mod("com.lihaoyi", "sourcecode_" + scalaBinaryVersion()), "0.1.4"),
+ Dep(Mod("com.lihaoyi", "pprint_" + scalaBinaryVersion()), "0.5.3"),
+ Dep(Mod("com.lihaoyi", "ammonite_" + scalaVersion()), "1.0.3"),
+ Dep(Mod("com.typesafe.play", "play-json_" + scalaBinaryVersion()), "2.6.6"),
+ Dep(Mod("org.scala-sbt", "zinc_" + scalaBinaryVersion()), "1.0.3")
+ )
+ }
+
+
+ override val depClasspath = T{ Seq(Core.compiled()) }
+ val basePath = T{ pwd / 'scalaplugin }
+ override val sources = T{ PathRef(pwd/'scalaplugin/'src/'main/'scala) }
+ override val resources = T{ sources }
+ }
+
+ val tests = Tests{
+ 'scalac {
+ val workspacePath = pwd / 'target / 'workspace / 'meta
+ val mapping = Discovered.mapping(MetacircularTests)
+ val evaluator = new Evaluator(workspacePath, mapping)
+// val evaluated1 = evaluator.evaluate(OSet(Self.scalaVersion)).evaluated.collect(mapping)
+// val evaluated2 = evaluator.evaluate(OSet(Self.scalaBinaryVersion)).evaluated.collect(mapping)
+// val evaluated3 = evaluator.evaluate(OSet(Self.compileDeps)).evaluated.collect(mapping)
+// val evaluated4 = evaluator.evaluate(OSet(Self.deps)).evaluated.collect(mapping)
+ val evaluated5 = evaluator.evaluate(OSet(Core.compiled)).evaluated.collect(mapping)
+ val evaluated6 = evaluator.evaluate(OSet(ScalaPlugin.compiled)).evaluated.collect(mapping)
+// evaluated3
+ }
+ }
+}
+