aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/src/test/scala/org/apache/spark/storage/BlockReplicationPolicySuite.scala13
1 files changed, 11 insertions, 2 deletions
diff --git a/core/src/test/scala/org/apache/spark/storage/BlockReplicationPolicySuite.scala b/core/src/test/scala/org/apache/spark/storage/BlockReplicationPolicySuite.scala
index ecad0f5352..dfecd04c1b 100644
--- a/core/src/test/scala/org/apache/spark/storage/BlockReplicationPolicySuite.scala
+++ b/core/src/test/scala/org/apache/spark/storage/BlockReplicationPolicySuite.scala
@@ -70,9 +70,18 @@ class RandomBlockReplicationPolicyBehavior extends SparkFunSuite
}
}
+ /**
+ * Returns a sequence of [[BlockManagerId]], whose rack is randomly picked from the given `racks`.
+ * Note that, each rack will be picked at least once from `racks`, if `count` is greater or equal
+ * to the number of `racks`.
+ */
protected def generateBlockManagerIds(count: Int, racks: Seq[String]): Seq[BlockManagerId] = {
- (1 to count).map{i =>
- BlockManagerId(s"Exec-$i", s"Host-$i", 10000 + i, Some(racks(Random.nextInt(racks.size))))
+ val randomizedRacks: Seq[String] = Random.shuffle(
+ racks ++ racks.length.until(count).map(_ => racks(Random.nextInt(racks.length)))
+ )
+
+ (0 until count).map { i =>
+ BlockManagerId(s"Exec-$i", s"Host-$i", 10000 + i, Some(randomizedRacks(i)))
}
}
}