From bc244605d62e65476ce2fd80f8f174d2ddf13505 Mon Sep 17 00:00:00 2001 From: Arman Bilge Date: Tue, 7 Sep 2021 00:52:19 +0000 Subject: [PATCH 1/2] Add output for webworker tests --- .../MacrotaskExecutorSuiteRunner.scala | 40 +++++++++++++++---- .../WebWorkerMacrotaskSuite.scala | 8 ++-- 2 files changed, 37 insertions(+), 11 deletions(-) diff --git a/webworker/src/main/scala/org/scalajs/macrotaskexecutor/MacrotaskExecutorSuiteRunner.scala b/webworker/src/main/scala/org/scalajs/macrotaskexecutor/MacrotaskExecutorSuiteRunner.scala index 4c96c4f..a6d9cf4 100644 --- a/webworker/src/main/scala/org/scalajs/macrotaskexecutor/MacrotaskExecutorSuiteRunner.scala +++ b/webworker/src/main/scala/org/scalajs/macrotaskexecutor/MacrotaskExecutorSuiteRunner.scala @@ -37,15 +37,39 @@ object MacrotaskExecutorSuiteRunner { classOf[MacrotaskExecutorSuite], () => new MacrotaskExecutorSuite ).runAsync(new RunNotifier { + + var count = new MacrotaskExecutorSuite().munitTests().size + var overallSuccess = true + def reportTest(success: Boolean): Unit = { + overallSuccess &= success + count -= 1 + if (count == 0) postMessage(overallSuccess) + } + def fireTestStarted(description: Description): Unit = () - def fireTestSuiteStarted(description: Description): Unit = () + + def fireTestSuiteStarted(description: Description): Unit = + postMessage(s"${classOf[MacrotaskExecutorSuite].getName}:") + + // This doesn't account for async and fires before any tests are run! def fireTestSuiteFinished(description: Description): Unit = () + def fireTestIgnored(description: Description): Unit = () - def fireTestFinished(description: Description): Unit = () - def fireTestFailure(failure: Failure): Unit = postMessage(false) - def fireTestAssumptionFailed(failure: Failure): Unit = postMessage(false) - }).onComplete { - case util.Success(_) => postMessage(true) - case util.Failure(_) => postMessage(false) - } + + def fireTestFinished(description: Description): Unit = { + postMessage(s" + ${description.getMethodName}") + reportTest(success = true) + } + + def fireTestFailure(failure: Failure): Unit = { + postMessage( + s"==> X ${classOf[MacrotaskExecutorSuite].getName}.${failure.description.getMethodName}" + ) + reportTest(success = false) + } + + def fireTestAssumptionFailed(failure: Failure): Unit = + reportTest(success = false) + + }) } diff --git a/webworker/src/test/scala/org/scalajs/macrotaskexecutor/WebWorkerMacrotaskSuite.scala b/webworker/src/test/scala/org/scalajs/macrotaskexecutor/WebWorkerMacrotaskSuite.scala index db87b98..bfc7a49 100644 --- a/webworker/src/test/scala/org/scalajs/macrotaskexecutor/WebWorkerMacrotaskSuite.scala +++ b/webworker/src/test/scala/org/scalajs/macrotaskexecutor/WebWorkerMacrotaskSuite.scala @@ -26,7 +26,7 @@ import scala.util.Try class WebWorkerMacrotaskSuite extends FunSuite { import MacrotaskExecutor.Implicits._ - + def scalaVersion = if (BuildInfo.scalaVersion.startsWith("2")) BuildInfo.scalaVersion.split("\\.").init.mkString(".") else @@ -37,10 +37,12 @@ class WebWorkerMacrotaskSuite extends FunSuite { Try(js.isUndefined(js.Dynamic.global.window.Worker)).toOption .filterNot(identity) .foreach { _ => - test("macrotask executor should pass the suite on a webworker") { + test("pass the MacrotaskSuite in a web worker") { val p = Promise[Boolean]() - val worker = new Worker(s"file://${targetDir}/scala-js-macrotask-executor-webworker-fastopt/main.js") + val worker = new Worker( + s"file://${targetDir}/scala-js-macrotask-executor-webworker-fastopt/main.js" + ) worker.onmessage = { event => event.data match { From 574221ed8f715c811914dd072f7207428b5a909d Mon Sep 17 00:00:00 2001 From: Arman Bilge Date: Tue, 7 Sep 2021 01:11:53 +0000 Subject: [PATCH 2/2] Fix compile --- .../macrotaskexecutor/MacrotaskExecutorSuiteRunner.scala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/webworker/src/main/scala/org/scalajs/macrotaskexecutor/MacrotaskExecutorSuiteRunner.scala b/webworker/src/main/scala/org/scalajs/macrotaskexecutor/MacrotaskExecutorSuiteRunner.scala index a6d9cf4..5ac37d1 100644 --- a/webworker/src/main/scala/org/scalajs/macrotaskexecutor/MacrotaskExecutorSuiteRunner.scala +++ b/webworker/src/main/scala/org/scalajs/macrotaskexecutor/MacrotaskExecutorSuiteRunner.scala @@ -23,16 +23,13 @@ import org.junit.runner.notification.RunNotifier import org.scalajs.dom.webworkers.DedicatedWorkerGlobalScope import scala.scalajs.js -import scala.util object MacrotaskExecutorSuiteRunner { - import MacrotaskExecutor.Implicits._ - def postMessage(msg: js.Any): Unit = DedicatedWorkerGlobalScope.self.postMessage(msg) - def main(args: Array[String]): Unit = + def main(args: Array[String]): Unit = { new MUnitRunner( classOf[MacrotaskExecutorSuite], () => new MacrotaskExecutorSuite @@ -72,4 +69,7 @@ object MacrotaskExecutorSuiteRunner { reportTest(success = false) }) + + () + } }