summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorPhilipp Haller <hallerp@gmail.com>2010-03-08 15:01:53 +0000
committerPhilipp Haller <hallerp@gmail.com>2010-03-08 15:01:53 +0000
commit57261cf375a8442a267b918ed582af526f8491fa (patch)
tree7198dd7ee431697803bf865ccb7343aa2f939664 /test
parent13f24056a444fd5038cebdb294a0959bfe979492 (diff)
downloadscala-57261cf375a8442a267b918ed582af526f8491fa.tar.gz
scala-57261cf375a8442a267b918ed582af526f8491fa.tar.bz2
scala-57261cf375a8442a267b918ed582af526f8491fa.zip
Reactor now has type parameter.
Diffstat (limited to 'test')
-rw-r--r--test/files/jvm/actor-getstate.check2
-rw-r--r--test/files/jvm/actor-getstate.scala73
-rw-r--r--test/files/jvm/reactor-exceptionOnSend.scala4
-rw-r--r--test/files/jvm/reactor-producer-consumer.scala10
-rw-r--r--test/files/jvm/reactor.scala6
-rw-r--r--test/files/jvm/replyablereactor2.scala2
-rw-r--r--test/files/jvm/replyablereactor3.scala2
-rw-r--r--test/files/jvm/replyablereactor4.scala2
8 files changed, 88 insertions, 13 deletions
diff --git a/test/files/jvm/actor-getstate.check b/test/files/jvm/actor-getstate.check
new file mode 100644
index 0000000000..2c94e48371
--- /dev/null
+++ b/test/files/jvm/actor-getstate.check
@@ -0,0 +1,2 @@
+OK
+OK
diff --git a/test/files/jvm/actor-getstate.scala b/test/files/jvm/actor-getstate.scala
new file mode 100644
index 0000000000..9de3247653
--- /dev/null
+++ b/test/files/jvm/actor-getstate.scala
@@ -0,0 +1,73 @@
+import scala.actors.{Reactor, Actor, TIMEOUT}
+
+object Test {
+
+ def assert(cond: => Boolean) {
+ if (!cond)
+ println("FAIL")
+ }
+
+ def main(args: Array[String]) {
+ val a = new Reactor[Any] {
+ def act() {
+ assert(getState == Actor.State.Runnable)
+ react {
+ case 'go =>
+ println("OK")
+ }
+ }
+ }
+ assert(a.getState == Actor.State.New)
+
+ a.start()
+ Thread.sleep(100)
+ assert(a.getState == Actor.State.Suspended)
+
+ a ! 'go
+ Thread.sleep(100)
+ assert(a.getState == Actor.State.Terminated)
+
+ val b = new Actor {
+ def act() {
+ assert(getState == Actor.State.Runnable)
+ react {
+ case 'go =>
+ reactWithin(100000) {
+ case TIMEOUT =>
+ case 'go =>
+ receive {
+ case 'go =>
+ }
+ receiveWithin(100000) {
+ case TIMEOUT =>
+ case 'go =>
+ println("OK")
+ }
+ }
+ }
+ }
+ }
+ assert(b.getState == Actor.State.New)
+
+ b.start()
+ Thread.sleep(100)
+ assert(b.getState == Actor.State.Suspended)
+
+ b ! 'go
+ Thread.sleep(100)
+ assert(b.getState == Actor.State.TimedSuspended)
+
+ b ! 'go
+ Thread.sleep(100)
+ assert(b.getState == Actor.State.Blocked)
+
+ b ! 'go
+ Thread.sleep(100)
+ assert(b.getState == Actor.State.TimedBlocked)
+
+ b ! 'go
+ Thread.sleep(100)
+ assert(b.getState == Actor.State.Terminated)
+ }
+
+}
diff --git a/test/files/jvm/reactor-exceptionOnSend.scala b/test/files/jvm/reactor-exceptionOnSend.scala
index 3684943b9b..c89aab334b 100644
--- a/test/files/jvm/reactor-exceptionOnSend.scala
+++ b/test/files/jvm/reactor-exceptionOnSend.scala
@@ -3,7 +3,7 @@ import scala.actors.Actor._
case class MyException(text: String) extends Exception(text)
-object A extends Reactor {
+object A extends Reactor[Any] {
override def exceptionHandler = {
case MyException(text) =>
println("receiver handles exception")
@@ -29,7 +29,7 @@ object A extends Reactor {
}
}
-object B extends Reactor {
+object B extends Reactor[Any] {
def act() {
A.start()
A ! 'hello
diff --git a/test/files/jvm/reactor-producer-consumer.scala b/test/files/jvm/reactor-producer-consumer.scala
index 946e1561ce..0d33043fc6 100644
--- a/test/files/jvm/reactor-producer-consumer.scala
+++ b/test/files/jvm/reactor-producer-consumer.scala
@@ -2,10 +2,10 @@ import scala.actors.Reactor
object Test {
case class Stop()
- case class Get(from: Reactor)
+ case class Get(from: Reactor[Any])
case class Put(x: Int)
- class UnboundedBuffer extends Reactor {
+ class UnboundedBuffer extends Reactor[Any] {
def act() {
react {
case Stop() =>
@@ -20,7 +20,7 @@ object Test {
}
}
- class Producer(buf: UnboundedBuffer, n: Int, delay: Long, parent: Reactor) extends Reactor {
+ class Producer(buf: UnboundedBuffer, n: Int, delay: Long, parent: Reactor[Any]) extends Reactor[Any] {
def act() {
var i = 0
while (i < n) {
@@ -32,7 +32,7 @@ object Test {
}
}
- class Consumer(buf: UnboundedBuffer, n: Int, delay: Long, parent: Reactor) extends Reactor {
+ class Consumer(buf: UnboundedBuffer, n: Int, delay: Long, parent: Reactor[Any]) extends Reactor[Any] {
val step = n / 10
var i = 0
def act() {
@@ -53,7 +53,7 @@ object Test {
}
def main(args: Array[String]) {
- val parent = new Reactor {
+ val parent = new Reactor[Any] {
def act() {
val buffer = new UnboundedBuffer
buffer.start()
diff --git a/test/files/jvm/reactor.scala b/test/files/jvm/reactor.scala
index 919263b65a..12d5c7c221 100644
--- a/test/files/jvm/reactor.scala
+++ b/test/files/jvm/reactor.scala
@@ -1,7 +1,7 @@
import scala.actors.Reactor
-case class Ping(from: Reactor)
+case class Ping(from: Reactor[Any])
case object Pong
case object Stop
@@ -19,7 +19,7 @@ object Test {
}
}
-class PingActor(count: Int, pong: Reactor) extends Reactor {
+class PingActor(count: Int, pong: Reactor[Any]) extends Reactor[Any] {
def act() {
var pingsLeft = count - 1
pong ! Ping(this)
@@ -41,7 +41,7 @@ class PingActor(count: Int, pong: Reactor) extends Reactor {
}
}
-class PongActor extends Reactor {
+class PongActor extends Reactor[Any] {
def act() {
var pongCount = 0
loop {
diff --git a/test/files/jvm/replyablereactor2.scala b/test/files/jvm/replyablereactor2.scala
index 22622274dd..57b7cfe201 100644
--- a/test/files/jvm/replyablereactor2.scala
+++ b/test/files/jvm/replyablereactor2.scala
@@ -19,7 +19,7 @@ object Test {
val a = new MyActor
a.start()
- val b = new Reactor {
+ val b = new Reactor[Any] {
def act() {
react {
case r: MyActor =>
diff --git a/test/files/jvm/replyablereactor3.scala b/test/files/jvm/replyablereactor3.scala
index 676ffe98e6..b33db811e2 100644
--- a/test/files/jvm/replyablereactor3.scala
+++ b/test/files/jvm/replyablereactor3.scala
@@ -19,7 +19,7 @@ object Test {
val a = new MyActor
a.start()
- val b = new Reactor {
+ val b = new Reactor[Any] {
def act() {
react {
case r: MyActor =>
diff --git a/test/files/jvm/replyablereactor4.scala b/test/files/jvm/replyablereactor4.scala
index d61fb64287..dc24f5e88d 100644
--- a/test/files/jvm/replyablereactor4.scala
+++ b/test/files/jvm/replyablereactor4.scala
@@ -19,7 +19,7 @@ object Test {
val a = new MyActor
a.start()
- val b = new Reactor {
+ val b = new Reactor[Any] {
def act() {
react {
case r: MyActor =>