You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by do...@apache.org on 2022/06/23 01:06:48 UTC
[spark] branch master updated: [SPARK-39563][CORE][TESTS] Use `localHostNameForURI` in `UISuite`
This is an automated email from the ASF dual-hosted git repository.
dongjoon pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git
The following commit(s) were added to refs/heads/master by this push:
new 3d68ad8003a [SPARK-39563][CORE][TESTS] Use `localHostNameForURI` in `UISuite`
3d68ad8003a is described below
commit 3d68ad8003a16229bd79f86cb31f618167814a7f
Author: William Hyun <wi...@apache.org>
AuthorDate: Wed Jun 22 18:06:30 2022 -0700
[SPARK-39563][CORE][TESTS] Use `localHostNameForURI` in `UISuite`
### What changes were proposed in this pull request?
This PR aims to use `localHostNameForURI` in `UISuite`.
### Why are the changes needed?
To improve IPv6 test coverage.
### Does this PR introduce _any_ user-facing change?
No.
### How was this patch tested?
Pass the Cis and manually test with IPv6 only environment.
Closes #36962 from williamhyun/uisuite.
Authored-by: William Hyun <wi...@apache.org>
Signed-off-by: Dongjoon Hyun <do...@apache.org>
---
.../test/scala/org/apache/spark/ui/UISuite.scala | 48 +++++++++++-----------
1 file changed, 25 insertions(+), 23 deletions(-)
diff --git a/core/src/test/scala/org/apache/spark/ui/UISuite.scala b/core/src/test/scala/org/apache/spark/ui/UISuite.scala
index b30c6fc462b..352c51baa8c 100644
--- a/core/src/test/scala/org/apache/spark/ui/UISuite.scala
+++ b/core/src/test/scala/org/apache/spark/ui/UISuite.scala
@@ -38,6 +38,8 @@ import org.apache.spark.util.Utils
class UISuite extends SparkFunSuite {
+ val localhost = Utils.localHostNameForURI()
+
/**
* Create a test SparkContext with the SparkUI enabled.
* It is safe to `get` the SparkUI directly from the SparkContext returned here.
@@ -91,7 +93,7 @@ class UISuite extends SparkFunSuite {
withSpark(newSparkContext()) { sc =>
// test if visible from http://localhost:4040
eventually(timeout(10.seconds), interval(50.milliseconds)) {
- val html = Utils.tryWithResource(Source.fromURL("http://localhost:4040"))(_.mkString)
+ val html = Utils.tryWithResource(Source.fromURL(s"http://$localhost:4040"))(_.mkString)
assert(html.toLowerCase(Locale.ROOT).contains("stages"))
}
}
@@ -201,41 +203,41 @@ class UISuite extends SparkFunSuite {
test("verify proxy rewrittenURI") {
val prefix = "/worker-id"
- val target = "http://localhost:8081"
+ val target = s"http://$localhost:8081"
val path = "/worker-id/json"
var rewrittenURI = JettyUtils.createProxyURI(prefix, target, path, null)
- assert(rewrittenURI.toString() === "http://localhost:8081/json")
+ assert(rewrittenURI.toString() === s"http://$localhost:8081/json")
rewrittenURI = JettyUtils.createProxyURI(prefix, target, path, "test=done")
- assert(rewrittenURI.toString() === "http://localhost:8081/json?test=done")
+ assert(rewrittenURI.toString() === s"http://$localhost:8081/json?test=done")
rewrittenURI = JettyUtils.createProxyURI(prefix, target, "/worker-id", null)
- assert(rewrittenURI.toString() === "http://localhost:8081")
+ assert(rewrittenURI.toString() === s"http://$localhost:8081")
rewrittenURI = JettyUtils.createProxyURI(prefix, target, "/worker-id/test%2F", null)
- assert(rewrittenURI.toString() === "http://localhost:8081/test%2F")
+ assert(rewrittenURI.toString() === s"http://$localhost:8081/test%2F")
rewrittenURI = JettyUtils.createProxyURI(prefix, target, "/worker-id/%F0%9F%98%84", null)
- assert(rewrittenURI.toString() === "http://localhost:8081/%F0%9F%98%84")
+ assert(rewrittenURI.toString() === s"http://$localhost:8081/%F0%9F%98%84")
rewrittenURI = JettyUtils.createProxyURI(prefix, target, "/worker-noid/json", null)
assert(rewrittenURI === null)
}
test("SPARK-33611: Avoid encoding twice on the query parameter of proxy rewrittenURI") {
val prefix = "/worker-id"
- val target = "http://localhost:8081"
+ val target = s"http://$localhost:8081"
val path = "/worker-id/json"
val rewrittenURI =
JettyUtils.createProxyURI(prefix, target, path, "order%5B0%5D%5Bcolumn%5D=0")
- assert(rewrittenURI.toString === "http://localhost:8081/json?order%5B0%5D%5Bcolumn%5D=0")
+ assert(rewrittenURI.toString === s"http://$localhost:8081/json?order%5B0%5D%5Bcolumn%5D=0")
}
test("verify rewriting location header for reverse proxy") {
val clientRequest = mock(classOf[HttpServletRequest])
- var headerValue = "http://localhost:4040/jobs"
- val targetUri = URI.create("http://localhost:4040")
+ var headerValue = s"http://$localhost:4040/jobs"
+ val targetUri = URI.create(s"http://$localhost:4040")
when(clientRequest.getScheme()).thenReturn("http")
- when(clientRequest.getHeader("host")).thenReturn("localhost:8080")
+ when(clientRequest.getHeader("host")).thenReturn(s"$localhost:8080")
when(clientRequest.getPathInfo()).thenReturn("/proxy/worker-id/jobs")
var newHeader = JettyUtils.createProxyLocationHeader(headerValue, clientRequest, targetUri)
- assert(newHeader.toString() === "http://localhost:8080/proxy/worker-id/jobs")
- headerValue = "http://localhost:4041/jobs"
+ assert(newHeader.toString() === s"http://$localhost:8080/proxy/worker-id/jobs")
+ headerValue = s"http://$localhost:4041/jobs"
newHeader = JettyUtils.createProxyLocationHeader(headerValue, clientRequest, targetUri)
assert(newHeader === null)
}
@@ -249,7 +251,7 @@ class UISuite extends SparkFunSuite {
val serverInfo = JettyUtils.startJettyServer("0.0.0.0", 0, sslOptions, conf)
try {
val path = "/test"
- val url = new URL(s"http://localhost:${serverInfo.boundPort}$path/root")
+ val url = new URL(s"http://$localhost:${serverInfo.boundPort}$path/root")
assert(TestUtils.httpResponseCode(url) === HttpServletResponse.SC_NOT_FOUND)
@@ -260,7 +262,7 @@ class UISuite extends SparkFunSuite {
// Try a request with bad content in a parameter to make sure the security filter
// is being added to new handlers.
val badRequest = new URL(
- s"http://localhost:${serverInfo.boundPort}$path/root?bypass&invalid<=foo")
+ s"http://$localhost:${serverInfo.boundPort}$path/root?bypass&invalid<=foo")
assert(TestUtils.httpResponseCode(badRequest) === HttpServletResponse.SC_OK)
assert(servlet.lastRequest.getParameter("invalid<") === null)
assert(servlet.lastRequest.getParameter("invalid<") !== null)
@@ -276,7 +278,7 @@ class UISuite extends SparkFunSuite {
val (conf, securityMgr, sslOptions) = sslEnabledConf()
val serverInfo = JettyUtils.startJettyServer("0.0.0.0", 0, sslOptions, conf)
try {
- val serverAddr = s"http://localhost:${serverInfo.boundPort}"
+ val serverAddr = s"http://$localhost:${serverInfo.boundPort}"
val (_, ctx) = newContext("/ctx1")
serverInfo.addHandler(ctx, securityMgr)
@@ -285,7 +287,7 @@ class UISuite extends SparkFunSuite {
assert(conn.getResponseCode() === HttpServletResponse.SC_FOUND)
val location = Option(conn.getHeaderFields().get("Location"))
.map(_.get(0)).orNull
- val expectedLocation = s"https://localhost:${serverInfo.securePort.get}/ctx(1)?a[0]=b"
+ val expectedLocation = s"https://$localhost:${serverInfo.securePort.get}/ctx(1)?a[0]=b"
assert(location == expectedLocation)
}
} finally {
@@ -313,9 +315,9 @@ class UISuite extends SparkFunSuite {
tests.foreach { case (scheme, port, expected) =>
val urls = Seq(
- s"$scheme://localhost:$port/root",
- s"$scheme://localhost:$port/test1/root",
- s"$scheme://localhost:$port/test2/root")
+ s"$scheme://$localhost:$port/root",
+ s"$scheme://$localhost:$port/test1/root",
+ s"$scheme://$localhost:$port/test2/root")
urls.foreach { url =>
val rc = TestUtils.httpResponseCode(new URL(url))
assert(rc === expected, s"Unexpected status $rc for $url")
@@ -355,7 +357,7 @@ class UISuite extends SparkFunSuite {
val serverInfo = JettyUtils.startJettyServer("0.0.0.0", 0, sslOptions, conf)
try {
- val serverAddr = s"http://localhost:${serverInfo.boundPort}"
+ val serverAddr = s"http://$localhost:${serverInfo.boundPort}"
val redirect = JettyUtils.createRedirectHandler("/src", "/dst")
serverInfo.addHandler(redirect, securityMgr)
@@ -395,7 +397,7 @@ class UISuite extends SparkFunSuite {
try {
val (_, ctx) = newContext("/ctx")
serverInfo.addHandler(ctx, securityMgr)
- val urlStr = s"http://localhost:${serverInfo.boundPort}/ctx"
+ val urlStr = s"http://$localhost:${serverInfo.boundPort}/ctx"
assert(TestUtils.httpResponseCode(new URL(urlStr + "/")) === HttpServletResponse.SC_OK)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@spark.apache.org
For additional commands, e-mail: commits-help@spark.apache.org