Skip to content

Commit 22c6739

Browse files
author
Marcin Kurczych
committed
[SPARK-23464][MESOS] Add unit test [to be squashed]
1 parent e4c5fb1 commit 22c6739

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

resource-managers/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterSchedulerSuite.scala

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,38 @@ class MesosClusterSchedulerSuite extends SparkFunSuite with LocalSparkContext wi
199199
})
200200
}
201201

202+
test("properly wraps and escapes parameters passed to driver command") {
203+
setScheduler()
204+
205+
val mem = 1000
206+
val cpu = 1
207+
208+
val response = scheduler.submitDriver(
209+
new MesosDriverDescription("d1", "jar", mem, cpu, true,
210+
command,
211+
Map("spark.mesos.executor.home" -> "test",
212+
"spark.app.name" -> "test",
213+
// no special characters, wrap only
214+
"spark.driver.extraJavaOptions" ->
215+
"-XX+PrintGC -Dparam1=val1 -Dparam2=val2",
216+
// special characters, to be escaped
217+
"spark.executor.extraJavaOptions" ->
218+
"""-Dparam1="value 1" -Dparam2=value\ 2 -Dpath=$PATH"""),
219+
"s1",
220+
new Date()))
221+
assert(response.success)
222+
223+
val offer = Utils.createOffer("o1", "s1", mem, cpu)
224+
scheduler.resourceOffers(driver, List(offer).asJava)
225+
val tasks = Utils.verifyTaskLaunched(driver, "o1")
226+
val driverCmd = tasks.head.getCommand.getValue
227+
assert(driverCmd.contains(
228+
"""--conf spark.driver.extraJavaOptions="-XX+PrintGC -Dparam1=val1 -Dparam2=val2""""))
229+
assert(driverCmd.contains(
230+
"""--conf spark.executor.extraJavaOptions="""
231+
+ """"-Dparam1=\"value 1\" -Dparam2=value\\ 2 -Dpath=\$PATH""""))
232+
}
233+
202234
test("supports spark.mesos.driverEnv.*") {
203235
setScheduler()
204236

0 commit comments

Comments
 (0)