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:
parent
52f122107c
commit
e4104cfd06
11 changed files with 32 additions and 49 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue