From 9e155f4956ad608342eb760c6939ebd9aa1a51a8 Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Mon, 12 Apr 2010 21:45:17 +0000 Subject: Disabling what I think are the last two failing... Disabling what I think are the last two failing tests, one each of the two leading bugs among those we've seen here today on testing theater: "could not find toMap: (x$1: scala.collection.TraversableOnce,x$2: Predef$<:<)" and "scala.tools.nsc.symtab.Types$TypeError: method react cannot be accessed in java.lang.Object with scala.actors.Reactor[Any] No review but hey lets' see if we can re-enable these tests soonish. --- test/disabled/jvm/actor-getstate.scala | 85 ++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 test/disabled/jvm/actor-getstate.scala (limited to 'test/disabled/jvm/actor-getstate.scala') diff --git a/test/disabled/jvm/actor-getstate.scala b/test/disabled/jvm/actor-getstate.scala new file mode 100644 index 0000000000..a6e15a8721 --- /dev/null +++ b/test/disabled/jvm/actor-getstate.scala @@ -0,0 +1,85 @@ +import scala.actors.{Reactor, Actor, TIMEOUT} +import Actor._ + +object Test { + + def assert(cond: => Boolean, hint: String) { + if (!cond) + println("FAIL ["+hint+"]") + } + + def expectActorState(a: Reactor[T] forSome { type T }, s: Actor.State.Value) { + var done = false + var i = 0 + while (!done) { + i = i + 1 + if (i == 10) { // only wait for 2 seconds total + println("FAIL ["+a+": expected "+s+"]") + done = true + } + + Thread.sleep(200) + if (a.getState == s) // success + done = true + } + } + + def main(args: Array[String]) { + actor { + val a = new Reactor[Any] { + def act() { + assert(getState == Actor.State.Runnable, "runnable1") + react { + case 'go => + println("OK") + } + } + } + expectActorState(a, Actor.State.New) + + a.start() + expectActorState(a, Actor.State.Suspended) + + a ! 'go + expectActorState(a, Actor.State.Terminated) + + val b = new Actor { + def act() { + assert(getState == Actor.State.Runnable, "runnable2: "+getState) + react { + case 'go => + reactWithin(100000) { + case TIMEOUT => + case 'go => + receive { + case 'go => + } + receiveWithin(100000) { + case TIMEOUT => + case 'go => + println("OK") + } + } + } + } + } + expectActorState(b, Actor.State.New) + + b.start() + expectActorState(b, Actor.State.Suspended) + + b ! 'go + expectActorState(b, Actor.State.TimedSuspended) + + b ! 'go + expectActorState(b, Actor.State.Blocked) + + b ! 'go + expectActorState(b, Actor.State.TimedBlocked) + + b ! 'go + expectActorState(b, Actor.State.Terminated) + } + } + +} -- cgit v1.2.3