diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2018-01-15 11:39:00 -0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-01-15 11:43:48 -0800 |
commit | e5c313e12faf3ccf90aa7f69eb2eb16f8add782f (patch) | |
tree | 707bb843399219177023e43e680b6f0ad45544ec /core/src | |
parent | 09bdc885cf6d07a531e78827f168affb31fa90b5 (diff) | |
download | mill-e5c313e12faf3ccf90aa7f69eb2eb16f8add782f.tar.gz mill-e5c313e12faf3ccf90aa7f69eb2eb16f8add782f.tar.bz2 mill-e5c313e12faf3ccf90aa7f69eb2eb16f8add782f.zip |
Add some test cases for nested target discovery, which also implicitly tests nested module discovery
Diffstat (limited to 'core/src')
-rw-r--r-- | core/src/main/scala/mill/define/Module.scala | 6 | ||||
-rw-r--r-- | core/src/test/scala/mill/define/BasePathTests.scala | 4 | ||||
-rw-r--r-- | core/src/test/scala/mill/define/DiscoverTests.scala | 60 | ||||
-rw-r--r-- | core/src/test/scala/mill/util/TestGraphs.scala | 5 |
4 files changed, 67 insertions, 8 deletions
diff --git a/core/src/main/scala/mill/define/Module.scala b/core/src/main/scala/mill/define/Module.scala index 33d0e267..3d3bb87c 100644 --- a/core/src/main/scala/mill/define/Module.scala +++ b/core/src/main/scala/mill/define/Module.scala @@ -43,12 +43,12 @@ object Module{ lazy val segmentsToModules = traverse{m => Seq(m.millModuleSegments -> m)} .toMap - lazy val segmentsToTargets = traverse{_.millInternal.reflect[Target[_]]} + lazy val targets = traverse{_.millInternal.reflect[Target[_]]}.toSet + + lazy val segmentsToTargets = targets .map(t => (t.ctx.segments, t)) .toMap - lazy val targets = segmentsToTargets.valuesIterator.toSet - // Ensure we do not propagate the implicit parameters as implicits within // the body of any inheriting class/trait/objects, as it would screw up any // one else trying to use sourcecode.{Enclosing,Line} to capture debug info diff --git a/core/src/test/scala/mill/define/BasePathTests.scala b/core/src/test/scala/mill/define/BasePathTests.scala index df528cc4..577b89c8 100644 --- a/core/src/test/scala/mill/define/BasePathTests.scala +++ b/core/src/test/scala/mill/define/BasePathTests.scala @@ -12,11 +12,9 @@ object BasePathTests extends TestSuite{ } 'singleton - { check(testGraphs.singleton, "singleton") - check(testGraphs.singleton, "singleton") - } 'separateGroups - { - check(TestGraphs.separateGroups, "separateGroups") + check(TestGraphs.triangleTask, "triangleTask") } 'TraitWithModuleObject - { check(TestGraphs.TraitWithModuleObject.TraitModule, diff --git a/core/src/test/scala/mill/define/DiscoverTests.scala b/core/src/test/scala/mill/define/DiscoverTests.scala new file mode 100644 index 00000000..7621169a --- /dev/null +++ b/core/src/test/scala/mill/define/DiscoverTests.scala @@ -0,0 +1,60 @@ +package mill.define + +import mill.util.TestGraphs +import utest._ + +object DiscoverTests extends TestSuite{ + val testGraphs = new TestGraphs + val tests = Tests{ + def check[T <: Module](m: T)(targets: (T => Target[_])*) = { + val discovered = m.millInternal.targets + val expected = targets.map(_(m)).toSet + assert(discovered == expected) + } + 'singleton - { + check(testGraphs.singleton)(_.single) + } + 'separateGroups - { + check(TestGraphs.triangleTask)(_.left, _.right) + } + 'TraitWithModuleObject - { + check(TestGraphs.TraitWithModuleObject)(_.TraitModule.testFramework) + } + 'nestedModule - { + check(TestGraphs.nestedModule)(_.single, _.nested.single, _.classInstance.single) + } + 'singleCross - { + check(TestGraphs.singleCross)( + _.cross("210").suffix, + _.cross("211").suffix, + _.cross("212").suffix + ) + } + 'doubleCross - { + check(TestGraphs.doubleCross)( + _.cross("210", "jvm").suffix, + _.cross("210", "js").suffix, + _.cross("211", "jvm").suffix, + _.cross("211", "js").suffix, + _.cross("212", "jvm").suffix, + _.cross("212", "js").suffix, + _.cross("212", "native").suffix + ) + } + 'nestedCrosses - { + check(TestGraphs.nestedCrosses)( + _.cross("210").cross2("jvm").suffix, + _.cross("210").cross2("js").suffix, + _.cross("210").cross2("native").suffix, + _.cross("211").cross2("jvm").suffix, + _.cross("211").cross2("js").suffix, + _.cross("211").cross2("native").suffix, + _.cross("212").cross2("jvm").suffix, + _.cross("212").cross2("js").suffix, + _.cross("212").cross2("native").suffix + ) + } + + } +} + diff --git a/core/src/test/scala/mill/util/TestGraphs.scala b/core/src/test/scala/mill/util/TestGraphs.scala index 2a1a966b..54c8d815 100644 --- a/core/src/test/scala/mill/util/TestGraphs.scala +++ b/core/src/test/scala/mill/util/TestGraphs.scala @@ -107,8 +107,6 @@ class TestGraphs(){ } val j = test(test.anon(i), test.anon(i, f), test.anon(f)) } -} -object TestGraphs{ // _ left _ // / \ // task1 -------- right @@ -122,7 +120,10 @@ object TestGraphs{ def right = T{ task1() + task2() + left() + 1 } } +} + +object TestGraphs{ // _ left _ // / \ // task -------- right |