port remaining remote multi-node tests to Artery
This commit is contained in:
parent
415a1cc7f9
commit
bdfbffcde5
10 changed files with 239 additions and 155 deletions
|
|
@ -19,12 +19,12 @@ import akka.actor.ActorLogging
|
|||
import akka.remote.testconductor.TestConductor
|
||||
import akka.testkit.TestProbe
|
||||
|
||||
object RemoteReDeploymentMultiJvmSpec extends MultiNodeConfig {
|
||||
class RemoteReDeploymentConfig(artery: Boolean) extends MultiNodeConfig {
|
||||
val first = role("first")
|
||||
val second = role("second")
|
||||
|
||||
commonConfig(debugConfig(on = false).withFallback(ConfigFactory.parseString(
|
||||
"""akka.remote.transport-failure-detector {
|
||||
s"""akka.remote.transport-failure-detector {
|
||||
threshold=0.1
|
||||
heartbeat-interval=0.1s
|
||||
acceptable-heartbeat-pause=1s
|
||||
|
|
@ -33,11 +33,52 @@ object RemoteReDeploymentMultiJvmSpec extends MultiNodeConfig {
|
|||
threshold=0.1
|
||||
heartbeat-interval=0.1s
|
||||
acceptable-heartbeat-pause=2.5s
|
||||
}""")))
|
||||
}
|
||||
akka.remote.artery.enabled = $artery
|
||||
""")))
|
||||
|
||||
testTransport(on = true)
|
||||
|
||||
deployOn(second, "/parent/hello.remote = \"@first@\"")
|
||||
}
|
||||
|
||||
class RemoteReDeploymentFastMultiJvmNode1 extends RemoteReDeploymentFastMultiJvmSpec(artery = false)
|
||||
class RemoteReDeploymentFastMultiJvmNode2 extends RemoteReDeploymentFastMultiJvmSpec(artery = false)
|
||||
|
||||
class ArteryRemoteReDeploymentFastMultiJvmNode1 extends RemoteReDeploymentFastMultiJvmSpec(artery = true)
|
||||
class ArteryRemoteReDeploymentFastMultiJvmNode2 extends RemoteReDeploymentFastMultiJvmSpec(artery = true)
|
||||
|
||||
abstract class RemoteReDeploymentFastMultiJvmSpec(artery: Boolean) extends RemoteReDeploymentMultiJvmSpec(
|
||||
new RemoteReDeploymentConfig(artery)) {
|
||||
override def sleepAfterKill = 0.seconds // new association will come in while old is still “healthy”
|
||||
override def expectQuarantine = false
|
||||
}
|
||||
|
||||
class RemoteReDeploymentMediumMultiJvmNode1 extends RemoteReDeploymentMediumMultiJvmSpec(artery = false)
|
||||
class RemoteReDeploymentMediumMultiJvmNode2 extends RemoteReDeploymentMediumMultiJvmSpec(artery = false)
|
||||
|
||||
class ArteryRemoteReDeploymentMediumMultiJvmNode1 extends RemoteReDeploymentMediumMultiJvmSpec(artery = true)
|
||||
class ArteryRemoteReDeploymentMediumMultiJvmNode2 extends RemoteReDeploymentMediumMultiJvmSpec(artery = true)
|
||||
|
||||
abstract class RemoteReDeploymentMediumMultiJvmSpec(artery: Boolean) extends RemoteReDeploymentMultiJvmSpec(
|
||||
new RemoteReDeploymentConfig(artery)) {
|
||||
override def sleepAfterKill = 1.seconds // new association will come in while old is gated in ReliableDeliverySupervisor
|
||||
override def expectQuarantine = false
|
||||
}
|
||||
|
||||
class RemoteReDeploymentSlowMultiJvmNode1 extends RemoteReDeploymentSlowMultiJvmSpec(artery = false)
|
||||
class RemoteReDeploymentSlowMultiJvmNode2 extends RemoteReDeploymentSlowMultiJvmSpec(artery = false)
|
||||
|
||||
class ArteryRemoteReDeploymentSlowMultiJvmNode1 extends RemoteReDeploymentSlowMultiJvmSpec(artery = true)
|
||||
class ArteryRemoteReDeploymentSlowMultiJvmNode2 extends RemoteReDeploymentSlowMultiJvmSpec(artery = true)
|
||||
|
||||
abstract class RemoteReDeploymentSlowMultiJvmSpec(artery: Boolean) extends RemoteReDeploymentMultiJvmSpec(
|
||||
new RemoteReDeploymentConfig(artery)) {
|
||||
override def sleepAfterKill = 10.seconds // new association will come in after old has been quarantined
|
||||
override def expectQuarantine = true
|
||||
}
|
||||
|
||||
object RemoteReDeploymentMultiJvmSpec {
|
||||
class Parent extends Actor {
|
||||
val monitor = context.actorSelection("/user/echo")
|
||||
def receive = {
|
||||
|
|
@ -64,28 +105,7 @@ object RemoteReDeploymentMultiJvmSpec extends MultiNodeConfig {
|
|||
def echoProps(target: ActorRef) = Props(new Echo(target))
|
||||
}
|
||||
|
||||
class RemoteReDeploymentFastMultiJvmNode1 extends RemoteReDeploymentFastMultiJvmSpec
|
||||
class RemoteReDeploymentFastMultiJvmNode2 extends RemoteReDeploymentFastMultiJvmSpec
|
||||
abstract class RemoteReDeploymentFastMultiJvmSpec extends RemoteReDeploymentMultiJvmSpec {
|
||||
override def sleepAfterKill = 0.seconds // new association will come in while old is still “healthy”
|
||||
override def expectQuarantine = false
|
||||
}
|
||||
|
||||
class RemoteReDeploymentMediumMultiJvmNode1 extends RemoteReDeploymentMediumMultiJvmSpec
|
||||
class RemoteReDeploymentMediumMultiJvmNode2 extends RemoteReDeploymentMediumMultiJvmSpec
|
||||
abstract class RemoteReDeploymentMediumMultiJvmSpec extends RemoteReDeploymentMultiJvmSpec {
|
||||
override def sleepAfterKill = 1.seconds // new association will come in while old is gated in ReliableDeliverySupervisor
|
||||
override def expectQuarantine = false
|
||||
}
|
||||
|
||||
class RemoteReDeploymentSlowMultiJvmNode1 extends RemoteReDeploymentSlowMultiJvmSpec
|
||||
class RemoteReDeploymentSlowMultiJvmNode2 extends RemoteReDeploymentSlowMultiJvmSpec
|
||||
abstract class RemoteReDeploymentSlowMultiJvmSpec extends RemoteReDeploymentMultiJvmSpec {
|
||||
override def sleepAfterKill = 10.seconds // new association will come in after old has been quarantined
|
||||
override def expectQuarantine = true
|
||||
}
|
||||
|
||||
abstract class RemoteReDeploymentMultiJvmSpec extends MultiNodeSpec(RemoteReDeploymentMultiJvmSpec)
|
||||
abstract class RemoteReDeploymentMultiJvmSpec(multiNodeConfig: RemoteReDeploymentConfig) extends MultiNodeSpec(multiNodeConfig)
|
||||
with STMultiNodeSpec with ImplicitSender {
|
||||
|
||||
def sleepAfterKill: FiniteDuration
|
||||
|
|
@ -93,6 +113,7 @@ abstract class RemoteReDeploymentMultiJvmSpec extends MultiNodeSpec(RemoteReDepl
|
|||
|
||||
def initialParticipants = roles.size
|
||||
|
||||
import multiNodeConfig._
|
||||
import RemoteReDeploymentMultiJvmSpec._
|
||||
|
||||
"A remote deployment target system" must {
|
||||
|
|
@ -113,6 +134,11 @@ abstract class RemoteReDeploymentMultiJvmSpec extends MultiNodeSpec(RemoteReDepl
|
|||
|
||||
enterBarrier("first-deployed")
|
||||
|
||||
// FIXME When running with Artery:
|
||||
// [akka://RemoteReDeploymentMultiJvmSpec/user/parent] received Supervise from unregistered child
|
||||
// Actor[artery://RemoteReDeploymentMultiJvmSpec@localhost:55627/remote/artery/RemoteReDeploymentMultiJvmSpec@localhost:65490/user/parent/hello#-370928728],
|
||||
// this will not end well
|
||||
|
||||
runOn(first) {
|
||||
testConductor.blackhole(second, first, Both).await
|
||||
testConductor.shutdown(second, abort = true).await
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue