summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Haller <hallerp@gmail.com>2010-04-13 14:41:02 +0000
committerPhilipp Haller <hallerp@gmail.com>2010-04-13 14:41:02 +0000
commitbc791369f79f2d1a72a93674eb7b0f34ca58d8d1 (patch)
treea29f5941272cbe318f67f446d8202156da0ecf06
parentc54b7a99e8a4913ceee3f40631edba72c33145ec (diff)
downloadscala-bc791369f79f2d1a72a93674eb7b0f34ca58d8d1.tar.gz
scala-bc791369f79f2d1a72a93674eb7b0f34ca58d8d1.tar.bz2
scala-bc791369f79f2d1a72a93674eb7b0f34ca58d8d1.zip
Hardened actor tests. No review.
-rw-r--r--test/files/jvm/actor-exceptions.scala10
-rw-r--r--test/files/jvm/actor-executor.scala10
-rw-r--r--test/files/jvm/actor-executor2.scala15
-rw-r--r--test/files/jvm/actor-executor3.scala10
-rw-r--r--test/files/jvm/actor-link-getstate.scala15
-rw-r--r--test/files/jvm/actor-looping.scala5
-rw-r--r--test/files/jvm/actor-normal-exit.scala10
-rw-r--r--test/files/jvm/actor-termination.scala5
-rw-r--r--test/files/jvm/actor-uncaught-exception.scala16
-rw-r--r--test/files/jvm/actor-uncaught-exception2.scala16
-rw-r--r--test/files/jvm/daemon-actor-termination.scala10
-rw-r--r--test/files/jvm/future-alarm.scala5
-rw-r--r--test/files/jvm/future-awaitall-zero.scala5
-rw-r--r--test/files/jvm/future-termination.scala5
-rw-r--r--test/files/jvm/reactor-exceptionOnSend.scala11
-rw-r--r--test/files/jvm/reactor-producer-consumer.scala20
-rw-r--r--test/files/jvm/reactor.scala10
-rw-r--r--test/files/jvm/replyablereactor.scala10
-rw-r--r--test/files/jvm/replyablereactor2.scala10
-rw-r--r--test/files/jvm/replyablereactor3.scala10
-rw-r--r--test/files/jvm/replyablereactor4.scala10
-rw-r--r--test/files/jvm/replyreactor-react-sender.scala10
-rw-r--r--test/files/jvm/replyreactor.scala10
-rw-r--r--test/files/jvm/scheduler-adapter.scala10
-rw-r--r--test/files/jvm/t1449.scala10
-rw-r--r--test/files/jvm/t1948.scala16
-rw-r--r--test/files/jvm/t2359.scala25
-rw-r--r--test/files/jvm/t2530.scala14
-rw-r--r--test/files/jvm/t3102.scala10
29 files changed, 319 insertions, 4 deletions
diff --git a/test/files/jvm/actor-exceptions.scala b/test/files/jvm/actor-exceptions.scala
index 77bf05c048..384226d777 100644
--- a/test/files/jvm/actor-exceptions.scala
+++ b/test/files/jvm/actor-exceptions.scala
@@ -13,12 +13,17 @@ case class MyOtherException(text: String) extends Exception {
object Master extends Actor {
trapExit = true
def act() {
+ try {
link(Slave)
Slave.start()
for (i <- 0 until 10) Slave ! A
react {
case Exit(from, reason) =>
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
@@ -28,6 +33,7 @@ object Slave extends Actor {
case MyException(text) =>
}
def act() {
+ try {
var cnt = 0
loop {
react {
@@ -39,6 +45,10 @@ object Slave extends Actor {
}
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/actor-executor.scala b/test/files/jvm/actor-executor.scala
index 435c666fff..b1f9caebdd 100644
--- a/test/files/jvm/actor-executor.scala
+++ b/test/files/jvm/actor-executor.scala
@@ -9,6 +9,7 @@ trait AdaptedActor extends Actor {
object One extends AdaptedActor {
def act() {
+ try {
Two.start()
var i = 0
loopWhile (i < 10000) {
@@ -22,11 +23,16 @@ object One extends AdaptedActor {
Test.executor.shutdown()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
object Two extends AdaptedActor {
def act() {
+ try {
var i = 0
loopWhile (i < 10000) {
i += 1
@@ -37,6 +43,10 @@ object Two extends AdaptedActor {
One ! 'MsgForOne
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/actor-executor2.scala b/test/files/jvm/actor-executor2.scala
index 9e99e167aa..da64a7fc43 100644
--- a/test/files/jvm/actor-executor2.scala
+++ b/test/files/jvm/actor-executor2.scala
@@ -4,6 +4,7 @@ import java.util.concurrent.Executors
object One extends AdaptedActor {
def act() {
+ try {
Two.start()
var i = 0
loopWhile (i < Test.NUM_MSG) {
@@ -15,11 +16,16 @@ object One extends AdaptedActor {
println("One: OK")
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
object Two extends AdaptedActor {
def act() {
+ try {
var i = 0
loopWhile (i < Test.NUM_MSG) {
i += 1
@@ -30,6 +36,10 @@ object Two extends AdaptedActor {
One ! 'MsgForOne
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
@@ -54,6 +64,7 @@ object Test {
}
def main(args: Array[String]) {
+ try {
self.trapExit = true
link(One)
One.start()
@@ -63,5 +74,9 @@ object Test {
println("One exited")
Test.executor.shutdown()
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/actor-executor3.scala b/test/files/jvm/actor-executor3.scala
index bf060b8ac5..4fde2c6c5f 100644
--- a/test/files/jvm/actor-executor3.scala
+++ b/test/files/jvm/actor-executor3.scala
@@ -4,6 +4,7 @@ import java.util.concurrent.Executors
object One extends AdaptedActor {
def act() {
+ try {
Two.start()
var i = 0
loopWhile (i < Test.NUM_MSG) {
@@ -15,11 +16,16 @@ object One extends AdaptedActor {
println("One: OK")
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
object Two extends AdaptedActor {
def act() {
+ try {
var i = 0
loopWhile (i < Test.NUM_MSG) {
i += 1
@@ -30,6 +36,10 @@ object Two extends AdaptedActor {
One ! 'MsgForOne
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/actor-link-getstate.scala b/test/files/jvm/actor-link-getstate.scala
index ec01757883..c4c33ef752 100644
--- a/test/files/jvm/actor-link-getstate.scala
+++ b/test/files/jvm/actor-link-getstate.scala
@@ -7,6 +7,7 @@ case class MyException(text: String) extends Exception(text) {
object Slave extends Actor {
def act() {
+ try {
loop {
react {
case 'doWork =>
@@ -14,18 +15,27 @@ object Slave extends Actor {
reply('done)
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
object Master extends Actor {
override def toString = "Master"
def act() {
+ try {
link(Slave)
Slave ! 'doWork
react {
case 'done =>
throw new MyException("Master crashed")
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
@@ -33,6 +43,7 @@ object Test {
def main(args: Array[String]) {
actor {
+ try {
self.trapExit = true
link(Slave)
Slave.start()
@@ -41,6 +52,10 @@ object Test {
case Exit(from, reason) if (from == Slave) =>
Console.err.println(Slave.getState)
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/actor-looping.scala b/test/files/jvm/actor-looping.scala
index 9599adbb2c..475d4754ce 100644
--- a/test/files/jvm/actor-looping.scala
+++ b/test/files/jvm/actor-looping.scala
@@ -6,6 +6,7 @@ object Test {
def main(args: Array[String]) {
val a = actor {
+ try {
var cnt = 0
loop {
react {
@@ -20,6 +21,10 @@ object Test {
}
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
for (i <- 0 until 10) a ! A
diff --git a/test/files/jvm/actor-normal-exit.scala b/test/files/jvm/actor-normal-exit.scala
index 40dc7b7da4..20863d5bb0 100644
--- a/test/files/jvm/actor-normal-exit.scala
+++ b/test/files/jvm/actor-normal-exit.scala
@@ -5,18 +5,28 @@ object Test {
object Master extends Actor {
trapExit = true
def act() {
+ try {
Slave.start()
react {
case Exit(from, reason) =>
println("slave exited for reason " + reason)
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
object Slave extends Actor {
def act() {
+ try {
link(Master)
println("Done")
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/actor-termination.scala b/test/files/jvm/actor-termination.scala
index 19dfaf8e17..d8e44a2797 100644
--- a/test/files/jvm/actor-termination.scala
+++ b/test/files/jvm/actor-termination.scala
@@ -5,9 +5,14 @@ import scala.actors.Actor
object Test {
def main(args: Array[String]) {
Actor.actor {
+ try {
println("I'm going to make you wait.")
Thread.sleep(5000)
println("Ok, I'm done.")
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
}
diff --git a/test/files/jvm/actor-uncaught-exception.scala b/test/files/jvm/actor-uncaught-exception.scala
index 9f64be26e1..9dbd36dd82 100644
--- a/test/files/jvm/actor-uncaught-exception.scala
+++ b/test/files/jvm/actor-uncaught-exception.scala
@@ -8,20 +8,32 @@ object Test {
case object StartError extends Actor {
def act() {
+ try {
throw new MyException("I don't want to run!")
+ } catch {
+ case e: Throwable if (!e.isInstanceOf[scala.util.control.ControlThrowable] &&
+ !e.isInstanceOf[MyException]) =>
+ e.printStackTrace()
+ }
}
}
case object MessageError extends Actor {
def act() {
+ try {
react {
case _ => throw new MyException("No message for me!")
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
case object Supervisor extends Actor {
def act() {
+ try {
trapExit = true
link(StartError)
link(MessageError)
@@ -37,6 +49,10 @@ object Test {
exit()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/actor-uncaught-exception2.scala b/test/files/jvm/actor-uncaught-exception2.scala
index 973cfb370a..626ce5da92 100644
--- a/test/files/jvm/actor-uncaught-exception2.scala
+++ b/test/files/jvm/actor-uncaught-exception2.scala
@@ -8,20 +8,32 @@ object Test {
case object StartError extends Actor {
def act() {
+ try {
throw new MyException("I don't want to run!")
+ } catch {
+ case e: Throwable if (!e.isInstanceOf[scala.util.control.ControlThrowable] &&
+ !e.isInstanceOf[MyException]) =>
+ e.printStackTrace()
+ }
}
}
case object MessageError extends Actor {
def act() {
+ try {
react {
case _ => throw new MyException("No message for me!")
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
case object Supervisor extends Actor {
def act() {
+ try {
trapExit = true
link(StartError)
link(MessageError)
@@ -38,6 +50,10 @@ object Test {
exit()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/daemon-actor-termination.scala b/test/files/jvm/daemon-actor-termination.scala
index 8e64749b1c..6ddfc3139d 100644
--- a/test/files/jvm/daemon-actor-termination.scala
+++ b/test/files/jvm/daemon-actor-termination.scala
@@ -5,6 +5,7 @@ object Test {
class MyDaemon extends DaemonActor {
def act() {
+ try {
react {
case 'hello =>
println("MSG1")
@@ -14,6 +15,10 @@ object Test {
println("done")
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
@@ -21,8 +26,13 @@ object Test {
val daemon = new MyDaemon
daemon.start()
Actor.actor {
+ try {
daemon !? 'hello
println("MSG2")
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
}
diff --git a/test/files/jvm/future-alarm.scala b/test/files/jvm/future-alarm.scala
index 0dda492741..8ee902b5ea 100644
--- a/test/files/jvm/future-alarm.scala
+++ b/test/files/jvm/future-alarm.scala
@@ -2,6 +2,7 @@ import scala.actors.Futures
object Test {
def main(args: Array[String]) {
+ try {
for (i <- 1 to 100000) {
Futures.alarm(0)
if (i % 10000 == 0)
@@ -12,5 +13,9 @@ object Test {
ft()
println("OK")
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/future-awaitall-zero.scala b/test/files/jvm/future-awaitall-zero.scala
index 125670d049..cd6ba172cc 100644
--- a/test/files/jvm/future-awaitall-zero.scala
+++ b/test/files/jvm/future-awaitall-zero.scala
@@ -3,6 +3,7 @@ import scala.actors.Actor._
object Test {
def main(args: Array[String]) {
+ try {
val ft1 = future { reactWithin(10000) {
case _ => println("FAIL")
} }
@@ -13,5 +14,9 @@ object Test {
val res = awaitAll(0, ft1, ft2)
println("OK")
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/future-termination.scala b/test/files/jvm/future-termination.scala
index c448a88aa7..688de60c3b 100644
--- a/test/files/jvm/future-termination.scala
+++ b/test/files/jvm/future-termination.scala
@@ -4,11 +4,16 @@ import scala.actors.Futures
object Test {
def main(args: Array[String]) {
+ try {
val meaningOfLife = Futures.future {
Thread.sleep(5000) // pretend this is a harder problem than it is
println("I have the answer!")
42
}
println("I can't wait that long, bye.")
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/reactor-exceptionOnSend.scala b/test/files/jvm/reactor-exceptionOnSend.scala
index c89aab334b..3d9a042131 100644
--- a/test/files/jvm/reactor-exceptionOnSend.scala
+++ b/test/files/jvm/reactor-exceptionOnSend.scala
@@ -19,6 +19,7 @@ object A extends Reactor[Any] {
var state = 0
def act() {
+ try {
loop {
react {
case 'hello if guard() =>
@@ -26,14 +27,24 @@ object A extends Reactor[Any] {
exit()
}
}
+ } catch {
+ case e: Throwable if (!e.isInstanceOf[scala.util.control.ControlThrowable] &&
+ !e.isInstanceOf[MyException]) =>
+ e.printStackTrace()
+ }
}
}
object B extends Reactor[Any] {
def act() {
+ try {
A.start()
A ! 'hello
A ! 'hello
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/reactor-producer-consumer.scala b/test/files/jvm/reactor-producer-consumer.scala
index 0d33043fc6..8a6b17c3ad 100644
--- a/test/files/jvm/reactor-producer-consumer.scala
+++ b/test/files/jvm/reactor-producer-consumer.scala
@@ -7,6 +7,7 @@ object Test {
class UnboundedBuffer extends Reactor[Any] {
def act() {
+ try {
react {
case Stop() =>
case Get(from) =>
@@ -17,11 +18,16 @@ object Test {
act()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
class Producer(buf: UnboundedBuffer, n: Int, delay: Long, parent: Reactor[Any]) extends Reactor[Any] {
def act() {
+ try {
var i = 0
while (i < n) {
i += 1
@@ -29,6 +35,10 @@ object Test {
buf ! Put(42)
}
parent ! Stop()
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
@@ -36,6 +46,7 @@ object Test {
val step = n / 10
var i = 0
def act() {
+ try {
if (i < n) {
i += 1
if (delay > 0) Thread.sleep(delay)
@@ -49,12 +60,17 @@ object Test {
} else {
parent ! Stop()
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
def main(args: Array[String]) {
val parent = new Reactor[Any] {
def act() {
+ try {
val buffer = new UnboundedBuffer
buffer.start()
val producer = new Producer(buffer, 10000, 0, this)
@@ -68,6 +84,10 @@ object Test {
buffer ! Stop()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
parent.start()
diff --git a/test/files/jvm/reactor.scala b/test/files/jvm/reactor.scala
index 12d5c7c221..dbc9a6bdda 100644
--- a/test/files/jvm/reactor.scala
+++ b/test/files/jvm/reactor.scala
@@ -21,6 +21,7 @@ object Test {
class PingActor(count: Int, pong: Reactor[Any]) extends Reactor[Any] {
def act() {
+ try {
var pingsLeft = count - 1
pong ! Ping(this)
loop {
@@ -38,11 +39,16 @@ class PingActor(count: Int, pong: Reactor[Any]) extends Reactor[Any] {
}
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
class PongActor extends Reactor[Any] {
def act() {
+ try {
var pongCount = 0
loop {
react {
@@ -56,5 +62,9 @@ class PongActor extends Reactor[Any] {
exit()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/replyablereactor.scala b/test/files/jvm/replyablereactor.scala
index 896a0bf440..e1fabc98da 100644
--- a/test/files/jvm/replyablereactor.scala
+++ b/test/files/jvm/replyablereactor.scala
@@ -2,6 +2,7 @@ import scala.actors.ReplyReactor
class MyActor extends ReplyReactor {
def act() {
+ try {
loop {
react {
case 'hello =>
@@ -10,6 +11,10 @@ class MyActor extends ReplyReactor {
exit()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
@@ -20,6 +25,7 @@ object Test {
val b = new ReplyReactor {
def act() {
+ try {
react {
case r: MyActor =>
var i = 0
@@ -37,6 +43,10 @@ object Test {
}
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
b.start()
diff --git a/test/files/jvm/replyablereactor2.scala b/test/files/jvm/replyablereactor2.scala
index 57b7cfe201..da9e0e269e 100644
--- a/test/files/jvm/replyablereactor2.scala
+++ b/test/files/jvm/replyablereactor2.scala
@@ -3,6 +3,7 @@ import scala.actors.Actor._
class MyActor extends ReplyReactor {
def act() {
+ try {
loop {
react {
case 'hello =>
@@ -11,6 +12,10 @@ class MyActor extends ReplyReactor {
exit()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
@@ -21,6 +26,7 @@ object Test {
val b = new Reactor[Any] {
def act() {
+ try {
react {
case r: MyActor =>
var i = 0
@@ -36,6 +42,10 @@ object Test {
}
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
b.start()
diff --git a/test/files/jvm/replyablereactor3.scala b/test/files/jvm/replyablereactor3.scala
index b33db811e2..2c26b8a176 100644
--- a/test/files/jvm/replyablereactor3.scala
+++ b/test/files/jvm/replyablereactor3.scala
@@ -3,6 +3,7 @@ import scala.actors.Actor._
class MyActor extends ReplyReactor {
def act() {
+ try {
loop {
react {
case 'hello =>
@@ -11,6 +12,10 @@ class MyActor extends ReplyReactor {
exit()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
@@ -21,6 +26,7 @@ object Test {
val b = new Reactor[Any] {
def act() {
+ try {
react {
case r: MyActor =>
var i = 0
@@ -35,6 +41,10 @@ object Test {
}
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
b.start()
diff --git a/test/files/jvm/replyablereactor4.scala b/test/files/jvm/replyablereactor4.scala
index dc24f5e88d..7679a5adf8 100644
--- a/test/files/jvm/replyablereactor4.scala
+++ b/test/files/jvm/replyablereactor4.scala
@@ -3,6 +3,7 @@ import scala.actors.Actor._
class MyActor extends ReplyReactor {
def act() {
+ try {
loop {
react {
case 'hello =>
@@ -11,6 +12,10 @@ class MyActor extends ReplyReactor {
exit()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
@@ -21,6 +26,7 @@ object Test {
val b = new Reactor[Any] {
def act() {
+ try {
react {
case r: MyActor =>
var i = 0
@@ -35,6 +41,10 @@ object Test {
}
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
b.start()
diff --git a/test/files/jvm/replyreactor-react-sender.scala b/test/files/jvm/replyreactor-react-sender.scala
index 1127dfd0a5..c9884295f6 100644
--- a/test/files/jvm/replyreactor-react-sender.scala
+++ b/test/files/jvm/replyreactor-react-sender.scala
@@ -10,6 +10,7 @@ object Test {
val a = new ReplyReactor {
def act() {
+ try {
var i = 0
loopWhile (i < NUM) {
i += 1
@@ -20,12 +21,17 @@ object Test {
} andThen {
b ! 'ok
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
a.start()
b = new ReplyReactor {
def act() {
+ try {
for (_ <- 0 until NUM)
a ! 'hello
react {
@@ -33,6 +39,10 @@ object Test {
case 'ok => println("OK")
case other => println(other)
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
b.start()
diff --git a/test/files/jvm/replyreactor.scala b/test/files/jvm/replyreactor.scala
index fb915cf3f9..0cecf29ec7 100644
--- a/test/files/jvm/replyreactor.scala
+++ b/test/files/jvm/replyreactor.scala
@@ -4,16 +4,22 @@ object Test {
def main(args: Array[String]) {
val a = new ReplyReactor {
def act() {
+ try {
react {
case 'hello =>
sender ! 'hello
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
a.start()
val b = new ReplyReactor {
def act() {
+ try {
react {
case r: ReplyReactor =>
r ! 'hello
@@ -22,6 +28,10 @@ object Test {
println(any)
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
b.start()
diff --git a/test/files/jvm/scheduler-adapter.scala b/test/files/jvm/scheduler-adapter.scala
index 79c901f91e..d6a8a446a0 100644
--- a/test/files/jvm/scheduler-adapter.scala
+++ b/test/files/jvm/scheduler-adapter.scala
@@ -7,22 +7,32 @@ trait AdaptedActor extends Actor {
object One extends AdaptedActor {
def act() {
+ try {
Two.start()
Two ! 'MsgForTwo
react {
case 'MsgForOne =>
println("One: received msg")
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
object Two extends AdaptedActor {
def act() {
+ try {
react {
case 'MsgForTwo =>
println("Two: received msg")
One ! 'MsgForOne
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/t1449.scala b/test/files/jvm/t1449.scala
index 08c153afc0..3822cf7dd5 100644
--- a/test/files/jvm/t1449.scala
+++ b/test/files/jvm/t1449.scala
@@ -4,12 +4,22 @@ import scala.actors.Futures._
object Test {
def main(args: Array[String]) {
val a = actor {
+ try {
react {
case ft: Future[a] =>
println(ft())
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
+ try {
val ft = future { 42 }
a ! ft
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/t1948.scala b/test/files/jvm/t1948.scala
index fc1fedac1f..084c956398 100644
--- a/test/files/jvm/t1948.scala
+++ b/test/files/jvm/t1948.scala
@@ -4,9 +4,21 @@ import scala.actors.Actor._
object Test {
def main (args: Array[String]) {
- val actors = (1 to 1000).toList map { x => actor { loop { react {
- case x: Array[Int] => reply ("OK"); exit }}}}
+ val actors = (1 to 1000).toList map { x => actor {
+ try {
+ loop { react {
+ case x: Array[Int] => reply ("OK"); exit }}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
+ } }
+ try {
actors foreach { x => x !? new Array[Int] (1000000) }
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/t2359.scala b/test/files/jvm/t2359.scala
index 1b4d5e0a27..69c69d7b3b 100644
--- a/test/files/jvm/t2359.scala
+++ b/test/files/jvm/t2359.scala
@@ -3,19 +3,44 @@ import scala.actors.Futures._
object Test {
def main(args: Array[String]) {
val x = future {
+ try {
System.out.println(1)
future {
+ try {
System.out.println(2)
future {
+ try {
System.out.println(3)
future {
+ try {
System.out.println(4)
future {
+ try {
System.out.println(5)
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}()
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}()
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}()
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}()
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}()
}
}
diff --git a/test/files/jvm/t2530.scala b/test/files/jvm/t2530.scala
index 642fb05a5d..c2925a92d1 100644
--- a/test/files/jvm/t2530.scala
+++ b/test/files/jvm/t2530.scala
@@ -50,6 +50,7 @@ case class Matrix(numRows: Int, numCols: Int, values: Array[Double]) {
val rows = for (j <- 0 until m) yield {
Futures.future {
+ try {
val b_j = new Array[Double](n)
var k = 0
while (k < n) { // sadly, while loops are still faster than for loops
@@ -69,13 +70,22 @@ case class Matrix(numRows: Int, numCols: Int, values: Array[Double]) {
}
//printf("future %d of %d completed.%n", j, m)
j
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
// rows.foreach { x=> x() } // This appears to force sequential execution, so use:
// timeout is 10 years; see http://lampsvn.epfl.ch/trac/scala/ticket/2515
-
- val done = Futures.awaitAll(10*365*24*60*60*1000, rows.toArray : _*) // list to array, as varargs.
+ val done: List[Option[Any]] = try {
+ Futures.awaitAll(10*365*24*60*60*1000, rows.toArray : _*) // list to array, as varargs.
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ List()
+ }
if (done.contains(None))
None
diff --git a/test/files/jvm/t3102.scala b/test/files/jvm/t3102.scala
index ea3e720eca..fbcf2e60e6 100644
--- a/test/files/jvm/t3102.scala
+++ b/test/files/jvm/t3102.scala
@@ -4,13 +4,19 @@ import Actor._
object Test {
def main(args: Array[String]) {
val a = actor {
+ try {
react {
case 'hello =>
reply(42)
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
val b = actor {
+ try {
self.trapExit = true
val ft = a !! 'hello
println(ft())
@@ -21,6 +27,10 @@ object Test {
case any =>
println(any)
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
}