summaryrefslogtreecommitdiff
path: root/scalajslib/src
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-01-20 03:49:17 -0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-01-20 03:49:17 -0800
commitd14f56a3fd881f809e58783c49866d1491a5f3fe (patch)
tree4a9f93d3d7f69211aa444ce15837fe6e79b9db7f /scalajslib/src
parentaebd7a144fab5bdb95f6ee4f4bc170be65cd0549 (diff)
downloadmill-d14f56a3fd881f809e58783c49866d1491a5f3fe.tar.gz
mill-d14f56a3fd881f809e58783c49866d1491a5f3fe.tar.bz2
mill-d14f56a3fd881f809e58783c49866d1491a5f3fe.zip
Swap over to simplified Mill module/source layout from SBT's
Removes a lot of useless folders and gives us a chance to exercise this simplified layout. Support for the SBT layout is still verified by our integration tests
Diffstat (limited to 'scalajslib/src')
-rw-r--r--scalajslib/src/mill/scalajslib/Lib.scala (renamed from scalajslib/src/main/scala/mill/scalajslib/Lib.scala)0
-rw-r--r--scalajslib/src/mill/scalajslib/ScalaJSLinkerBridge.scala (renamed from scalajslib/src/main/scala/mill/scalajslib/ScalaJSLinkerBridge.scala)0
-rw-r--r--scalajslib/src/mill/scalajslib/ScalaJSModule.scala (renamed from scalajslib/src/main/scala/mill/scalajslib/ScalaJSModule.scala)0
-rw-r--r--scalajslib/src/test/resources/hello-js-world/src/main/scala/Main.scala3
-rw-r--r--scalajslib/src/test/scala/mill/scalajslib/HelloJSWorldTests.scala164
5 files changed, 0 insertions, 167 deletions
diff --git a/scalajslib/src/main/scala/mill/scalajslib/Lib.scala b/scalajslib/src/mill/scalajslib/Lib.scala
index 6a85cf0c..6a85cf0c 100644
--- a/scalajslib/src/main/scala/mill/scalajslib/Lib.scala
+++ b/scalajslib/src/mill/scalajslib/Lib.scala
diff --git a/scalajslib/src/main/scala/mill/scalajslib/ScalaJSLinkerBridge.scala b/scalajslib/src/mill/scalajslib/ScalaJSLinkerBridge.scala
index 448cc16a..448cc16a 100644
--- a/scalajslib/src/main/scala/mill/scalajslib/ScalaJSLinkerBridge.scala
+++ b/scalajslib/src/mill/scalajslib/ScalaJSLinkerBridge.scala
diff --git a/scalajslib/src/main/scala/mill/scalajslib/ScalaJSModule.scala b/scalajslib/src/mill/scalajslib/ScalaJSModule.scala
index 5c964fd6..5c964fd6 100644
--- a/scalajslib/src/main/scala/mill/scalajslib/ScalaJSModule.scala
+++ b/scalajslib/src/mill/scalajslib/ScalaJSModule.scala
diff --git a/scalajslib/src/test/resources/hello-js-world/src/main/scala/Main.scala b/scalajslib/src/test/resources/hello-js-world/src/main/scala/Main.scala
deleted file mode 100644
index 60cef56d..00000000
--- a/scalajslib/src/test/resources/hello-js-world/src/main/scala/Main.scala
+++ /dev/null
@@ -1,3 +0,0 @@
-object Main extends App {
- println("Hello " + sys.props("java.vm.name"))
-}
diff --git a/scalajslib/src/test/scala/mill/scalajslib/HelloJSWorldTests.scala b/scalajslib/src/test/scala/mill/scalajslib/HelloJSWorldTests.scala
deleted file mode 100644
index 2094687b..00000000
--- a/scalajslib/src/test/scala/mill/scalajslib/HelloJSWorldTests.scala
+++ /dev/null
@@ -1,164 +0,0 @@
-package mill.scalajslib
-
-import java.io.{FileReader, StringWriter}
-import java.util.jar.JarFile
-import javax.script.{ScriptContext, ScriptEngineManager}
-
-import ammonite.ops._
-import mill._
-import mill.scalalib.PublishModule
-import mill.scalalib.publish.{Developer, License, PomSettings, SCM}
-import mill.util.{TestEvaluator, TestUtil}
-import utest._
-
-import scala.collection.JavaConverters._
-
-
-object HelloJSWorldTests extends TestSuite {
-
-
- trait HelloJSWorldModule extends ScalaJSModule with PublishModule {
- override def basePath = HelloJSWorldTests.workspacePath
- override def mainClass = Some("Main")
- }
-
- object HelloJSWorld extends TestUtil.BaseModule {
- val matrix = for {
- scala <- Seq("2.11.8", "2.12.3", "2.12.4")
- scalaJS <- Seq("0.6.20", "0.6.21", "1.0.0-M2")
- } yield (scala, scalaJS)
-
- object build extends Cross[BuildModule](matrix:_*)
-
- class BuildModule(scalaVersion0: String, sjsVersion0: String) extends HelloJSWorldModule {
- def scalaVersion = scalaVersion0
- def scalaJSVersion = sjsVersion0
- def pomSettings = PomSettings(
- organization = "com.lihaoyi",
- description = "hello js world ready for real world publishing",
- url = "https://github.com/lihaoyi/hello-world-publish",
- licenses = Seq(
- License("Apache License, Version 2.0",
- "http://www.apache.org/licenses/LICENSE-2.0")),
- scm = SCM(
- "https://github.com/lihaoyi/hello-world-publish",
- "scm:git:https://github.com/lihaoyi/hello-world-publish"
- ),
- developers =
- Seq(Developer("lihaoyi", "Li Haoyi", "https://github.com/lihaoyi"))
- )
- }
- }
-
- val srcPath = pwd / 'scalajslib / 'src / 'test / 'resources / "hello-js-world"
- val workspacePath = pwd / 'target / 'workspace / "hello-js-world"
- val outputPath = workspacePath / 'out
- val mainObject = workspacePath / 'src / 'main / 'scala / "Main.scala"
-
- val helloWorldEvaluator = new TestEvaluator(
- HelloJSWorld,
- workspacePath,
- srcPath
- )
-
- class Console {
- val out = new StringWriter()
- def log(s: String): Unit = out.append(s)
- }
-
- def runJS(path: Path): String = {
- val engineManager = new ScriptEngineManager
- val engine = engineManager.getEngineByName("nashorn")
- val console = new Console
- engine.getBindings(ScriptContext.ENGINE_SCOPE).put("console", console)
- engine.eval(new FileReader(path.toIO))
- console.out.toString
- }
-
- def tests: Tests = Tests {
- prepareWorkspace()
- 'compile - {
- def testCompileFromScratch(scalaVersion: String,
- scalaJSVersion: String): Unit = {
- val Right((result, evalCount)) =
- helloWorldEvaluator(HelloJSWorld.build(scalaVersion, scalaJSVersion).compile)
-
- val outPath = result.classes.path
- val outputFiles = ls.rec(outPath)
- val expectedClassfiles = compileClassfiles(outPath)
- assert(
- outputFiles.toSet == expectedClassfiles,
- evalCount > 0
- )
-
- // don't recompile if nothing changed
- val Right((_, unchangedEvalCount)) =
- helloWorldEvaluator(HelloJSWorld.build(scalaVersion, scalaJSVersion).compile)
- assert(unchangedEvalCount == 0)
- }
-
- 'fromScratch_2124_0621 - testCompileFromScratch("2.12.4", "0.6.21")
- 'fromScratch_2123_0621 - testCompileFromScratch("2.12.3", "0.6.21")
- 'fromScratch_2118_0621 - testCompileFromScratch("2.11.8", "0.6.21")
- 'fromScratch_2124_100M2 - testCompileFromScratch("2.11.8", "1.0.0-M2")
- }
-
- def testRun(scalaVersion: String,
- scalaJSVersion: String,
- mode: OptimizeMode): Unit = {
- val task = mode match {
- case FullOpt => HelloJSWorld.build(scalaVersion, scalaJSVersion).fullOpt
- case FastOpt => HelloJSWorld.build(scalaVersion, scalaJSVersion).fastOpt
- }
- val Right((result, evalCount)) = helloWorldEvaluator(task)
- val output = runJS(result.path)
- assert(output == "Hello Scala.js")
- }
-
- 'fullOpt - {
- 'run_2124_0621 - testRun("2.12.4", "0.6.21", FullOpt)
- 'run_2123_0621 - testRun("2.12.3", "0.6.21", FullOpt)
- 'run_2118_0621 - testRun("2.11.8", "0.6.21", FullOpt)
- 'run_2124_100M2 - testRun("2.11.8", "1.0.0-M2", FullOpt)
- }
- 'fastOpt - {
- 'run_2124_0621 - testRun("2.12.4", "0.6.21", FastOpt)
- 'run_2123_0621 - testRun("2.12.3", "0.6.21", FastOpt)
- 'run_2118_0621 - testRun("2.11.8", "0.6.21", FastOpt)
- 'run_2124_100M2 - testRun("2.11.8", "1.0.0-M2", FastOpt)
- }
- 'jar - {
- 'containsSJSIRs - {
- val Right((result, evalCount)) = helloWorldEvaluator(HelloJSWorld.build("2.12.4", "0.6.21").jar)
- val jar = result.path
- val entries = new JarFile(jar.toIO).entries().asScala.map(_.getName)
- assert(entries.contains("Main$.sjsir"))
- }
- }
- 'publish - {
- def testArtifactId(scalaVersion: String,
- scalaJSVersion: String,
- artifactId: String): Unit = {
- val Right((result, evalCount)) = helloWorldEvaluator(HelloJSWorld.build(scalaVersion, scalaJSVersion).artifact)
- assert(result.id == artifactId)
- }
- 'artifactId_0621 - testArtifactId("2.12.4", "0.6.21", "hello-js-world_sjs0.6_2.12")
- 'artifactId_0621 - testArtifactId("2.12.4", "1.0.0-M2", "hello-js-world_sjs1.0.0-M2_2.12")
- }
- }
-
- def compileClassfiles(parentDir: Path) = Set(
- parentDir / "Main.class",
- parentDir / "Main$.class",
- parentDir / "Main$delayedInit$body.class",
- parentDir / "Main$.sjsir",
- parentDir / "Main$delayedInit$body.sjsir"
- )
-
- def prepareWorkspace(): Unit = {
- rm(workspacePath)
- mkdir(workspacePath / up)
- cp(srcPath, workspacePath)
- }
-
-}