Merge pull request #647 from akka/wip-2423-fix-TransitionSpec-patriknw

Fix failing TransitionSpec, see #2423
This commit is contained in:
Patrik Nordwall 2012-08-27 07:03:30 -07:00
commit 4ebe5079bd

View file

@ -120,11 +120,11 @@ abstract class TransitionSpec
runOn(first) {
startClusterNode()
clusterView.isSingletonCluster must be(true)
clusterView.status must be(Joining)
clusterView.convergence must be(true)
awaitCond(clusterView.isSingletonCluster)
awaitMemberStatus(myself, Joining)
awaitCond(clusterView.convergence)
leaderActions()
clusterView.status must be(Up)
awaitMemberStatus(myself, Up)
}
enterBarrier("after-1")
@ -138,8 +138,8 @@ abstract class TransitionSpec
runOn(first, second) {
// gossip chat from the join will synchronize the views
awaitMembers(first, second)
memberStatus(first) must be(Up)
memberStatus(second) must be(Joining)
awaitMemberStatus(first, Up)
awaitMemberStatus(second, Joining)
awaitCond(seenLatestGossip == Set(first, second))
clusterView.convergence must be(true)
}
@ -147,17 +147,17 @@ abstract class TransitionSpec
runOn(leader(first, second)) {
leaderActions()
memberStatus(first) must be(Up)
memberStatus(second) must be(Up)
awaitMemberStatus(first, Up)
awaitMemberStatus(second, Up)
}
enterBarrier("leader-actions-2")
leader(first, second) gossipTo nonLeader(first, second).head
runOn(first, second) {
// gossip chat will synchronize the views
awaitCond(memberStatus(second) == Up)
seenLatestGossip must be(Set(first, second))
memberStatus(first) must be(Up)
awaitMemberStatus(second, Up)
awaitCond(seenLatestGossip == Set(first, second))
awaitMemberStatus(first, Up)
clusterView.convergence must be(true)
}
@ -172,7 +172,7 @@ abstract class TransitionSpec
runOn(second, third) {
// gossip chat from the join will synchronize the views
awaitMembers(first, second, third)
memberStatus(third) must be(Joining)
awaitMemberStatus(third, Joining)
awaitCond(seenLatestGossip == Set(second, third))
clusterView.convergence must be(false)
}
@ -182,19 +182,19 @@ abstract class TransitionSpec
runOn(first, second) {
// gossip chat will synchronize the views
awaitMembers(first, second, third)
memberStatus(third) must be(Joining)
awaitCond(memberStatus(second) == Up)
seenLatestGossip must be(Set(first, second, third))
awaitMemberStatus(third, Joining)
awaitMemberStatus(second, Up)
awaitCond(seenLatestGossip == Set(first, second, third))
clusterView.convergence must be(true)
}
first gossipTo third
runOn(first, second, third) {
members must be(Set(first, second, third))
memberStatus(first) must be(Up)
memberStatus(second) must be(Up)
memberStatus(third) must be(Joining)
seenLatestGossip must be(Set(first, second, third))
awaitMembers(first, second, third)
awaitMemberStatus(first, Up)
awaitMemberStatus(second, Up)
awaitMemberStatus(third, Joining)
awaitCond(seenLatestGossip == Set(first, second, third))
clusterView.convergence must be(true)
}
@ -202,17 +202,17 @@ abstract class TransitionSpec
runOn(leader(first, second, third)) {
leaderActions()
memberStatus(first) must be(Up)
memberStatus(second) must be(Up)
memberStatus(third) must be(Up)
awaitMemberStatus(first, Up)
awaitMemberStatus(second, Up)
awaitMemberStatus(third, Up)
}
enterBarrier("leader-actions-3")
// leader gossipTo first non-leader
leader(first, second, third) gossipTo nonLeader(first, second, third).head
runOn(nonLeader(first, second, third).head) {
memberStatus(third) must be(Up)
seenLatestGossip must be(Set(leader(first, second, third), myself))
awaitMemberStatus(third, Up)
awaitCond(seenLatestGossip == Set(leader(first, second, third), myself))
clusterView.convergence must be(false)
}
@ -223,18 +223,18 @@ abstract class TransitionSpec
cluster.clusterCore ! InternalClusterAction.SendGossipTo(nonLeader(first, second, third).tail.head)
}
runOn(nonLeader(first, second, third).tail.head) {
memberStatus(third) must be(Up)
seenLatestGossip must be(Set(first, second, third))
awaitMemberStatus(third, Up)
awaitCond(seenLatestGossip == Set(first, second, third))
clusterView.convergence must be(true)
}
// first non-leader gossipTo the leader
nonLeader(first, second, third).head gossipTo leader(first, second, third)
runOn(first, second, third) {
memberStatus(first) must be(Up)
memberStatus(second) must be(Up)
memberStatus(third) must be(Up)
seenLatestGossip must be(Set(first, second, third))
awaitMemberStatus(first, Up)
awaitMemberStatus(second, Up)
awaitMemberStatus(third, Up)
awaitCond(seenLatestGossip == Set(first, second, third))
clusterView.convergence must be(true)
}
@ -245,8 +245,8 @@ abstract class TransitionSpec
runOn(third) {
markNodeAsUnavailable(second)
reapUnreachable()
clusterView.unreachableMembers must contain(Member(second, Up))
seenLatestGossip must be(Set(third))
awaitCond(clusterView.unreachableMembers.contains(Member(second, Up)))
awaitCond(seenLatestGossip == Set(third))
}
enterBarrier("after-second-unavailble")
@ -254,8 +254,8 @@ abstract class TransitionSpec
third gossipTo first
runOn(first, third) {
clusterView.unreachableMembers must contain(Member(second, Up))
clusterView.convergence must be(false)
awaitCond(clusterView.unreachableMembers.contains(Member(second, Up)))
awaitCond(!clusterView.convergence)
}
runOn(first) {
@ -268,9 +268,9 @@ abstract class TransitionSpec
first gossipTo third
runOn(first, third) {
clusterView.unreachableMembers must contain(Member(second, Down))
memberStatus(second) must be(Down)
seenLatestGossip must be(Set(first, third))
awaitCond(clusterView.unreachableMembers.contains(Member(second, Down)))
awaitMemberStatus(second, Down)
awaitCond(seenLatestGossip == Set(first, third))
clusterView.convergence must be(true)
}