summaryrefslogtreecommitdiff
path: root/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env')
-rw-r--r--examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/AsyncTests.scala37
-rw-r--r--examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/ComTests.scala206
-rw-r--r--examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/JSEnvTest.scala44
-rw-r--r--examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/NodeJSTest.scala54
-rw-r--r--examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/PhantomJSTest.scala21
-rw-r--r--examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/RhinoJSEnvTest.scala9
-rw-r--r--examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/StoreJSConsole.scala14
-rw-r--r--examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/StoreLogger.scala29
8 files changed, 0 insertions, 414 deletions
diff --git a/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/AsyncTests.scala b/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/AsyncTests.scala
deleted file mode 100644
index 422c17b..0000000
--- a/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/AsyncTests.scala
+++ /dev/null
@@ -1,37 +0,0 @@
-package scala.scalajs.sbtplugin.test.env
-
-import scala.scalajs.tools.env._
-import scala.scalajs.tools.io._
-import scala.scalajs.tools.classpath.PartialClasspath
-import scala.scalajs.tools.logging._
-
-import org.junit.Test
-import org.junit.Assert._
-
-import scala.concurrent.Await
-import scala.concurrent.duration.Duration
-
-/** A couple of tests that test communication for mix-in into a test suite */
-trait AsyncTests {
-
- protected def newJSEnv: AsyncJSEnv
-
- private def emptyCP = PartialClasspath.empty.resolve()
-
- private def asyncRunner(code: String) = {
- val codeVF = new MemVirtualJSFile("testScript.js").withContent(code)
- newJSEnv.asyncRunner(emptyCP, codeVF,
- new ScalaConsoleLogger(Level.Warn), ConsoleJSConsole)
- }
-
- @Test
- def futureTest = {
- val runner = asyncRunner("")
- val fut = runner.start()
-
- Await.result(fut, Duration.Inf)
-
- assertFalse("VM should be terminated", runner.isRunning)
- }
-
-}
diff --git a/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/ComTests.scala b/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/ComTests.scala
deleted file mode 100644
index c16decd..0000000
--- a/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/ComTests.scala
+++ /dev/null
@@ -1,206 +0,0 @@
-package scala.scalajs.sbtplugin.test.env
-
-import scala.scalajs.tools.env._
-import scala.scalajs.tools.io._
-import scala.scalajs.tools.classpath.PartialClasspath
-import scala.scalajs.tools.logging._
-
-import org.junit.Test
-import org.junit.Assert._
-
-/** A couple of tests that test communication for mix-in into a test suite */
-trait ComTests extends AsyncTests {
-
- protected def newJSEnv: ComJSEnv
-
- private def emptyCP = PartialClasspath.empty.resolve()
-
- private def comRunner(code: String) = {
- val codeVF = new MemVirtualJSFile("testScript.js").withContent(code)
- newJSEnv.comRunner(emptyCP, codeVF,
- new ScalaConsoleLogger(Level.Warn), ConsoleJSConsole)
- }
-
- private def assertThrowClosed(msg: String, body: => Unit): Unit = {
- val thrown = try {
- body
- false
- } catch {
- case _: ComJSEnv.ComClosedException =>
- true
- }
-
- assertTrue(msg, thrown)
- }
-
- @Test
- def comCloseJVMTest = {
- val com = comRunner(s"""
- scalajsCom.init(function(msg) { scalajsCom.send("received: " + msg); });
- scalajsCom.send("Hello World");
- """)
-
- com.start()
-
- assertEquals("Hello World", com.receive())
-
- for (i <- 0 to 10) {
- com.send(i.toString)
- assertEquals(s"received: $i", com.receive())
- }
-
- com.close()
- com.await()
- }
-
- def comCloseJSTestCommon(timeout: Long) = {
- val com = comRunner(s"""
- scalajsCom.init(function(msg) {});
- for (var i = 0; i < 10; ++i)
- scalajsCom.send("msg: " + i);
- scalajsCom.close();
- """)
-
- com.start()
-
- Thread.sleep(timeout)
-
- for (i <- 0 until 10)
- assertEquals(s"msg: $i", com.receive())
-
- assertThrowClosed("Expect receive to throw after closing of channel",
- com.receive())
-
- com.close()
- com.await()
- }
-
- @Test
- def comCloseJSTest = comCloseJSTestCommon(0)
-
- @Test
- def comCloseJSTestDelayed = comCloseJSTestCommon(1000)
-
- @Test
- def doubleCloseTest = {
- val n = 10
- val com = pingPongRunner(n)
-
- com.start()
-
- for (i <- 0 until n) {
- com.send("ping")
- assertEquals("pong", com.receive())
- }
-
- com.close()
- com.await()
- }
-
- @Test
- def multiEnvTest = {
- val n = 10
- val envs = List.fill(5)(pingPongRunner(10))
-
- envs.foreach(_.start())
-
- val ops = List[ComJSRunner => Unit](
- _.send("ping"),
- com => assertEquals("pong", com.receive())
- )
-
- for {
- i <- 0 until n
- env <- envs
- op <- ops
- } op(env)
-
- envs.foreach(_.close())
- envs.foreach(_.await())
- }
-
- private def pingPongRunner(count: Int) = {
- comRunner(s"""
- var seen = 0;
- scalajsCom.init(function(msg) {
- scalajsCom.send("pong");
- if (++seen >= $count)
- scalajsCom.close();
- });
- """)
- }
-
- @Test
- def largeMessageTest = {
- // 1KB data
- val baseMsg = new String(Array.tabulate(512)(_.toChar))
- val baseLen = baseMsg.length
-
- // Max message size: 1KB * 2^(2*iters+1) = 1MB
- val iters = 4
-
- val com = comRunner("""
- scalajsCom.init(function(msg) {
- scalajsCom.send(msg + msg);
- });
- """)
-
- com.start()
-
- com.send(baseMsg)
-
- def resultFactor(iters: Int) = Math.pow(2, 2 * iters + 1).toInt
-
- for (i <- 0 until iters) {
- val reply = com.receive()
-
- val factor = resultFactor(i)
-
- assertEquals(baseLen * factor, reply.length)
-
- for (j <- 0 until factor)
- assertEquals(baseMsg, reply.substring(j * baseLen, (j + 1) * baseLen))
-
- com.send(reply + reply)
- }
-
- val lastLen = com.receive().length
- assertEquals(baseLen * resultFactor(iters), lastLen)
-
- com.close()
- com.await()
- }
-
- @Test
- def noInitTest = {
- val com = comRunner("")
-
- com.start()
- com.send("Dummy")
- com.close()
- com.await()
- }
-
- @Test
- def stopTest = {
- val com = comRunner(s"""scalajsCom.init(function(msg) {});""")
-
- com.start()
-
- // Make sure the VM doesn't terminate.
- Thread.sleep(1000)
-
- assertTrue("VM should still be running", com.isRunning)
-
- // Stop VM instead of closing channel
- com.stop()
-
- try {
- com.await()
- fail("Stopped VM should be in failure state")
- } catch {
- case _: Throwable =>
- }
- }
-
-}
diff --git a/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/JSEnvTest.scala b/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/JSEnvTest.scala
deleted file mode 100644
index 2a44c80..0000000
--- a/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/JSEnvTest.scala
+++ /dev/null
@@ -1,44 +0,0 @@
-package scala.scalajs.sbtplugin.test.env
-
-import scala.scalajs.tools.env.JSEnv
-import scala.scalajs.tools.io.MemVirtualJSFile
-import scala.scalajs.tools.classpath.PartialClasspath
-import scala.scalajs.tools.logging.NullLogger
-import scala.scalajs.tools.env.NullJSConsole
-
-import org.junit.Assert._
-
-abstract class JSEnvTest {
-
- protected def newJSEnv: JSEnv
-
- implicit class RunMatcher(codeStr: String) {
-
- val emptyCP = PartialClasspath.empty.resolve()
- val code = new MemVirtualJSFile("testScript.js").withContent(codeStr)
-
- def hasOutput(expectedOut: String): Unit = {
-
- val console = new StoreJSConsole()
- val logger = new StoreLogger()
-
- newJSEnv.jsRunner(emptyCP, code, logger, console).run()
-
- val log = logger.getLog
-
- assertTrue("VM shouldn't produce log. Log:\n" +
- log.mkString("\n"), log.isEmpty)
- assertEquals("Output should match", expectedOut, console.getLog)
- }
-
- def fails(): Unit = {
- try {
- newJSEnv.jsRunner(emptyCP, code, NullLogger, NullJSConsole).run()
- assertTrue("Code snipped should fail", false)
- } catch {
- case e: Exception =>
- }
- }
- }
-
-}
diff --git a/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/NodeJSTest.scala b/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/NodeJSTest.scala
deleted file mode 100644
index 9a58b5c..0000000
--- a/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/NodeJSTest.scala
+++ /dev/null
@@ -1,54 +0,0 @@
-package scala.scalajs.sbtplugin.test.env
-
-import scala.scalajs.sbtplugin.env.nodejs.NodeJSEnv
-
-import org.junit.Test
-
-class NodeJSTest extends JSEnvTest with ComTests {
-
- protected def newJSEnv = new NodeJSEnv
-
- /** Node.js strips double percentage signs - #500 */
- @Test
- def percentageTest = {
- val counts = 1 to 15
- val argcs = 1 to 3
- val strings = counts.map("%" * _)
-
- val strlists = for {
- count <- argcs
- string <- strings
- } yield List.fill(count)(string)
-
- val codes = for {
- strlist <- strlists
- } yield {
- val args = strlist.map(s => s""""$s"""").mkString(", ")
- s"console.log($args);\n"
- }
-
- val result = strlists.map(_.mkString(" ") + "\n").mkString("")
-
- codes.mkString("").hasOutput(result)
- }
-
- /** Node.js console.log hack didn't allow to log non-Strings - #561 */
- @Test
- def nonStringTest = {
-
- """
- console.log(1);
- console.log(undefined);
- console.log(null);
- console.log({});
- console.log([1,2]);
- """ hasOutput
- """|1
- |undefined
- |null
- |[object Object]
- |1,2
- |""".stripMargin
- }
-
-}
diff --git a/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/PhantomJSTest.scala b/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/PhantomJSTest.scala
deleted file mode 100644
index 23e240d..0000000
--- a/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/PhantomJSTest.scala
+++ /dev/null
@@ -1,21 +0,0 @@
-package scala.scalajs.sbtplugin.test.env
-
-import scala.scalajs.sbtplugin.env.phantomjs.PhantomJSEnv
-
-import org.junit.Test
-
-class PhantomJSTest extends JSEnvTest with ComTests {
-
- protected def newJSEnv = new PhantomJSEnv
-
- @Test
- def failureTest = {
-
- """
- var a = {};
- a.foo();
- """.fails()
-
- }
-
-}
diff --git a/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/RhinoJSEnvTest.scala b/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/RhinoJSEnvTest.scala
deleted file mode 100644
index 4066c41..0000000
--- a/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/RhinoJSEnvTest.scala
+++ /dev/null
@@ -1,9 +0,0 @@
-package scala.scalajs.sbtplugin.test.env
-
-import scala.scalajs.sbtplugin.env.rhino._
-
-import scala.scalajs.tools.sem._
-
-class RhinoJSEnvTest extends ComTests {
- protected def newJSEnv = new RhinoJSEnv(Semantics.Defaults)
-}
diff --git a/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/StoreJSConsole.scala b/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/StoreJSConsole.scala
deleted file mode 100644
index 9c7a84a..0000000
--- a/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/StoreJSConsole.scala
+++ /dev/null
@@ -1,14 +0,0 @@
-package scala.scalajs.sbtplugin.test.env
-
-import scala.scalajs.tools.env._
-
-class StoreJSConsole extends JSConsole {
- private[this] val buf = new StringBuilder()
-
- def log(msg: Any): Unit = {
- buf.append(msg.toString)
- buf.append('\n')
- }
-
- def getLog: String = buf.toString
-}
diff --git a/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/StoreLogger.scala b/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/StoreLogger.scala
deleted file mode 100644
index 985b149..0000000
--- a/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/StoreLogger.scala
+++ /dev/null
@@ -1,29 +0,0 @@
-package scala.scalajs.sbtplugin.test.env
-
-import scala.scalajs.tools.logging._
-
-import scala.collection.mutable.ListBuffer
-
-class StoreLogger extends Logger {
- import StoreLogger._
-
- private[this] val buf = new ListBuffer[LogElem]
-
- def log(level: Level, message: => String): Unit =
- buf += Log(level, message)
- def success(message: => String): Unit =
- buf += Success(message)
- def trace(t: => Throwable): Unit =
- buf += Trace(t)
-
- def getLog: List[LogElem] = buf.toList
-}
-
-object StoreLogger {
-
- abstract class LogElem
- case class Log(level: Level, message: String) extends LogElem
- case class Success(message: String) extends LogElem
- case class Trace(t: Throwable) extends LogElem
-
-}