From 2393569df22de2ac9919bc444f64bbdf0115aab3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Andr=C3=A9n?= Date: Tue, 13 Jun 2017 15:37:17 +0200 Subject: [PATCH] Ignore unknown messages in LoggingReceiveSpec #23140 --- .../test/scala/akka/event/LoggingReceiveSpec.scala | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/akka-actor-tests/src/test/scala/akka/event/LoggingReceiveSpec.scala b/akka-actor-tests/src/test/scala/akka/event/LoggingReceiveSpec.scala index fcb23c935d..ac6b5f671b 100644 --- a/akka-actor-tests/src/test/scala/akka/event/LoggingReceiveSpec.scala +++ b/akka-actor-tests/src/test/scala/akka/event/LoggingReceiveSpec.scala @@ -260,10 +260,15 @@ class LoggingReceiveSpec extends WordSpec with BeforeAndAfterAll { Logging.Debug(sname, sclass, "stopped")) } - // To get nice error messages I suppose we want to accept a set of PF's, but for now this'll do. - def expectMsgAllPF(messages: Int)(matchers: PartialFunction[AnyRef, _]) = { - val set = receiveWhile(messages = messages)(matchers).toSet - expectNoMsg(Duration.Zero) + def expectMsgAllPF(messages: Int)(matchers: PartialFunction[AnyRef, Int]) = { + def receiveNMatching(remaining: Int): Set[Int] = + if (remaining == 0) Set.empty + else { + val msg = receiveOne(remainingOrDefault) + if (matchers.isDefinedAt(msg)) receiveNMatching(remaining - 1) + matchers(msg) + else receiveNMatching(remaining) // unknown message, just ignore + } + val set = receiveNMatching(messages) assert(set == (0 until messages).toSet) } }