summaryrefslogtreecommitdiff
path: root/core/src/test
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2017-11-25 10:20:54 -0800
committerLi Haoyi <haoyi.sg@gmail.com>2017-11-25 10:20:54 -0800
commit9078ec7ae84327d88b4cfdab489cdde5033057da (patch)
tree32e2636091016b68ce490880c09ba1fedc097c2c /core/src/test
parent60d7b68ed6c1d0a86d05668f040f73ee619ddde8 (diff)
downloadmill-9078ec7ae84327d88b4cfdab489cdde5033057da.tar.gz
mill-9078ec7ae84327d88b4cfdab489cdde5033057da.tar.bz2
mill-9078ec7ae84327d88b4cfdab489cdde5033057da.zip
First pass at some cross-build resolving tests, not all passing yet
Diffstat (limited to 'core/src/test')
-rw-r--r--core/src/test/scala/mill/main/MainTests.scala67
1 files changed, 65 insertions, 2 deletions
diff --git a/core/src/test/scala/mill/main/MainTests.scala b/core/src/test/scala/mill/main/MainTests.scala
index de7cfd7d..845e0970 100644
--- a/core/src/test/scala/mill/main/MainTests.scala
+++ b/core/src/test/scala/mill/main/MainTests.scala
@@ -10,9 +10,11 @@ object MainTests extends TestSuite{
def check[T: Discovered](obj: T,
selectorString: String,
expected: Either[String, Task[_]]) = {
+ val mirror = implicitly[Discovered[T]].mirror
val resolved = for{
args <- mill.Main.parseArgs(selectorString)
- task <- mill.Main.resolve(args, implicitly[Discovered[T]].mirror, obj, Nil, Nil, Nil)
+ crossSelectors = args.collect{case Right(x) => x.toList}
+ task <- mill.Main.resolve(args, mirror, obj, Nil, crossSelectors, Nil)
} yield task
assert(resolved == expected)
}
@@ -35,7 +37,6 @@ object MainTests extends TestSuite{
val single = test()
}
val classInstance = new CanNest
-
}
'pos1 - check(outer, "single", Right(outer.single))
'pos2 - check(outer, "nested.single", Right(outer.nested.single))
@@ -45,5 +46,67 @@ object MainTests extends TestSuite{
'neg3 - check(outer, "nested.doesntExist", Left("Cannot resolve task nested.doesntExist"))
'neg4 - check(outer, "classInstance.doesntExist", Left("Cannot resolve task classInstance.doesntExist"))
}
+ 'cross - {
+ 'single - {
+ object outer{
+ val cross =
+ for(jarLabel <- mill.define.Cross("jarA", "jarB", "jarC"))
+ yield new mill.Module{
+ val target = test()
+ }
+ }
+ 'pos1 - check(outer, "cross[jarA].target", Right(outer.cross(List("jarA")).target))
+ 'pos2 - check(outer, "cross[jarB].target", Right(outer.cross(List("jarB")).target))
+ 'neg1 - check(outer, "cross[jarA].doesntExist", Left("Cannot resolve task cross[jarA].doesntExist"))
+ // 'neg2 - check(outer, "cross[doesntExist].doesntExist", Left("Cannot resolve cross cross[doesntExist]"))
+ // 'neg2 - check(outer, "cross[doesntExist].target", Left("Cannot resolve cross cross[doesntExist]"))
+ }
+ 'double - {
+ object outer{
+ val cross =
+ for{
+ jarLabel <- mill.define.Cross("jarA", "jarB", "jarC")
+ tag <- mill.define.Cross("jvm", "js", "native")
+ } yield new mill.Module{
+ val target = test()
+ }
+ }
+ 'pos1 - check(
+ outer,
+ "cross[jvm,jarA].target",
+ Right(outer.cross(List("jvm", "jarA")).target)
+ )
+ 'pos2 - check(
+ outer,
+ "cross[jvm,jarB].target",
+ Right(outer.cross(List("jvm", "jarB")).target)
+ )
+ }
+ 'nested - {
+ object outer{
+ val cross =
+ for(jarLabel <- mill.define.Cross("jarA", "jarB", "jarC"))
+ yield new mill.Module{
+ val cross2 =
+ for(tag <- mill.define.Cross("jvm", "js", "native"))
+ yield new mill.Module{
+ val target = test()
+ }
+
+ }
+ }
+ 'pos1 - check(
+ outer,
+ "cross[jarA].cross2[js].target",
+ Right(outer.cross(List("jarA")).cross2(List("js")).target)
+ )
+ 'pos2 - check(
+ outer,
+ "cross[jarB].cross2[jvm].target",
+ Right(outer.cross(List("jarB")).cross2(List("jvm")).target)
+ )
+ }
+ }
+
}
}