aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorNiklas Wilcke <1wilcke@informatik.uni-hamburg.de>2014-11-10 11:37:38 -0800
committerAndrew Or <andrew@databricks.com>2014-11-10 11:37:38 -0800
commited8bf1eac548577c4bbad7ce3f7f301a2f52ef17 (patch)
tree8d2726e4fbb027d0acf59984af8aa9b912cc1f64 /core
parent894a7245c379b2e823ae7d81cc9228e60ba47c78 (diff)
downloadspark-ed8bf1eac548577c4bbad7ce3f7f301a2f52ef17.tar.gz
spark-ed8bf1eac548577c4bbad7ce3f7f301a2f52ef17.tar.bz2
spark-ed8bf1eac548577c4bbad7ce3f7f301a2f52ef17.zip
[SPARK-4169] [Core] Accommodate non-English Locales in unit tests
For me the core tests failed because there are two locale dependent parts in the code. Look at the Jira ticket for details. Why is it necessary to check the exception message in isBindCollision in https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/util/Utils.scala#L1686 ? Author: Niklas Wilcke <1wilcke@informatik.uni-hamburg.de> Closes #3036 from numbnut/core-test-fix and squashes the following commits: 1fb0d04 [Niklas Wilcke] Fixing locale dependend code and tests
Diffstat (limited to 'core')
-rw-r--r--core/src/main/scala/org/apache/spark/util/Utils.scala2
-rw-r--r--core/src/test/scala/org/apache/spark/util/UtilsSuite.scala25
2 files changed, 15 insertions, 12 deletions
diff --git a/core/src/main/scala/org/apache/spark/util/Utils.scala b/core/src/main/scala/org/apache/spark/util/Utils.scala
index 6b85c03da5..eb4a598dbf 100644
--- a/core/src/main/scala/org/apache/spark/util/Utils.scala
+++ b/core/src/main/scala/org/apache/spark/util/Utils.scala
@@ -1700,7 +1700,7 @@ private[spark] object Utils extends Logging {
def isBindCollision(exception: Throwable): Boolean = {
exception match {
case e: BindException =>
- if (e.getMessage != null && e.getMessage.contains("Address already in use")) {
+ if (e.getMessage != null) {
return true
}
isBindCollision(e.getCause)
diff --git a/core/src/test/scala/org/apache/spark/util/UtilsSuite.scala b/core/src/test/scala/org/apache/spark/util/UtilsSuite.scala
index 8ffe3e2b13..f9d4bea823 100644
--- a/core/src/test/scala/org/apache/spark/util/UtilsSuite.scala
+++ b/core/src/test/scala/org/apache/spark/util/UtilsSuite.scala
@@ -22,6 +22,8 @@ import scala.util.Random
import java.io.{File, ByteArrayOutputStream, ByteArrayInputStream, FileOutputStream}
import java.net.{BindException, ServerSocket, URI}
import java.nio.{ByteBuffer, ByteOrder}
+import java.text.DecimalFormatSymbols
+import java.util.Locale
import com.google.common.base.Charsets.UTF_8
import com.google.common.io.Files
@@ -103,14 +105,16 @@ class UtilsSuite extends FunSuite {
val hour = minute * 60
def str = Utils.msDurationToString(_)
+ val sep = new DecimalFormatSymbols(Locale.getDefault()).getDecimalSeparator()
+
assert(str(123) === "123 ms")
- assert(str(second) === "1.0 s")
- assert(str(second + 462) === "1.5 s")
- assert(str(hour) === "1.00 h")
- assert(str(minute) === "1.0 m")
- assert(str(minute + 4 * second + 34) === "1.1 m")
- assert(str(10 * hour + minute + 4 * second) === "10.02 h")
- assert(str(10 * hour + 59 * minute + 59 * second + 999) === "11.00 h")
+ assert(str(second) === "1" + sep + "0 s")
+ assert(str(second + 462) === "1" + sep + "5 s")
+ assert(str(hour) === "1" + sep + "00 h")
+ assert(str(minute) === "1" + sep + "0 m")
+ assert(str(minute + 4 * second + 34) === "1" + sep + "1 m")
+ assert(str(10 * hour + minute + 4 * second) === "10" + sep + "02 h")
+ assert(str(10 * hour + 59 * minute + 59 * second + 999) === "11" + sep + "00 h")
}
test("reading offset bytes of a file") {
@@ -300,12 +304,11 @@ class UtilsSuite extends FunSuite {
assert(!Utils.isBindCollision(new Exception))
assert(!Utils.isBindCollision(new Exception(new Exception)))
assert(!Utils.isBindCollision(new Exception(new BindException)))
- assert(!Utils.isBindCollision(new Exception(new BindException("Random message"))))
// Positives
- val be = new BindException("Address already in use")
- val be1 = new Exception(new BindException("Address already in use"))
- val be2 = new Exception(new Exception(new BindException("Address already in use")))
+ val be = new BindException("Random Message")
+ val be1 = new Exception(new BindException("Random Message"))
+ val be2 = new Exception(new Exception(new BindException("Random Message")))
assert(Utils.isBindCollision(be))
assert(Utils.isBindCollision(be1))
assert(Utils.isBindCollision(be2))