diff options
Diffstat (limited to 'integration/test')
5 files changed, 320 insertions, 1 deletions
diff --git a/integration/test/resources/large-project/build.sc b/integration/test/resources/large-project/build.sc new file mode 100644 index 00000000..27844c90 --- /dev/null +++ b/integration/test/resources/large-project/build.sc @@ -0,0 +1,293 @@ +import mill._, scalalib._ + +trait TModule extends SbtModule { + def scalaVersion = "2.12.7" +} + +object foo extends Module { + object common extends Module { + object one extends TModule { + def moduleDeps = Seq() + } + object two extends TModule { + def moduleDeps = Seq(foo.common.one) + } + object three extends TModule { + def moduleDeps = Seq(foo.common.two) + } + } + object domain extends Module { + object one extends TModule { + def moduleDeps = Seq(foo.common.one) + } + object two extends TModule { + def moduleDeps = Seq(foo.domain.one) + } + object three extends TModule { + def moduleDeps = Seq(foo.domain.two) + } + } + object server extends Module { + object one extends TModule { + def moduleDeps = Seq(foo.domain.three) + } + object two extends TModule { + def moduleDeps = Seq(foo.server.one) + } + object three extends TModule { + def moduleDeps = Seq(foo.server.two) + } + } +} + +object bar extends Module { + object common extends Module { + object one extends TModule { + def moduleDeps = Seq(foo.common.three) + } + object two extends TModule { + def moduleDeps = Seq(bar.common.one) + } + object three extends TModule { + def moduleDeps = Seq(bar.common.two) + } + } + object domain extends Module { + object one extends TModule { + def moduleDeps = Seq(foo.domain.three) + } + object two extends TModule { + def moduleDeps = Seq(bar.domain.one) + } + object three extends TModule { + def moduleDeps = Seq(bar.domain.two) + } + } + object server extends Module { + object one extends TModule { + def moduleDeps = Seq(foo.server.one) + } + object two extends TModule { + def moduleDeps = Seq(bar.server.one) + } + object three extends TModule { + def moduleDeps = Seq(bar.server.two) + } + } +} + +object ham extends Module { + object common extends Module { + object one extends TModule { + def moduleDeps = Seq(bar.common.one) + } + object two extends TModule { + def moduleDeps = Seq(bar.common.two) + } + object three extends TModule { + def moduleDeps = Seq(bar.common.three) + } + } + object domain extends Module { + object one extends TModule { + def moduleDeps = Seq(bar.domain.three) + } + object two extends TModule { + def moduleDeps = Seq(bar.domain.two, ham.common.three) + } + object three extends TModule { + def moduleDeps = Seq(bar.domain.two) + } + } + object server extends Module { + object one extends TModule { + def moduleDeps = Seq() + } + object two extends TModule { + def moduleDeps = Seq() + } + object three extends TModule { + def moduleDeps = Seq() + } + } +} + +object eggs extends Module { + object common extends Module { + object one extends TModule { + def moduleDeps = Seq() + } + object two extends TModule { + def moduleDeps = Seq() + } + object three extends TModule { + def moduleDeps = Seq() + } + } + object domain extends Module { + object one extends TModule { + def moduleDeps = Seq() + } + object two extends TModule { + def moduleDeps = Seq() + } + object three extends TModule { + def moduleDeps = Seq() + } + } + object server extends Module { + object one extends TModule { + def moduleDeps = Seq() + } + object two extends TModule { + def moduleDeps = Seq() + } + object three extends TModule { + def moduleDeps = Seq() + } + } +} + +object salt extends Module { + object common extends Module { + object one extends TModule { + def moduleDeps = Seq() + } + object two extends TModule { + def moduleDeps = Seq() + } + object three extends TModule { + def moduleDeps = Seq() + } + } + object domain extends Module { + object one extends TModule { + def moduleDeps = Seq() + } + object two extends TModule { + def moduleDeps = Seq() + } + object three extends TModule { + def moduleDeps = Seq() + } + } + object server extends Module { + object one extends TModule { + def moduleDeps = Seq() + } + object two extends TModule { + def moduleDeps = Seq() + } + object three extends TModule { + def moduleDeps = Seq() + } + } +} + +object pepper extends Module { + object common extends Module { + object one extends TModule { + def moduleDeps = Seq() + } + object two extends TModule { + def moduleDeps = Seq() + } + object three extends TModule { + def moduleDeps = Seq() + } + } + object domain extends Module { + object one extends TModule { + def moduleDeps = Seq() + } + object two extends TModule { + def moduleDeps = Seq() + } + object three extends TModule { + def moduleDeps = Seq() + } + } + object server extends Module { + object one extends TModule { + def moduleDeps = Seq() + } + object two extends TModule { + def moduleDeps = Seq() + } + object three extends TModule { + def moduleDeps = Seq() + } + } +} + +object oregano extends Module { + object common extends Module { + object one extends TModule { + def moduleDeps = Seq() + } + object two extends TModule { + def moduleDeps = Seq() + } + object three extends TModule { + def moduleDeps = Seq() + } + } + object domain extends Module { + object one extends TModule { + def moduleDeps = Seq() + } + object two extends TModule { + def moduleDeps = Seq() + } + object three extends TModule { + def moduleDeps = Seq() + } + } + object server extends Module { + object one extends TModule { + def moduleDeps = Seq() + } + object two extends TModule { + def moduleDeps = Seq() + } + object three extends TModule { + def moduleDeps = Seq() + } + } +} + +object rosmarin extends Module { + object common extends Module { + object one extends TModule { + def moduleDeps = Seq() + } + object two extends TModule { + def moduleDeps = Seq() + } + object three extends TModule { + def moduleDeps = Seq() + } + } + object domain extends Module { + object one extends TModule { + def moduleDeps = Seq() + } + object two extends TModule { + def moduleDeps = Seq() + } + object three extends TModule { + def moduleDeps = Seq() + } + } + object server extends Module { + object one extends TModule { + def moduleDeps = Seq() + } + object two extends TModule { + def moduleDeps = Seq() + } + object three extends TModule { + def moduleDeps = Seq() + } + } +} diff --git a/integration/test/resources/large-project/foo/common/one/src/main/scala/foo/common/one/Main.scala b/integration/test/resources/large-project/foo/common/one/src/main/scala/foo/common/one/Main.scala new file mode 100644 index 00000000..4fd74836 --- /dev/null +++ b/integration/test/resources/large-project/foo/common/one/src/main/scala/foo/common/one/Main.scala @@ -0,0 +1,5 @@ +package foo.common.one + +object Main extends App { + println("large-project") +} diff --git a/integration/test/src/LargeProjectTests.scala b/integration/test/src/LargeProjectTests.scala new file mode 100644 index 00000000..e20bc932 --- /dev/null +++ b/integration/test/src/LargeProjectTests.scala @@ -0,0 +1,19 @@ +package mill.integration + +import mill.util.ScriptTestSuite +import utest._ + +class LargeProjectTests(fork: Boolean) + extends ScriptTestSuite(fork) { + def workspaceSlug: String = "large-project" + def scriptSourcePath: os.Path = os.pwd / 'integration / 'test / 'resources / workspaceSlug + + val tests = Tests{ + initWorkspace() + 'test - { + + assert(eval("foo.common.one.compile")) + } + + } +} diff --git a/integration/test/src/forked/Tests.scala b/integration/test/src/forked/Tests.scala index 41844b58..b31042bb 100644 --- a/integration/test/src/forked/Tests.scala +++ b/integration/test/src/forked/Tests.scala @@ -3,6 +3,7 @@ package mill.integration.forked object AcyclicTests extends mill.integration.AcyclicTests(fork = true) object AmmoniteTests extends mill.integration.AmmoniteTests(fork = true) object BetterFilesTests extends mill.integration.BetterFilesTests(fork = true) +object LargeProjectTests extends mill.integration.LargeProjectTests(fork = true) object JawnTests extends mill.integration.JawnTests(fork = true) object UpickleTests extends mill.integration.UpickleTests(fork = true) object PlayJsonTests extends mill.integration.PlayJsonTests(fork = true) diff --git a/integration/test/src/local/Tests.scala b/integration/test/src/local/Tests.scala index e95aac54..efc45b94 100644 --- a/integration/test/src/local/Tests.scala +++ b/integration/test/src/local/Tests.scala @@ -3,8 +3,9 @@ package mill.integration.local object AcyclicTests extends mill.integration.AcyclicTests(fork = false) object AmmoniteTests extends mill.integration.AmmoniteTests(fork = false) object BetterFilesTests extends mill.integration.BetterFilesTests(fork = false) +object LargeProjectTests extends mill.integration.LargeProjectTests(fork = false) object JawnTests extends mill.integration.JawnTests(fork = false) object UpickleTests extends mill.integration.UpickleTests(fork = false) object PlayJsonTests extends mill.integration.PlayJsonTests(fork = false) object CaffeineTests extends mill.integration.CaffeineTests(fork = false) -object DocAnnotationsTests extends mill.integration.DocAnnotationsTests(fork = false)
\ No newline at end of file +object DocAnnotationsTests extends mill.integration.DocAnnotationsTests(fork = false) |