summaryrefslogtreecommitdiff
path: root/integration/src/test/scala/mill
diff options
context:
space:
mode:
Diffstat (limited to 'integration/src/test/scala/mill')
-rw-r--r--integration/src/test/scala/mill/integration/AmmoniteTests.scala36
-rw-r--r--integration/src/test/scala/mill/integration/IntegrationTestSuite.scala8
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)