fix CallingThreadDispatcher and re-enable its test

This commit is contained in:
Roland 2011-10-21 18:47:44 +02:00
parent bb942750aa
commit fc8ab7dad8
5 changed files with 88 additions and 83 deletions

View file

@ -7,50 +7,11 @@ import akka.actor.dispatch.ActorModelSpec
import java.util.concurrent.CountDownLatch
import org.junit.{ After, Test }
// TODO fix this test when the CallingThreadDispatcher is fixed
/*
@org.junit.runner.RunWith(classOf[org.scalatest.junit.JUnitRunner])
class CallingThreadDispatcherModelSpec extends ActorModelSpec {
import ActorModelSpec._
def newInterceptedDispatcher = new CallingThreadDispatcher with MessageDispatcherInterceptor
def newInterceptedDispatcher = new CallingThreadDispatcher(app, "test", true) with MessageDispatcherInterceptor
def dispatcherType = "Calling Thread Dispatcher"
// A CallingThreadDispatcher can by design not process messages in parallel,
// so disable this test
//override def dispatcherShouldProcessMessagesInParallel {}
// This test needs to be adapted: CTD runs the flood completely sequentially
// with start, invocation, stop, schedule shutdown, abort shutdown, repeat;
// add "keeper" actor to lock down the dispatcher instance, since the
// frequent attempted shutdown seems rather costly (random timing failures
// without this fix)
// override def dispatcherShouldHandleWavesOfActors {
// implicit val dispatcher = newInterceptedDispatcher
//
// def flood(num: Int) {
// val cachedMessage = CountDownNStop(new CountDownLatch(num))
// val keeper = newTestActor
// (1 to num) foreach { _
// newTestActor ! cachedMessage
// }
// keeper.stop()
// assertCountDown(cachedMessage.latch, 10000, "Should process " + num + " countdowns")
// }
// for (run 1 to 3) {
// flood(10000)
// assertDispatcher(dispatcher)(starts = run, stops = run)
// }
// }
//override def dispatcherShouldCompleteAllUncompletedSenderFuturesOnDeregister {
//Can't handle this...
//}
@After
def after {
//remove the interrupted status since we are messing with interrupted exceptions.
Thread.interrupted()
}
}
*/