diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2018-01-20 03:49:17 -0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-01-20 03:49:17 -0800 |
commit | d14f56a3fd881f809e58783c49866d1491a5f3fe (patch) | |
tree | 4a9f93d3d7f69211aa444ce15837fe6e79b9db7f /scalajslib/src | |
parent | aebd7a144fab5bdb95f6ee4f4bc170be65cd0549 (diff) | |
download | mill-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.scala | 3 | ||||
-rw-r--r-- | scalajslib/src/test/scala/mill/scalajslib/HelloJSWorldTests.scala | 164 |
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) - } - -} |