Skip to content

Commit 46d46da

Browse files
author
Marcelo Vanzin
committed
Clean up a test and make it more future-proof.
1 parent b93692a commit 46d46da

File tree

2 files changed

+26
-55
lines changed

2 files changed

+26
-55
lines changed

launcher/src/main/java/org/apache/spark/launcher/SparkSubmitOptionParser.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,10 @@ public abstract class SparkSubmitOptionParser {
7171
* <p/>
7272
* Options not listed here nor in the "switch" list below will result in a call to
7373
* {@link $#handleUnknown(String)}.
74+
* <p/>
75+
* These two arrays are visible for tests.
7476
*/
75-
private final String[][] opts = {
77+
final String[][] opts = {
7678
{ ARCHIVES },
7779
{ CLASS },
7880
{ CONF, "-c" },
@@ -100,7 +102,7 @@ public abstract class SparkSubmitOptionParser {
100102
/**
101103
* List of switches (command line options that do not take parameters) recognized by spark-submit.
102104
*/
103-
private final String[][] switches = {
105+
final String[][] switches = {
104106
{ HELP, "-h" },
105107
{ SUPERVISE },
106108
{ VERBOSE, "-v" },

launcher/src/test/java/org/apache/spark/launcher/SparkSubmitOptionParserSuite.java

Lines changed: 22 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -39,60 +39,29 @@ public void setUp() {
3939

4040
@Test
4141
public void testAllOptions() {
42-
List<String> args = Arrays.asList(
43-
ARCHIVES, ARCHIVES,
44-
CLASS, CLASS,
45-
CONF, CONF,
46-
DEPLOY_MODE, DEPLOY_MODE,
47-
DRIVER_CLASS_PATH, DRIVER_CLASS_PATH,
48-
DRIVER_CORES, DRIVER_CORES,
49-
DRIVER_JAVA_OPTIONS, DRIVER_JAVA_OPTIONS,
50-
DRIVER_LIBRARY_PATH, DRIVER_LIBRARY_PATH,
51-
DRIVER_MEMORY, DRIVER_MEMORY,
52-
EXECUTOR_CORES, EXECUTOR_CORES,
53-
EXECUTOR_MEMORY, EXECUTOR_MEMORY,
54-
FILES, FILES,
55-
JARS, JARS,
56-
MASTER, MASTER,
57-
NAME, NAME,
58-
NUM_EXECUTORS, NUM_EXECUTORS,
59-
PACKAGES, PACKAGES,
60-
PROPERTIES_FILE, PROPERTIES_FILE,
61-
PY_FILES, PY_FILES,
62-
QUEUE, QUEUE,
63-
TOTAL_EXECUTOR_CORES, TOTAL_EXECUTOR_CORES,
64-
REPOSITORIES, REPOSITORIES,
65-
HELP,
66-
SUPERVISE,
67-
VERBOSE);
42+
int count = 0;
43+
for (String[] optNames : parser.opts) {
44+
for (String optName : optNames) {
45+
String value = optName + "-value";
46+
parser.parse(Arrays.asList(optName, value));
47+
count++;
48+
verify(parser).handle(eq(optNames[0]), eq(value));
49+
verify(parser, times(count)).handle(anyString(), anyString());
50+
verify(parser, times(count)).handleExtraArgs(eq(Collections.<String>emptyList()));
51+
}
52+
}
6853

69-
parser.parse(args);
70-
verify(parser).handle(eq(ARCHIVES), eq(ARCHIVES));
71-
verify(parser).handle(eq(CLASS), eq(CLASS));
72-
verify(parser).handle(eq(CONF), eq(CONF));
73-
verify(parser).handle(eq(DEPLOY_MODE), eq(DEPLOY_MODE));
74-
verify(parser).handle(eq(DRIVER_CLASS_PATH), eq(DRIVER_CLASS_PATH));
75-
verify(parser).handle(eq(DRIVER_CORES), eq(DRIVER_CORES));
76-
verify(parser).handle(eq(DRIVER_JAVA_OPTIONS), eq(DRIVER_JAVA_OPTIONS));
77-
verify(parser).handle(eq(DRIVER_LIBRARY_PATH), eq(DRIVER_LIBRARY_PATH));
78-
verify(parser).handle(eq(DRIVER_MEMORY), eq(DRIVER_MEMORY));
79-
verify(parser).handle(eq(EXECUTOR_CORES), eq(EXECUTOR_CORES));
80-
verify(parser).handle(eq(EXECUTOR_MEMORY), eq(EXECUTOR_MEMORY));
81-
verify(parser).handle(eq(FILES), eq(FILES));
82-
verify(parser).handle(eq(JARS), eq(JARS));
83-
verify(parser).handle(eq(MASTER), eq(MASTER));
84-
verify(parser).handle(eq(NAME), eq(NAME));
85-
verify(parser).handle(eq(NUM_EXECUTORS), eq(NUM_EXECUTORS));
86-
verify(parser).handle(eq(PACKAGES), eq(PACKAGES));
87-
verify(parser).handle(eq(PROPERTIES_FILE), eq(PROPERTIES_FILE));
88-
verify(parser).handle(eq(PY_FILES), eq(PY_FILES));
89-
verify(parser).handle(eq(QUEUE), eq(QUEUE));
90-
verify(parser).handle(eq(REPOSITORIES), eq(REPOSITORIES));
91-
verify(parser).handle(eq(TOTAL_EXECUTOR_CORES), eq(TOTAL_EXECUTOR_CORES));
92-
verify(parser).handle(eq(HELP), same((String) null));
93-
verify(parser).handle(eq(SUPERVISE), same((String) null));
94-
verify(parser).handle(eq(VERBOSE), same((String) null));
95-
verify(parser).handleExtraArgs(eq(Collections.<String>emptyList()));
54+
for (String[] switchNames : parser.switches) {
55+
int switchCount = 0;
56+
for (String name : switchNames) {
57+
parser.parse(Arrays.asList(name));
58+
count++;
59+
switchCount++;
60+
verify(parser, times(switchCount)).handle(eq(switchNames[0]), same((String) null));
61+
verify(parser, times(count)).handle(anyString(), any(String.class));
62+
verify(parser, times(count)).handleExtraArgs(eq(Collections.<String>emptyList()));
63+
}
64+
}
9665
}
9766

9867
@Test

0 commit comments

Comments
 (0)