diff options
Diffstat (limited to 'integration/src/test/scala/mill')
-rw-r--r-- | integration/src/test/scala/mill/integration/AmmoniteTests.scala | 36 | ||||
-rw-r--r-- | integration/src/test/scala/mill/integration/IntegrationTestSuite.scala | 8 |
2 files changed, 43 insertions, 1 deletions
diff --git a/integration/src/test/scala/mill/integration/AmmoniteTests.scala b/integration/src/test/scala/mill/integration/AmmoniteTests.scala new file mode 100644 index 00000000..22bd3cb8 --- /dev/null +++ b/integration/src/test/scala/mill/integration/AmmoniteTests.scala @@ -0,0 +1,36 @@ +package mill.integration + +import ammonite.ops._ +import utest._ + +object AmmoniteTests extends IntegrationTestSuite("MILL_AMMONITE_REPO", "ammonite") { + val tests = Tests{ + initWorkspace() + + def check(scalaVersion: String) = { + val replTests = eval( + s"amm.repl[$scalaVersion].test", "{ammonite.unit,ammonite.session.ProjectTests.guava}" + ) + val replTestMeta = meta(s"amm.repl[$scalaVersion].test.test") + assert( + replTests, + replTestMeta.contains("ammonite.session.ProjectTests.guava"), + replTestMeta.contains("ammonite.unit.SourceTests.objectInfo.thirdPartyJava") + ) + + val compileResult = eval( + "--all", s"{shell,sshd,amm,integration}[$scalaVersion].test.compile" + ) + + assert( + compileResult, + ls.rec(workspacePath / 'out / 'integration / scalaVersion / 'test / 'compile) + .exists(_.name == "ErrorTruncationTests.class") + ) + } + + 'scala2118 - check("2.11.8") + 'scala2124 - check("2.12.4") + + } +} diff --git a/integration/src/test/scala/mill/integration/IntegrationTestSuite.scala b/integration/src/test/scala/mill/integration/IntegrationTestSuite.scala index ba4415fa..293411c5 100644 --- a/integration/src/test/scala/mill/integration/IntegrationTestSuite.scala +++ b/integration/src/test/scala/mill/integration/IntegrationTestSuite.scala @@ -3,6 +3,8 @@ package mill.integration import java.io.{ByteArrayInputStream, ByteArrayOutputStream, InputStream, PrintStream} import ammonite.ops._ +import mill.define.Segments +import mill.main.ParseArgs import utest._ abstract class IntegrationTestSuite(repoKey: String, workspaceSlug: String) extends TestSuite{ @@ -15,7 +17,11 @@ abstract class IntegrationTestSuite(repoKey: String, workspaceSlug: String) exte stdOutErr, stdOutErr, stdIn ) def eval(s: String*) = runner.runScript(workspacePath / "build.sc", s.toList) - def meta(s: String) = read(workspacePath / "out" / RelPath(s.replaceAll("\\.", "/")) / "meta.json") + def meta(s: String) = { + val (List(selector), args) = ParseArgs.apply(Seq(s)).right.get + + read(workspacePath / "out" / selector.flatMap(_.pathSegments) / "meta.json") + } def initWorkspace() = { rm(workspacePath) mkdir(workspacePath / up) |