Replace 'after' barrier with explicit barrier inside test method.

* It's no problem using after, but scalatest will output the test method
  as completed (green) before running after, so it looks confusing in the logs
* Using unique barrier names adds extra traceability in case of failures.
This commit is contained in:
Patrik Nordwall 2012-06-04 11:58:09 +02:00
parent 52f122107c
commit e4104cfd06
11 changed files with 32 additions and 49 deletions

View file

@ -4,7 +4,6 @@
package akka.cluster package akka.cluster
import com.typesafe.config.ConfigFactory import com.typesafe.config.ConfigFactory
import org.scalatest.BeforeAndAfter
import akka.remote.testkit.MultiNodeConfig import akka.remote.testkit.MultiNodeConfig
import akka.remote.testkit.MultiNodeSpec import akka.remote.testkit.MultiNodeSpec
import akka.testkit._ import akka.testkit._
@ -26,8 +25,7 @@ class ClientDowningNodeThatIsUnreachableMultiJvmNode4 extends ClientDowningNodeT
class ClientDowningNodeThatIsUnreachableSpec class ClientDowningNodeThatIsUnreachableSpec
extends MultiNodeSpec(ClientDowningNodeThatIsUnreachableMultiJvmSpec) extends MultiNodeSpec(ClientDowningNodeThatIsUnreachableMultiJvmSpec)
with MultiNodeClusterSpec with MultiNodeClusterSpec {
with ImplicitSender with BeforeAndAfter {
import ClientDowningNodeThatIsUnreachableMultiJvmSpec._ import ClientDowningNodeThatIsUnreachableMultiJvmSpec._
override def initialParticipants = 4 override def initialParticipants = 4

View file

@ -4,7 +4,6 @@
package akka.cluster package akka.cluster
import com.typesafe.config.ConfigFactory import com.typesafe.config.ConfigFactory
import org.scalatest.BeforeAndAfter
import akka.remote.testkit.MultiNodeConfig import akka.remote.testkit.MultiNodeConfig
import akka.remote.testkit.MultiNodeSpec import akka.remote.testkit.MultiNodeSpec
import akka.testkit._ import akka.testkit._
@ -26,8 +25,7 @@ class ClientDowningNodeThatIsUpMultiJvmNode4 extends ClientDowningNodeThatIsUpSp
class ClientDowningNodeThatIsUpSpec class ClientDowningNodeThatIsUpSpec
extends MultiNodeSpec(ClientDowningNodeThatIsUpMultiJvmSpec) extends MultiNodeSpec(ClientDowningNodeThatIsUpMultiJvmSpec)
with MultiNodeClusterSpec with MultiNodeClusterSpec {
with ImplicitSender with BeforeAndAfter {
import ClientDowningNodeThatIsUpMultiJvmSpec._ import ClientDowningNodeThatIsUpMultiJvmSpec._
override def initialParticipants = 4 override def initialParticipants = 4

View file

@ -3,7 +3,6 @@
*/ */
package akka.cluster package akka.cluster
import org.scalatest.BeforeAndAfter
import com.typesafe.config.ConfigFactory import com.typesafe.config.ConfigFactory
import akka.remote.testkit.MultiNodeConfig import akka.remote.testkit.MultiNodeConfig
import akka.remote.testkit.MultiNodeSpec import akka.remote.testkit.MultiNodeSpec
@ -25,7 +24,7 @@ class GossipingAccrualFailureDetectorMultiJvmNode2 extends GossipingAccrualFailu
class GossipingAccrualFailureDetectorMultiJvmNode3 extends GossipingAccrualFailureDetectorSpec class GossipingAccrualFailureDetectorMultiJvmNode3 extends GossipingAccrualFailureDetectorSpec
abstract class GossipingAccrualFailureDetectorSpec extends MultiNodeSpec(GossipingAccrualFailureDetectorMultiJvmSpec) abstract class GossipingAccrualFailureDetectorSpec extends MultiNodeSpec(GossipingAccrualFailureDetectorMultiJvmSpec)
with MultiNodeClusterSpec with ImplicitSender with BeforeAndAfter { with MultiNodeClusterSpec {
import GossipingAccrualFailureDetectorMultiJvmSpec._ import GossipingAccrualFailureDetectorMultiJvmSpec._
override def initialParticipants = 3 override def initialParticipants = 3
@ -34,10 +33,6 @@ abstract class GossipingAccrualFailureDetectorSpec extends MultiNodeSpec(Gossipi
lazy val secondAddress = node(second).address lazy val secondAddress = node(second).address
lazy val thirdAddress = node(third).address lazy val thirdAddress = node(third).address
after {
testConductor.enter("after")
}
"A Gossip-driven Failure Detector" must { "A Gossip-driven Failure Detector" must {
"receive gossip heartbeats so that all member nodes in the cluster are marked 'available'" taggedAs LongRunningTest in { "receive gossip heartbeats so that all member nodes in the cluster are marked 'available'" taggedAs LongRunningTest in {
@ -53,6 +48,8 @@ abstract class GossipingAccrualFailureDetectorSpec extends MultiNodeSpec(Gossipi
cluster.failureDetector.isAvailable(firstAddress) must be(true) cluster.failureDetector.isAvailable(firstAddress) must be(true)
cluster.failureDetector.isAvailable(secondAddress) must be(true) cluster.failureDetector.isAvailable(secondAddress) must be(true)
cluster.failureDetector.isAvailable(thirdAddress) must be(true) cluster.failureDetector.isAvailable(thirdAddress) must be(true)
testConductor.enter("after-1")
} }
"mark node as 'unavailable' if a node in the cluster is shut down (and its heartbeats stops)" taggedAs LongRunningTest in { "mark node as 'unavailable' if a node in the cluster is shut down (and its heartbeats stops)" taggedAs LongRunningTest in {
@ -68,6 +65,8 @@ abstract class GossipingAccrualFailureDetectorSpec extends MultiNodeSpec(Gossipi
cluster.failureDetector.isAvailable(firstAddress) must be(true) cluster.failureDetector.isAvailable(firstAddress) must be(true)
cluster.failureDetector.isAvailable(secondAddress) must be(true) cluster.failureDetector.isAvailable(secondAddress) must be(true)
} }
testConductor.enter("after-2")
} }
} }

View file

@ -4,7 +4,6 @@
package akka.cluster package akka.cluster
import com.typesafe.config.ConfigFactory import com.typesafe.config.ConfigFactory
import org.scalatest.BeforeAndAfter
import akka.remote.testkit.MultiNodeConfig import akka.remote.testkit.MultiNodeConfig
import akka.remote.testkit.MultiNodeSpec import akka.remote.testkit.MultiNodeSpec
import akka.testkit._ import akka.testkit._
@ -34,8 +33,7 @@ class LeaderDowningNodeThatIsUnreachableMultiJvmNode4 extends LeaderDowningNodeT
class LeaderDowningNodeThatIsUnreachableSpec class LeaderDowningNodeThatIsUnreachableSpec
extends MultiNodeSpec(LeaderDowningNodeThatIsUnreachableMultiJvmSpec) extends MultiNodeSpec(LeaderDowningNodeThatIsUnreachableMultiJvmSpec)
with MultiNodeClusterSpec with MultiNodeClusterSpec {
with ImplicitSender with BeforeAndAfter {
import LeaderDowningNodeThatIsUnreachableMultiJvmSpec._ import LeaderDowningNodeThatIsUnreachableMultiJvmSpec._
override def initialParticipants = 4 override def initialParticipants = 4

View file

@ -4,7 +4,6 @@
package akka.cluster package akka.cluster
import scala.collection.immutable.SortedSet import scala.collection.immutable.SortedSet
import org.scalatest.BeforeAndAfter
import com.typesafe.config.ConfigFactory import com.typesafe.config.ConfigFactory
import akka.remote.testkit.MultiNodeConfig import akka.remote.testkit.MultiNodeConfig
import akka.remote.testkit.MultiNodeSpec import akka.remote.testkit.MultiNodeSpec
@ -24,15 +23,11 @@ class MembershipChangeListenerMultiJvmNode2 extends MembershipChangeListenerSpec
class MembershipChangeListenerMultiJvmNode3 extends MembershipChangeListenerSpec class MembershipChangeListenerMultiJvmNode3 extends MembershipChangeListenerSpec
abstract class MembershipChangeListenerSpec extends MultiNodeSpec(MembershipChangeListenerMultiJvmSpec) abstract class MembershipChangeListenerSpec extends MultiNodeSpec(MembershipChangeListenerMultiJvmSpec)
with MultiNodeClusterSpec with ImplicitSender with BeforeAndAfter { with MultiNodeClusterSpec {
import MembershipChangeListenerMultiJvmSpec._ import MembershipChangeListenerMultiJvmSpec._
override def initialParticipants = 3 override def initialParticipants = 3
after {
testConductor.enter("after")
}
lazy val firstAddress = node(first).address lazy val firstAddress = node(first).address
lazy val secondAddress = node(second).address lazy val secondAddress = node(second).address
@ -59,6 +54,8 @@ abstract class MembershipChangeListenerSpec extends MultiNodeSpec(MembershipChan
cluster.convergence.isDefined must be(true) cluster.convergence.isDefined must be(true)
} }
testConductor.enter("after-1")
} }
"(when three systems) after cluster convergence updates the membership table then all MembershipChangeListeners should be triggered" taggedAs LongRunningTest in { "(when three systems) after cluster convergence updates the membership table then all MembershipChangeListeners should be triggered" taggedAs LongRunningTest in {
@ -77,6 +74,8 @@ abstract class MembershipChangeListenerSpec extends MultiNodeSpec(MembershipChan
latch.await latch.await
cluster.convergence.isDefined must be(true) cluster.convergence.isDefined must be(true)
testConductor.enter("after-2")
} }
} }

View file

@ -4,7 +4,6 @@
package akka.cluster package akka.cluster
import scala.collection.immutable.SortedSet import scala.collection.immutable.SortedSet
import org.scalatest.BeforeAndAfter
import com.typesafe.config.ConfigFactory import com.typesafe.config.ConfigFactory
import akka.remote.testkit.MultiNodeConfig import akka.remote.testkit.MultiNodeConfig
import akka.remote.testkit.MultiNodeSpec import akka.remote.testkit.MultiNodeSpec
@ -17,10 +16,10 @@ object NodeLeavingMultiJvmSpec extends MultiNodeConfig {
commonConfig( commonConfig(
debugConfig(on = false) debugConfig(on = false)
.withFallback(ConfigFactory.parseString(""" .withFallback(ConfigFactory.parseString("""
akka.cluster.unreachable-nodes-reaper-frequency = 30 s # turn "off" reaping to unreachable node set akka.cluster.unreachable-nodes-reaper-frequency = 30 s # turn "off" reaping to unreachable node set
""")) """))
.withFallback(MultiNodeClusterSpec.clusterConfig)) .withFallback(MultiNodeClusterSpec.clusterConfig))
} }
class NodeLeavingMultiJvmNode1 extends NodeLeavingSpec class NodeLeavingMultiJvmNode1 extends NodeLeavingSpec
@ -28,7 +27,7 @@ class NodeLeavingMultiJvmNode2 extends NodeLeavingSpec
class NodeLeavingMultiJvmNode3 extends NodeLeavingSpec class NodeLeavingMultiJvmNode3 extends NodeLeavingSpec
abstract class NodeLeavingSpec extends MultiNodeSpec(NodeLeavingMultiJvmSpec) abstract class NodeLeavingSpec extends MultiNodeSpec(NodeLeavingMultiJvmSpec)
with MultiNodeClusterSpec with ImplicitSender with BeforeAndAfter { with MultiNodeClusterSpec {
import NodeLeavingMultiJvmSpec._ import NodeLeavingMultiJvmSpec._
override def initialParticipants = 3 override def initialParticipants = 3

View file

@ -4,7 +4,6 @@
package akka.cluster package akka.cluster
import scala.collection.immutable.SortedSet import scala.collection.immutable.SortedSet
import org.scalatest.BeforeAndAfter
import com.typesafe.config.ConfigFactory import com.typesafe.config.ConfigFactory
import akka.remote.testkit.MultiNodeConfig import akka.remote.testkit.MultiNodeConfig
import akka.remote.testkit.MultiNodeSpec import akka.remote.testkit.MultiNodeSpec
@ -18,13 +17,13 @@ object NodeLeavingAndExitingMultiJvmSpec extends MultiNodeConfig {
commonConfig( commonConfig(
debugConfig(on = false) debugConfig(on = false)
.withFallback(ConfigFactory.parseString(""" .withFallback(ConfigFactory.parseString("""
akka.cluster { akka.cluster {
leader-actions-frequency = 5 s # increase the leader action task frequency to make sure we get a chance to test the LEAVING state leader-actions-frequency = 5 s # increase the leader action task frequency to make sure we get a chance to test the LEAVING state
unreachable-nodes-reaper-frequency = 30 s # turn "off" reaping to unreachable node set unreachable-nodes-reaper-frequency = 30 s # turn "off" reaping to unreachable node set
} }
""") """)
.withFallback(MultiNodeClusterSpec.clusterConfig))) .withFallback(MultiNodeClusterSpec.clusterConfig)))
} }
class NodeLeavingAndExitingMultiJvmNode1 extends NodeLeavingAndExitingSpec class NodeLeavingAndExitingMultiJvmNode1 extends NodeLeavingAndExitingSpec
@ -32,7 +31,7 @@ class NodeLeavingAndExitingMultiJvmNode2 extends NodeLeavingAndExitingSpec
class NodeLeavingAndExitingMultiJvmNode3 extends NodeLeavingAndExitingSpec class NodeLeavingAndExitingMultiJvmNode3 extends NodeLeavingAndExitingSpec
abstract class NodeLeavingAndExitingSpec extends MultiNodeSpec(NodeLeavingAndExitingMultiJvmSpec) abstract class NodeLeavingAndExitingSpec extends MultiNodeSpec(NodeLeavingAndExitingMultiJvmSpec)
with MultiNodeClusterSpec with ImplicitSender with BeforeAndAfter { with MultiNodeClusterSpec {
import NodeLeavingAndExitingMultiJvmSpec._ import NodeLeavingAndExitingMultiJvmSpec._
override def initialParticipants = 3 override def initialParticipants = 3

View file

@ -4,7 +4,6 @@
package akka.cluster package akka.cluster
import scala.collection.immutable.SortedSet import scala.collection.immutable.SortedSet
import org.scalatest.BeforeAndAfter
import com.typesafe.config.ConfigFactory import com.typesafe.config.ConfigFactory
import akka.remote.testkit.MultiNodeConfig import akka.remote.testkit.MultiNodeConfig
import akka.remote.testkit.MultiNodeSpec import akka.remote.testkit.MultiNodeSpec
@ -24,7 +23,7 @@ class NodeLeavingAndExitingAndBeingRemovedMultiJvmNode2 extends NodeLeavingAndEx
class NodeLeavingAndExitingAndBeingRemovedMultiJvmNode3 extends NodeLeavingAndExitingAndBeingRemovedSpec class NodeLeavingAndExitingAndBeingRemovedMultiJvmNode3 extends NodeLeavingAndExitingAndBeingRemovedSpec
abstract class NodeLeavingAndExitingAndBeingRemovedSpec extends MultiNodeSpec(NodeLeavingAndExitingAndBeingRemovedMultiJvmSpec) abstract class NodeLeavingAndExitingAndBeingRemovedSpec extends MultiNodeSpec(NodeLeavingAndExitingAndBeingRemovedMultiJvmSpec)
with MultiNodeClusterSpec with ImplicitSender with BeforeAndAfter { with MultiNodeClusterSpec {
import NodeLeavingAndExitingAndBeingRemovedMultiJvmSpec._ import NodeLeavingAndExitingAndBeingRemovedMultiJvmSpec._
override def initialParticipants = 3 override def initialParticipants = 3

View file

@ -4,7 +4,6 @@
package akka.cluster package akka.cluster
import com.typesafe.config.ConfigFactory import com.typesafe.config.ConfigFactory
import org.scalatest.BeforeAndAfter
import akka.remote.testkit.MultiNodeConfig import akka.remote.testkit.MultiNodeConfig
import akka.remote.testkit.MultiNodeSpec import akka.remote.testkit.MultiNodeSpec
import akka.testkit._ import akka.testkit._
@ -22,15 +21,11 @@ class NodeMembershipMultiJvmNode1 extends NodeMembershipSpec
class NodeMembershipMultiJvmNode2 extends NodeMembershipSpec class NodeMembershipMultiJvmNode2 extends NodeMembershipSpec
class NodeMembershipMultiJvmNode3 extends NodeMembershipSpec class NodeMembershipMultiJvmNode3 extends NodeMembershipSpec
abstract class NodeMembershipSpec extends MultiNodeSpec(NodeMembershipMultiJvmSpec) with MultiNodeClusterSpec with ImplicitSender with BeforeAndAfter { abstract class NodeMembershipSpec extends MultiNodeSpec(NodeMembershipMultiJvmSpec) with MultiNodeClusterSpec {
import NodeMembershipMultiJvmSpec._ import NodeMembershipMultiJvmSpec._
override def initialParticipants = 3 override def initialParticipants = 3
after {
testConductor.enter("after")
}
lazy val firstAddress = node(first).address lazy val firstAddress = node(first).address
lazy val secondAddress = node(second).address lazy val secondAddress = node(second).address
lazy val thirdAddress = node(third).address lazy val thirdAddress = node(third).address
@ -55,6 +50,8 @@ abstract class NodeMembershipSpec extends MultiNodeSpec(NodeMembershipMultiJvmSp
awaitCond(cluster.convergence.isDefined) awaitCond(cluster.convergence.isDefined)
} }
testConductor.enter("after-1")
} }
"(when three nodes) start gossiping to each other so that all nodes gets the same gossip info" taggedAs LongRunningTest in { "(when three nodes) start gossiping to each other so that all nodes gets the same gossip info" taggedAs LongRunningTest in {
@ -70,6 +67,8 @@ abstract class NodeMembershipSpec extends MultiNodeSpec(NodeMembershipMultiJvmSp
} }
awaitCond(cluster.convergence.isDefined) awaitCond(cluster.convergence.isDefined)
testConductor.enter("after-2")
} }
} }

View file

@ -4,7 +4,6 @@
package akka.cluster package akka.cluster
import com.typesafe.config.ConfigFactory import com.typesafe.config.ConfigFactory
import org.scalatest.BeforeAndAfter
import akka.remote.testkit.MultiNodeConfig import akka.remote.testkit.MultiNodeConfig
import akka.remote.testkit.MultiNodeSpec import akka.remote.testkit.MultiNodeSpec
import akka.testkit._ import akka.testkit._
@ -28,15 +27,11 @@ object NodeShutdownMultiJvmSpec extends MultiNodeConfig {
class NodeShutdownMultiJvmNode1 extends NodeShutdownSpec class NodeShutdownMultiJvmNode1 extends NodeShutdownSpec
class NodeShutdownMultiJvmNode2 extends NodeShutdownSpec class NodeShutdownMultiJvmNode2 extends NodeShutdownSpec
abstract class NodeShutdownSpec extends MultiNodeSpec(NodeShutdownMultiJvmSpec) with MultiNodeClusterSpec with ImplicitSender with BeforeAndAfter { abstract class NodeShutdownSpec extends MultiNodeSpec(NodeShutdownMultiJvmSpec) with MultiNodeClusterSpec {
import NodeShutdownMultiJvmSpec._ import NodeShutdownMultiJvmSpec._
override def initialParticipants = 2 override def initialParticipants = 2
after {
testConductor.enter("after")
}
"A cluster of 2 nodes" must { "A cluster of 2 nodes" must {
"not be singleton cluster when joined" taggedAs LongRunningTest in { "not be singleton cluster when joined" taggedAs LongRunningTest in {
@ -52,6 +47,8 @@ abstract class NodeShutdownSpec extends MultiNodeSpec(NodeShutdownMultiJvmSpec)
awaitUpConvergence(numberOfMembers = 2) awaitUpConvergence(numberOfMembers = 2)
cluster.isSingletonCluster must be(false) cluster.isSingletonCluster must be(false)
assertLeader(first, second) assertLeader(first, second)
testConductor.enter("after-1")
} }
"become singleton cluster when one node is shutdown" taggedAs LongRunningTest in { "become singleton cluster when one node is shutdown" taggedAs LongRunningTest in {
@ -64,6 +61,7 @@ abstract class NodeShutdownSpec extends MultiNodeSpec(NodeShutdownMultiJvmSpec)
assertLeader(first) assertLeader(first)
} }
testConductor.enter("after-2")
} }
} }

View file

@ -4,7 +4,6 @@
package akka.cluster package akka.cluster
import com.typesafe.config.ConfigFactory import com.typesafe.config.ConfigFactory
import org.scalatest.BeforeAndAfter
import akka.remote.testkit.MultiNodeConfig import akka.remote.testkit.MultiNodeConfig
import akka.remote.testkit.MultiNodeSpec import akka.remote.testkit.MultiNodeSpec
import akka.testkit._ import akka.testkit._
@ -20,15 +19,11 @@ object NodeStartupMultiJvmSpec extends MultiNodeConfig {
class NodeStartupMultiJvmNode1 extends NodeStartupSpec class NodeStartupMultiJvmNode1 extends NodeStartupSpec
class NodeStartupMultiJvmNode2 extends NodeStartupSpec class NodeStartupMultiJvmNode2 extends NodeStartupSpec
abstract class NodeStartupSpec extends MultiNodeSpec(NodeStartupMultiJvmSpec) with MultiNodeClusterSpec with ImplicitSender with BeforeAndAfter { abstract class NodeStartupSpec extends MultiNodeSpec(NodeStartupMultiJvmSpec) with MultiNodeClusterSpec {
import NodeStartupMultiJvmSpec._ import NodeStartupMultiJvmSpec._
override def initialParticipants = 2 override def initialParticipants = 2
after {
testConductor.enter("after")
}
lazy val firstAddress = node(first).address lazy val firstAddress = node(first).address
lazy val secondAddress = node(second).address lazy val secondAddress = node(second).address
@ -40,6 +35,7 @@ abstract class NodeStartupSpec extends MultiNodeSpec(NodeStartupMultiJvmSpec) wi
awaitUpConvergence(numberOfMembers = 1) awaitUpConvergence(numberOfMembers = 1)
assertLeader(first) assertLeader(first)
} }
testConductor.enter("after-1")
} }
} }
@ -58,6 +54,7 @@ abstract class NodeStartupSpec extends MultiNodeSpec(NodeStartupMultiJvmSpec) wi
cluster.latestGossip.members.size must be(2) cluster.latestGossip.members.size must be(2)
awaitCond(cluster.convergence.isDefined) awaitCond(cluster.convergence.isDefined)
assertLeader(first, second) assertLeader(first, second)
testConductor.enter("after-2")
} }
} }