From 149b917dfe95887b1c46cb7bbf45a6ddbe32ca1b Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Wed, 26 Dec 2018 18:31:23 +0100 Subject: Update tests for ScalaJS --- example/src/main/scala/example/main.scala | 27 +++++++++++++++++---------- shared/src/main/scala/escale/api.scala | 3 +-- shared/src/test/scala/escale/SyntaxTest.scala | 4 ++-- 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/example/src/main/scala/example/main.scala b/example/src/main/scala/example/main.scala index a8470a2..473cce0 100644 --- a/example/src/main/scala/example/main.scala +++ b/example/src/main/scala/example/main.scala @@ -21,7 +21,7 @@ object Main extends App { val p2 = async { var a = 0 - while ({a = await(ch.take()); a} < 5) { + while ({ a = await(ch.take()); a } < 5) { println(a) } } @@ -53,7 +53,7 @@ object SelectTest extends App { val r = async { await(Channel.select(ch, t)) match { - case (`t`, _) => println("timeout") + case (`t`, _) => println("timeout") case (`ch`, value: Int) => await(out.put(value.toString)), } await(out.take()) @@ -63,7 +63,6 @@ object SelectTest extends App { } - object Select2Test extends App { val ch = Channel[Int](0) @@ -78,18 +77,26 @@ object Select2Test extends App { // } Channel.select2( - t -> {u: Unit => println("timeout")}, - ch -> {v: Int => println(v); out.put(v.toString); ()} + t -> { u: Unit => + println("timeout") + }, + ch -> { v: Int => + println(v); out.put(v.toString); () + } ) val r = async { - await(Channel.select2( - t -> {u: Unit => println("timeout")}, - out -> {s: String => println(s)} - )) + await( + Channel.select2( + t -> { u: Unit => + println("timeout") + }, + out -> { s: String => + println(s) + } + )) } Await.result(r, 10.seconds) println(r) - } diff --git a/shared/src/main/scala/escale/api.scala b/shared/src/main/scala/escale/api.scala index ac475ae..8a72cea 100644 --- a/shared/src/main/scala/escale/api.scala +++ b/shared/src/main/scala/escale/api.scala @@ -5,6 +5,7 @@ import scala.annotation.tailrec import scala.collection.mutable import scala.concurrent.{Future, Promise} +// https://vimeo.com/100518968 class Channel[A](capacity: Int) { require(capacity >= 0, "capacity must be >= 0") import Channel._ @@ -88,8 +89,6 @@ object Channel { c } - //def select(ops: Op[_]*): Unit = ??? - def select(channels: Channel[_]*): Future[(Channel[_], Any)] = { val flag = new Flag val result = Promise[(Channel[_], Any)] diff --git a/shared/src/test/scala/escale/SyntaxTest.scala b/shared/src/test/scala/escale/SyntaxTest.scala index fffcbe9..6225839 100644 --- a/shared/src/test/scala/escale/SyntaxTest.scala +++ b/shared/src/test/scala/escale/SyntaxTest.scala @@ -30,8 +30,8 @@ object SyntaxTest extends TestSuite { val Ch1 = chan[Int]() val Ch2 = chan[Int]() - go {/*Thread.sleep(1);*/ Ch1 !< 1} - go {/*Thread.sleep(1);*/ Ch2 !< 1} + go {Thread.sleep(1); Ch1 !< 1} + go {Thread.sleep(1); Ch2 !< 1} select(Ch1, Ch2) match { case (Ch1, _) => "ch1 was first" -- cgit v1.2.3