diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2017-11-25 10:20:54 -0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2017-11-25 10:20:54 -0800 |
commit | 9078ec7ae84327d88b4cfdab489cdde5033057da (patch) | |
tree | 32e2636091016b68ce490880c09ba1fedc097c2c /core/src/test | |
parent | 60d7b68ed6c1d0a86d05668f040f73ee619ddde8 (diff) | |
download | mill-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.scala | 67 |
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) + ) + } + } + } } |