Silence some more noisy tests

This commit is contained in:
Derek Williams 2011-06-20 15:11:32 -06:00
parent dabf14ef4b
commit d1b8b475fa
6 changed files with 64 additions and 20 deletions

View file

@ -7,6 +7,7 @@ package akka.actor
import org.scalatest.WordSpec
import org.scalatest.matchers.MustMatchers
import org.scalatest.BeforeAndAfterEach
import org.scalatest.BeforeAndAfterAll
import akka.testkit._
import akka.testkit.Testing.sleepFor
@ -14,6 +15,8 @@ import akka.util.duration._
import akka.config.Supervision._
import akka.{ Die, Ping }
import Actor._
import akka.event.EventHandler
import akka.testkit.TestEvent._
import java.util.concurrent.atomic.AtomicInteger
import java.util.concurrent.LinkedBlockingQueue
@ -192,9 +195,18 @@ object SupervisorSpec {
}
}
class SupervisorSpec extends WordSpec with MustMatchers with BeforeAndAfterEach {
class SupervisorSpec extends WordSpec with MustMatchers with BeforeAndAfterEach with BeforeAndAfterAll {
import SupervisorSpec._
override def beforeAll() = {
EventHandler notify Mute(EventFilter[Exception]("Die"),
EventFilter[IllegalStateException]("Don't wanna!"))
}
override def afterAll() = {
EventHandler notify UnMuteAll
}
override def beforeEach() = {
messageLog.clear
}

View file

@ -14,7 +14,10 @@ import org.scalatest.matchers.MustMatchers
class Ticket669Spec extends WordSpec with MustMatchers with BeforeAndAfterAll {
import Ticket669Spec._
override def afterAll = Actor.registry.local.shutdownAll
override def afterAll = {
Actor.registry.local.shutdownAll
akka.event.EventHandler.start
}
"A supervised actor with lifecycle PERMANENT" should {
"be able to reply on failure during preRestart" in {

View file

@ -107,7 +107,13 @@ class FutureSpec extends WordSpec with MustMatchers with Checkers with BeforeAnd
check({ (future: Future[Int], actions: List[FutureAction])
val result = (future /: actions)(_ /: _)
val expected = (future.await.value.get /: actions)(_ /: _)
(result.await.value.get.toString == expected.toString) :| (result.value.get.toString + " is expected to be " + expected.toString)
((result.await.value.get, expected) match {
case (Right(a), Right(b)) a == b
case (Left(a), Left(b)) if a.toString == b.toString true
case (Left(a), Left(b)) if a.getStackTrace.isEmpty || b.getStackTrace.isEmpty
a.getClass.toString == b.getClass.toString
case _ false
}) :| result.value.get.toString + " is expected to be " + expected.toString
}, minSuccessful(10000), workers(4))
}
}

View file

@ -1,6 +1,7 @@
package akka.actor
import org.scalatest.junit.JUnitSuite
import org.scalatest.BeforeAndAfterAll
import org.junit.Test
import Actor._
import org.scalatest.Assertions._
@ -25,9 +26,13 @@ object ActorRegistrySpec {
}
}
class ActorRegistrySpec extends JUnitSuite {
class ActorRegistrySpec extends JUnitSuite with BeforeAndAfterAll {
import ActorRegistrySpec._
override def afterAll = {
akka.event.EventHandler.start
}
@Test
def shouldGetActorByAddressFromActorRegistry {
Actor.registry.local.shutdownAll

View file

@ -1,22 +1,32 @@
package akka.actor
import org.scalatest.junit.JUnitSuite
import org.scalatest.BeforeAndAfterEach
import akka.event.EventHandler
import akka.testkit.TestEvent._
import akka.testkit.EventFilter
import Actor._
import java.util.concurrent.{ CountDownLatch, TimeUnit }
import akka.config.Supervision._
import org.multiverse.api.latches.StandardLatch
import org.junit.Test
import org.junit.{ Test, Before, After }
class SchedulerSpec extends JUnitSuite {
def withCleanEndState(action: Unit) {
action
@Before
def beforeEach {
EventHandler.notify(Mute(EventFilter[Exception]("CRASH")))
}
@After
def afterEach {
Scheduler.restart
Actor.registry.local.shutdownAll
EventHandler.start()
}
@Test
def schedulerShouldScheduleMoreThanOnce = withCleanEndState {
def schedulerShouldScheduleMoreThanOnce = {
case object Tick
val countDownLatch = new CountDownLatch(3)
@ -38,7 +48,7 @@ class SchedulerSpec extends JUnitSuite {
}
@Test
def schedulerShouldScheduleOnce = withCleanEndState {
def schedulerShouldScheduleOnce = {
case object Tick
val countDownLatch = new CountDownLatch(3)
val tickActor = actorOf(new Actor {
@ -58,7 +68,7 @@ class SchedulerSpec extends JUnitSuite {
* ticket #372
*/
@Test
def schedulerShouldntCreateActors = withCleanEndState {
def schedulerShouldntCreateActors = {
object Ping
val ticks = new CountDownLatch(1000)
val actor = actorOf(new Actor {
@ -74,7 +84,7 @@ class SchedulerSpec extends JUnitSuite {
* ticket #372
*/
@Test
def schedulerShouldBeCancellable = withCleanEndState {
def schedulerShouldBeCancellable = {
object Ping
val ticks = new CountDownLatch(1)
@ -93,7 +103,7 @@ class SchedulerSpec extends JUnitSuite {
* ticket #307
*/
@Test
def actorRestartShouldPickUpScheduleAgain = withCleanEndState {
def actorRestartShouldPickUpScheduleAgain = {
object Ping
object Crash

View file

@ -7,8 +7,14 @@ import akka.actor.Actor
sealed trait TestEvent
object TestEvent {
case class Mute(filter: EventFilter) extends TestEvent
case class UnMute(filter: EventFilter) extends TestEvent
object Mute {
def apply(filter: EventFilter, filters: EventFilter*): Mute = new Mute(filter +: filters.toSeq)
}
case class Mute(filters: Seq[EventFilter]) extends TestEvent
object UnMute {
def apply(filter: EventFilter, filters: EventFilter*): UnMute = new UnMute(filter +: filters.toSeq)
}
case class UnMute(filters: Seq[EventFilter]) extends TestEvent
case object UnMuteAll extends TestEvent
}
@ -44,9 +50,10 @@ case class ErrorFilter(throwable: Class[_]) extends EventFilter {
case class ErrorMessageFilter(throwable: Class[_], message: String) extends EventFilter {
def apply(event: Event) = event match {
case Error(cause, _, _) if !(throwable isInstance cause) false
case Error(cause, _, null) if cause.getMessage eq null cause.getStackTrace.length == 0
case Error(cause, _, null) cause.getMessage startsWith message
case Error(_, _, msg) msg.toString startsWith message
case Error(cause, _, null) if cause.getMessage eq null cause.getStackTrace.length == 0
case Error(cause, _, null) cause.getMessage startsWith message
case Error(cause, _, msg)
(msg.toString startsWith message) || (cause.getMessage startsWith message)
case _ false
}
}
@ -63,7 +70,8 @@ case class ErrorSourceMessageFilter(throwable: Class[_], source: AnyRef, message
case Error(cause, instance, _) if !((throwable isInstance cause) && (source eq instance)) false
case Error(cause, _, null) if cause.getMessage eq null cause.getStackTrace.length == 0
case Error(cause, _, null) cause.getMessage startsWith message
case Error(_, _, msg) msg.toString startsWith message
case Error(cause, _, msg)
(msg.toString startsWith message) || (cause.getMessage startsWith message)
case _ false
}
}
@ -78,8 +86,8 @@ class TestEventListener extends EventHandler.DefaultListener {
var filters: List[EventFilter] = Nil
override def receive: Receive = ({
case Mute(filter) addFilter(filter)
case UnMute(filter) removeFilter(filter)
case Mute(filters) filters foreach addFilter
case UnMute(filters) filters foreach removeFilter
case UnMuteAll filters = Nil
case event: Event if filter(event)
}: Receive) orElse super.receive