diff options
Diffstat (limited to 'examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test')
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 - -} |