Group multiple awaitCond into single one

This commit is contained in:
Björn Antonsson 2012-06-07 11:08:23 +02:00
parent 9691dd0325
commit dd042e3573

View file

@ -75,9 +75,11 @@ class UnreachableNodeRejoinsClusterSpec
runOn(victim) { runOn(victim) {
val otherAddresses = sortedRoles.collect { case x if x != victim => node(x).address } val otherAddresses = sortedRoles.collect { case x if x != victim => node(x).address }
within(30 seconds) { within(30 seconds) {
awaitCond(cluster.latestGossip.overview.unreachable.size == (allRoles.size - 1)) // victim becomes all alone
awaitCond(cluster.latestGossip.members.size == 1) awaitCond({ val gossip = cluster.latestGossip
awaitCond(cluster.latestGossip.members.forall(_.status == MemberStatus.Up)) gossip.overview.unreachable.size == (allRoles.size - 1) &&
gossip.members.size == 1 &&
gossip.members.forall(_.status == MemberStatus.Up) })
cluster.latestGossip.overview.unreachable.map(_.address) must be(otherAddresses.toSet) cluster.latestGossip.overview.unreachable.map(_.address) must be(otherAddresses.toSet)
cluster.convergence.isDefined must be(false) cluster.convergence.isDefined must be(false)
} }
@ -89,9 +91,10 @@ class UnreachableNodeRejoinsClusterSpec
val otherAddresses = allButVictim.map(node(_).address) val otherAddresses = allButVictim.map(node(_).address)
within(30 seconds) { within(30 seconds) {
// victim becomes unreachable // victim becomes unreachable
awaitCond(cluster.latestGossip.overview.unreachable.size == 1) awaitCond({ val gossip = cluster.latestGossip
awaitCond(cluster.latestGossip.members.size == (allRoles.size - 1)) gossip.overview.unreachable.size == 1 &&
awaitCond(cluster.latestGossip.members.forall(_.status == MemberStatus.Up)) gossip.members.size == (allRoles.size - 1) &&
gossip.members.forall(_.status == MemberStatus.Up) })
awaitSeenSameState(otherAddresses) awaitSeenSameState(otherAddresses)
// still one unreachable // still one unreachable
cluster.latestGossip.overview.unreachable.size must be(1) cluster.latestGossip.overview.unreachable.size must be(1)