diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/LargeClusterSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/LargeClusterSpec.scala index 1ebb930df6..06e3caeac8 100644 --- a/akka-cluster/src/multi-jvm/scala/akka/cluster/LargeClusterSpec.scala +++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/LargeClusterSpec.scala @@ -148,7 +148,7 @@ abstract class LargeClusterSpec runOn(runOnRoles: _*) { systems.size must be(nodesPerDatacenter) // make sure it is initialized - val clusterNodes = ifNode(from)(joiningClusterNodes)(systems.map(Cluster(_)).toSet) + val clusterNodes = if(isNode(from)) joiningClusterNodes else systems.map(Cluster(_)).toSet val startGossipCounts = Map.empty[Cluster, Long] ++ clusterNodes.map(c ⇒ (c -> c.readView.latestStats.receivedGossipCount)) def gossipCount(c: Cluster): Long = { @@ -260,7 +260,7 @@ abstract class LargeClusterSpec if (bulk.nonEmpty) { val totalNodes = nodesPerDatacenter * 4 + bulk.size within(expectedMaxDuration(totalNodes)) { - val joiningClusters = ifNode(fifthDatacenter)(bulk.map(Cluster(_)).toSet)(Set.empty) + val joiningClusters = if(isNode(fifthDatacenter)) bulk.map(Cluster(_)).toSet else Set.empty[Cluster] join(joiningClusters, from = fifthDatacenter, to = firstDatacenter, totalNodes, runOnRoles = firstDatacenter, secondDatacenter, thirdDatacenter, fourthDatacenter, fifthDatacenter) enterBarrier("fifth-datacenter-joined-" + bulk.size) @@ -270,7 +270,7 @@ abstract class LargeClusterSpec for (i ← 0 until oneByOne.size) { val totalNodes = nodesPerDatacenter * 4 + bulk.size + i + 1 within(expectedMaxDuration(totalNodes)) { - val joiningClusters = ifNode(fifthDatacenter)(Set(Cluster(oneByOne(i))))(Set.empty) + val joiningClusters = if(isNode(fifthDatacenter)) Set(Cluster(oneByOne(i))) else Set.empty[Cluster] join(joiningClusters, from = fifthDatacenter, to = firstDatacenter, totalNodes, runOnRoles = firstDatacenter, secondDatacenter, thirdDatacenter, fourthDatacenter, fifthDatacenter) enterBarrier("fifth-datacenter-joined-" + (bulk.size + i)) diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/MultiNodeClusterSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/MultiNodeClusterSpec.scala index 5ff931f1c2..12fc8ebbc6 100644 --- a/akka-cluster/src/multi-jvm/scala/akka/cluster/MultiNodeClusterSpec.scala +++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/MultiNodeClusterSpec.scala @@ -210,7 +210,7 @@ trait MultiNodeClusterSpec extends Suite with STMultiNodeSpec { self: MultiNodeS val expectedLeader = roleOfLeader(nodesInCluster) val leader = clusterView.leader val isLeader = leader == Some(clusterView.selfAddress) - assert(isLeader == ifNode(expectedLeader)(true)(false), + assert(isLeader == isNode(expectedLeader), "expectedLeader [%s], got leader [%s], members [%s]".format(expectedLeader, leader, clusterView.members)) clusterView.status must (be(MemberStatus.Up) or be(MemberStatus.Leaving)) } diff --git a/akka-remote-tests/src/main/scala/akka/remote/testkit/MultiNodeSpec.scala b/akka-remote-tests/src/main/scala/akka/remote/testkit/MultiNodeSpec.scala index 9d5fd4b55e..c40a4e5a7b 100644 --- a/akka-remote-tests/src/main/scala/akka/remote/testkit/MultiNodeSpec.scala +++ b/akka-remote-tests/src/main/scala/akka/remote/testkit/MultiNodeSpec.scala @@ -42,7 +42,10 @@ abstract class MultiNodeConfig { /** * Register a config override for a specific participant. */ - def nodeConfig(role: RoleName, config: Config): Unit = _nodeConf += role -> config + def nodeConfig(roles: RoleName*)(configs: Config*): Unit = { + val c = configs.reduceLeft(_ withFallback _) + _nodeConf ++= roles map { _ -> c } + } /** * Include for verbose debug logging @@ -318,18 +321,15 @@ abstract class MultiNodeSpec(val myself: RoleName, _system: ActorSystem, _roles: * to the `roleMap`). */ def runOn(nodes: RoleName*)(thunk: ⇒ Unit): Unit = { - if (nodes exists (_ == myself)) { + if (isNode(nodes: _*)) { thunk } } /** - * Execute the `yes` block of code only on the given nodes (names according - * to the `roleMap`) else execute the `no` block of code. + * Verify that the running node matches one of the given nodes */ - def ifNode[T](nodes: RoleName*)(yes: ⇒ T)(no: ⇒ T): T = { - if (nodes exists (_ == myself)) yes else no - } + def isNode(nodes: RoleName*): Boolean = nodes contains myself /** * Enter the named barriers in the order given. Use the remaining duration from diff --git a/akka-remote-tests/src/multi-jvm/scala/akka/remote/testconductor/TestConductorSpec.scala b/akka-remote-tests/src/multi-jvm/scala/akka/remote/testconductor/TestConductorSpec.scala index 1b5ac90772..544ee03ead 100644 --- a/akka-remote-tests/src/multi-jvm/scala/akka/remote/testconductor/TestConductorSpec.scala +++ b/akka-remote-tests/src/multi-jvm/scala/akka/remote/testconductor/TestConductorSpec.scala @@ -89,11 +89,8 @@ class TestConductorSpec extends MultiNodeSpec(TestConductorMultiJvmSpec) with ST } val (min, max) = - ifNode(master) { - (0 seconds, 500 millis) - } { - (0.6 seconds, 2 seconds) - } + if(isNode(master))(0 seconds, 500 millis) + else (0.6 seconds, 2 seconds) within(min, max) { expectMsg(500 millis, 10)