remove fixed ports from ThrottlerTransportAdapterSpec, see #2843

This commit is contained in:
Roland 2013-01-02 23:45:46 +01:00
parent 5297db2950
commit 040e4c8601

View file

@ -8,6 +8,9 @@ import scala.concurrent.duration._
import scala.concurrent.Await import scala.concurrent.Await
import akka.remote.transport.ThrottlerTransportAdapter.{ Direction, TokenBucket, SetThrottle } import akka.remote.transport.ThrottlerTransportAdapter.{ Direction, TokenBucket, SetThrottle }
import akka.remote.RemoteActorRefProvider import akka.remote.RemoteActorRefProvider
import akka.testkit.TestEvent
import akka.testkit.EventFilter
import akka.remote.EndpointException
object ThrottlerTransportAdapterSpec { object ThrottlerTransportAdapterSpec {
val configA: Config = ConfigFactory parseString (""" val configA: Config = ConfigFactory parseString ("""
@ -19,7 +22,7 @@ object ThrottlerTransportAdapterSpec {
remoting.log-remote-lifecycle-events = on remoting.log-remote-lifecycle-events = on
remoting.transports.tcp.applied-adapters = ["trttl"] remoting.transports.tcp.applied-adapters = ["trttl"]
remoting.transports.tcp.port = 12345 remoting.transports.tcp.port = 0
} }
""") """)
@ -56,24 +59,30 @@ object ThrottlerTransportAdapterSpec {
} }
class ThrottlerTransportAdapterSpec extends AkkaSpec(configA) with ImplicitSender with DefaultTimeout { class ThrottlerTransportAdapterSpec extends AkkaSpec(configA) with ImplicitSender with DefaultTimeout {
val configB = ConfigFactory.parseString("akka.remoting.transports.tcp.port = 12346")
.withFallback(system.settings.config).resolve()
val systemB = ActorSystem("systemB", configB) val systemB = ActorSystem("systemB", system.settings.config)
val remote = systemB.actorOf(Props[Echo], "echo") val remote = systemB.actorOf(Props[Echo], "echo")
val here = system.actorFor("tcp.trttl.akka://systemB@localhost:12346/user/echo") val rootB = RootActorPath(systemB.asInstanceOf[ExtendedActorSystem].provider.getDefaultAddress)
val here = system.actorFor(rootB / "user" / "echo")
"ThrottlerTransportAdapter" must { "ThrottlerTransportAdapter" must {
"maintain average message rate" taggedAs TimingTest in { "maintain average message rate" taggedAs TimingTest in {
Await.result( Await.result(
system.asInstanceOf[ExtendedActorSystem].provider.asInstanceOf[RemoteActorRefProvider].transport system.asInstanceOf[ExtendedActorSystem].provider.asInstanceOf[RemoteActorRefProvider].transport
.managementCommand(SetThrottle(Address("akka", "systemB", "localhost", 12346), Direction.Send, TokenBucket(200, 500, 0, 0))), 3 seconds) .managementCommand(SetThrottle(Address("akka", "systemB", "localhost", rootB.address.port.get), Direction.Send, TokenBucket(200, 500, 0, 0))), 3 seconds)
val tester = system.actorOf(Props(new ThrottlingTester(here, self))) ! "start" val tester = system.actorOf(Props(new ThrottlingTester(here, self))) ! "start"
expectMsgPF((TotalTime + 3) seconds) { expectMsgPF((TotalTime + 3) seconds) {
case time: Long log.warning("Total time of transmission: " + NANOSECONDS.toSeconds(time)) case time: Long log.warning("Total time of transmission: " + NANOSECONDS.toSeconds(time))
} }
system.eventStream.publish(TestEvent.Mute(
EventFilter.warning(source = "akka://AkkaProtocolStressTest/user/$a", start = "received dead letter"),
EventFilter.warning(pattern = "received dead letter.*(InboundPayload|Disassociate)")))
systemB.eventStream.publish(TestEvent.Mute(
EventFilter[EndpointException](),
EventFilter.error(start = "AssociationError"),
EventFilter.warning(pattern = "received dead letter.*(InboundPayload|Disassociate)")))
} }
} }