The Battle for Wesnoth 1.21.0-dev
 
Loading...
Searching...
No Matches
test_commandline_options.cpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2011 - 2025
3 by Lukasz Dobrogowski <lukasz.dobrogowski@gmail.com>
4 Part of the Battle for Wesnoth Project https://www.wesnoth.org/
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY.
12
13 See the COPYING file for more details.
14*/
15#define GETTEXT_DOMAIN "wesnoth-test"
16
18
19#include <boost/test/unit_test.hpp>
20
21BOOST_AUTO_TEST_SUITE( cmdline_opts )
22
23BOOST_AUTO_TEST_CASE (test_empty_options)
24{
25
26 std::vector<std::string> args {"wesnoth"};
27 commandline_options co(args);
28
29 BOOST_CHECK(!co.campaign);
30 BOOST_CHECK(!co.campaign_difficulty);
31 BOOST_CHECK(!co.campaign_scenario);
32 BOOST_CHECK(!co.campaign_skip_story);
33 BOOST_CHECK(!co.clock);
34 BOOST_CHECK(!co.data_dir);
35 BOOST_CHECK(!co.print_data_path);
36 BOOST_CHECK(!co.debug);
37#ifdef DEBUG_WINDOW_LAYOUT_GRAPHS
38 BOOST_CHECK(!co.debug_dot_domain);
39 BOOST_CHECK(!co.debug_dot_level);
40#endif
41 BOOST_CHECK(!co.editor);
42 BOOST_CHECK(!co.fps);
43 BOOST_CHECK(!co.fullscreen);
44 BOOST_CHECK(!co.help);
45 BOOST_CHECK(!co.load);
46 BOOST_CHECK(!co.log);
47 BOOST_CHECK(!co.logdomains);
48 BOOST_CHECK(!co.multiplayer);
49 BOOST_CHECK(!co.multiplayer_ai_config);
50 BOOST_CHECK(!co.multiplayer_algorithm);
51 BOOST_CHECK(!co.multiplayer_controller);
52 BOOST_CHECK(!co.multiplayer_era);
53 BOOST_CHECK(!co.multiplayer_exit_at_end);
54 BOOST_CHECK(!co.multiplayer_ignore_map_settings);
55 BOOST_CHECK(!co.multiplayer_label);
56 BOOST_CHECK(!co.multiplayer_parm);
57 BOOST_CHECK(!co.multiplayer_side);
58 BOOST_CHECK(!co.multiplayer_turns);
59 BOOST_CHECK(!co.max_fps);
60 BOOST_CHECK(!co.nocache);
61 BOOST_CHECK(!co.nogui);
62 BOOST_CHECK(!co.nomusic);
63 BOOST_CHECK(!co.nosound);
64 BOOST_CHECK(!co.new_widgets);
65 BOOST_CHECK(!co.preprocess);
66 BOOST_CHECK(!co.preprocess_defines);
67 BOOST_CHECK(!co.preprocess_input_macros);
68 BOOST_CHECK(!co.preprocess_output_macros);
69 BOOST_CHECK(!co.preprocess_path);
70 BOOST_CHECK(!co.preprocess_target);
71 BOOST_CHECK(!co.resolution);
72 BOOST_CHECK(!co.rng_seed);
73 BOOST_CHECK(!co.multiplayer_scenario);
74 BOOST_CHECK(!co.server);
75 BOOST_CHECK(!co.screenshot);
76 BOOST_CHECK(!co.screenshot_map_file);
77 BOOST_CHECK(!co.screenshot_output_file);
78 BOOST_CHECK(!co.test);
79 BOOST_CHECK(!co.userdata_dir);
80 BOOST_CHECK(!co.print_userdata_path);
81 BOOST_CHECK(!co.validcache);
82 BOOST_CHECK(!co.version);
83 BOOST_CHECK(!co.windowed);
84 BOOST_CHECK(!co.with_replay);
85}
86
87BOOST_AUTO_TEST_CASE (test_default_options)
88{
89 std::vector<std::string> args {
90 "wesnoth",
91 "--campaign",
92 "--editor",
93 "--logdomains",
94 "--preprocess-output-macros",
95 "--server",
96 "--test"};
97
98 commandline_options co(args);
99 BOOST_CHECK(co.campaign && co.campaign->empty());
100 BOOST_CHECK(!co.campaign_difficulty);
101 BOOST_CHECK(!co.campaign_scenario);
102 BOOST_CHECK(!co.campaign_skip_story);
103 BOOST_CHECK(!co.clock);
104 BOOST_CHECK(!co.data_dir);
105 BOOST_CHECK(!co.print_data_path);
106 BOOST_CHECK(!co.debug);
107#ifdef DEBUG_WINDOW_LAYOUT_GRAPHS
108 BOOST_CHECK(!co.debug_dot_domain);
109 BOOST_CHECK(!co.debug_dot_level);
110#endif
111 BOOST_CHECK(co.editor && co.editor->empty());
112 BOOST_CHECK(!co.fps);
113 BOOST_CHECK(!co.fullscreen);
114 BOOST_CHECK(!co.help);
115 BOOST_CHECK(!co.load);
116 BOOST_CHECK(!co.log);
117 BOOST_CHECK(co.logdomains && co.logdomains->empty());
118 BOOST_CHECK(!co.multiplayer);
119 BOOST_CHECK(!co.multiplayer_ai_config);
120 BOOST_CHECK(!co.multiplayer_algorithm);
121 BOOST_CHECK(!co.multiplayer_controller);
122 BOOST_CHECK(!co.multiplayer_era);
123 BOOST_CHECK(!co.multiplayer_exit_at_end);
124 BOOST_CHECK(!co.multiplayer_ignore_map_settings);
125 BOOST_CHECK(!co.multiplayer_label);
126 BOOST_CHECK(!co.multiplayer_parm);
127 BOOST_CHECK(!co.multiplayer_scenario);
128 BOOST_CHECK(!co.multiplayer_side);
129 BOOST_CHECK(!co.multiplayer_turns);
130 BOOST_CHECK(!co.max_fps);
131 BOOST_CHECK(!co.nocache);
132 BOOST_CHECK(!co.nogui);
133 BOOST_CHECK(!co.nomusic);
134 BOOST_CHECK(!co.nosound);
135 BOOST_CHECK(!co.new_widgets);
136 BOOST_CHECK(!co.preprocess);
137 BOOST_CHECK(!co.preprocess_defines);
138 BOOST_CHECK(!co.preprocess_input_macros);
139 BOOST_CHECK(co.preprocess_output_macros && co.preprocess_output_macros->empty());
140 BOOST_CHECK(!co.preprocess_path);
141 BOOST_CHECK(!co.preprocess_target);
142 BOOST_CHECK(!co.resolution);
143 BOOST_CHECK(!co.rng_seed);
144 BOOST_CHECK(co.server && co.server->empty());
145 BOOST_CHECK(!co.screenshot);
146 BOOST_CHECK(!co.screenshot_map_file);
147 BOOST_CHECK(!co.screenshot_output_file);
148 BOOST_CHECK(co.test && co.test->empty());
149 BOOST_CHECK(!co.userdata_dir);
150 BOOST_CHECK(!co.print_userdata_path);
151 BOOST_CHECK(!co.validcache);
152 BOOST_CHECK(!co.version);
153 BOOST_CHECK(!co.windowed);
154 BOOST_CHECK(!co.with_replay);
155}
156
157BOOST_AUTO_TEST_CASE (test_full_options)
158{
159 std::vector<std::string> args {
160 "wesnoth",
161 "--ai-config=1:aifoo",
162 "--ai-config=2:aibar",
163 "--algorithm=3:algfoo",
164 "--algorithm=4:algbar",
165 "--campaign=campfoo",
166 "--campaign-difficulty=16",
167 "--campaign-scenario=scenfoo",
168 "--campaign-skip-story",
169 "--clock",
170 "--controller=5:confoo",
171 "--controller=6:conbar",
172 "--data-dir=datadirfoo",
173 "--data-path",
174 "--debug",
175#ifdef DEBUG_WINDOW_LAYOUT_GRAPHS
176 "--debug-dot-domain=ddfoo",
177 "--debug-dot-level=dlfoo",
178#endif
179 "--editor=editfoo",
180 "--era=erafoo",
181 "--exit-at-end",
182 "--fps",
183 "--fullscreen",
184 "--help",
185 "--ignore-map-settings",
186 "--label=labelfoo",
187 "--load=loadfoo",
188 "--log-error=errfoo,errbar/*",
189 "--log-warning=warnfoo,warnfoo/bar",
190 "--log-info=infofoo",
191 "--log-debug=dbgfoo,dbgbar,dbg/foo/bar/baz",
192 "--logdomains=filterfoo",
193 "--max-fps=100",
194 "--multiplayer",
195 "--new-widgets",
196 "--nocache",
197 "--nomusic",
198 "--nosound",
199 "--nogui",
200 "--parm=7:parmfoo:valfoo",
201 "--parm=8:parmbar:valbar",
202 "--preprocess", "preppathfoo", "preptargfoo",
203 "--preprocess-defines=DEFFOO,DEFBAR",
204 "--preprocess-input-macros=inmfoo",
205 "--preprocess-output-macros=outmfoo",
206 "--resolution=800x600",
207 "--rng-seed=1234",
208 "--scenario=scenfoo",
209 "--screenshot", "mapfoo", "outssfoo",
210 "--side=9:sidefoo",
211 "--side=10:sidebar",
212 "--server=servfoo",
213 "--test=testfoo",
214 "--turns=42",
215 "--userdata-dir=userdatadirfoo",
216 "--userdata-path",
217 "--validcache",
218 "--version",
219 "--windowed",
220 "--with-replay"};
221
222 commandline_options co(args);
223
224 BOOST_CHECK(co.campaign && *co.campaign == "campfoo");
225 BOOST_CHECK(co.campaign_difficulty && *co.campaign_difficulty == 16);
226 BOOST_CHECK(co.campaign_scenario && *co.campaign_scenario == "scenfoo");
227 BOOST_CHECK(co.campaign_skip_story);
228 BOOST_CHECK(co.clock);
229 BOOST_CHECK(co.data_dir && *co.data_dir == "datadirfoo");
230 BOOST_CHECK(co.print_data_path);
231 BOOST_CHECK(co.debug);
232#ifdef DEBUG_WINDOW_LAYOUT_GRAPHS
233 BOOST_CHECK(co.debug_dot_domain && *co.debug_dot_domain == "ddfoo");
234 BOOST_CHECK(co.debug_dot_level && *co.debug_dot_level == "dlfoo");
235#endif
236 BOOST_CHECK(co.editor && *co.editor == "editfoo");
237 BOOST_CHECK(co.fps);
238 BOOST_CHECK(co.fullscreen);
239 BOOST_CHECK(co.help);
240 BOOST_CHECK(co.load && *co.load == "loadfoo");
241 BOOST_CHECK(co.log);
242 BOOST_CHECK(co.log->size()==8);
243 BOOST_CHECK(co.log->at(0).first == lg::severity::LG_ERROR && co.log->at(1).first == lg::severity::LG_ERROR);
244 BOOST_CHECK(co.log->at(0).second == "errfoo" && co.log->at(1).second == "errbar/*");
245 BOOST_CHECK(co.log->at(2).first == lg::severity::LG_WARN && co.log->at(3).first == lg::severity::LG_WARN);
246 BOOST_CHECK(co.log->at(2).second == "warnfoo" && co.log->at(3).second == "warnfoo/bar");
247 BOOST_CHECK(co.log->at(4).first == lg::severity::LG_INFO);
248 BOOST_CHECK(co.log->at(4).second == "infofoo");
249 BOOST_CHECK(co.log->at(5).first == lg::severity::LG_DEBUG &&
250 co.log->at(6).first == lg::severity::LG_DEBUG && co.log->at(7).first == lg::severity::LG_DEBUG);
251 BOOST_CHECK(co.log->at(5).second == "dbgfoo" && co.log->at(6).second == "dbgbar" && co.log->at(7).second == "dbg/foo/bar/baz");
252 BOOST_CHECK(co.logdomains && *co.logdomains == "filterfoo");
253 BOOST_CHECK(co.multiplayer);
254 BOOST_CHECK(co.multiplayer_ai_config);
255 BOOST_CHECK(co.multiplayer_ai_config->size() == 2);
256 BOOST_CHECK(co.multiplayer_ai_config->at(0).first == 1 && co.multiplayer_ai_config->at(0).second == "aifoo");
257 BOOST_CHECK(co.multiplayer_ai_config->at(1).first == 2 && co.multiplayer_ai_config->at(1).second == "aibar");
258 BOOST_CHECK(co.multiplayer_algorithm);
259 BOOST_CHECK(co.multiplayer_algorithm->at(0).first == 3 && co.multiplayer_algorithm->at(0).second == "algfoo");
260 BOOST_CHECK(co.multiplayer_algorithm->at(1).first == 4 && co.multiplayer_algorithm->at(1).second == "algbar");
261 BOOST_CHECK(co.multiplayer_controller);
262 BOOST_CHECK(co.multiplayer_controller->at(0).first == 5 && co.multiplayer_controller->at(0).second == "confoo");
263 BOOST_CHECK(co.multiplayer_controller->at(1).first == 6 && co.multiplayer_controller->at(1).second == "conbar");
264 BOOST_CHECK(co.multiplayer_era && *co.multiplayer_era == "erafoo");
265 BOOST_CHECK(co.multiplayer_exit_at_end);
266 BOOST_CHECK(co.multiplayer_ignore_map_settings);
267 BOOST_CHECK(co.multiplayer_label && *co.multiplayer_label == "labelfoo");
268 BOOST_CHECK(co.multiplayer_parm);
269 BOOST_CHECK(std::get<0>(co.multiplayer_parm->at(0)) == 7 && std::get<1>(co.multiplayer_parm->at(0)) == "parmfoo" && std::get<2>(co.multiplayer_parm->at(0)) == "valfoo");
270 BOOST_CHECK(std::get<0>(co.multiplayer_parm->at(1)) == 8 && std::get<1>(co.multiplayer_parm->at(1)) == "parmbar" && std::get<2>(co.multiplayer_parm->at(1)) == "valbar");
271 BOOST_CHECK(co.multiplayer_scenario && *co.multiplayer_scenario == "scenfoo");
272 BOOST_CHECK(co.multiplayer_side);
273 BOOST_CHECK(co.multiplayer_side->size() == 2);
274 BOOST_CHECK(co.multiplayer_side->at(0).first == 9 && co.multiplayer_side->at(0).second == "sidefoo");
275 BOOST_CHECK(co.multiplayer_side->at(1).first == 10 && co.multiplayer_side->at(1).second == "sidebar");
276 BOOST_CHECK(co.multiplayer_turns && *co.multiplayer_turns == "42");
277 BOOST_CHECK(co.max_fps && *co.max_fps == 100);
278 BOOST_CHECK(co.nocache);
279 BOOST_CHECK(co.nogui);
280 BOOST_CHECK(co.nomusic);
281 BOOST_CHECK(co.nosound);
282 BOOST_CHECK(co.new_widgets);
283 BOOST_CHECK(co.preprocess && co.preprocess_path && co.preprocess_target);
284 BOOST_CHECK(*co.preprocess_path == "preppathfoo" && *co.preprocess_target == "preptargfoo");
285 BOOST_CHECK(co.preprocess_defines && co.preprocess_defines->size() == 2);
286 BOOST_CHECK(co.preprocess_defines->at(0) == "DEFFOO" && co.preprocess_defines->at(1) == "DEFBAR");
287 BOOST_CHECK(co.preprocess_input_macros && *co.preprocess_input_macros == "inmfoo");
288 BOOST_CHECK(co.preprocess_output_macros && *co.preprocess_output_macros == "outmfoo");
289 BOOST_CHECK(co.resolution);
290 BOOST_CHECK(co.resolution->first == 800 && co.resolution->second == 600);
291 BOOST_CHECK(co.rng_seed && *co.rng_seed == 1234);
292 BOOST_CHECK(co.server && *co.server == "servfoo");
293 BOOST_CHECK(co.screenshot && co.screenshot_map_file && co.screenshot_output_file);
294 BOOST_CHECK(*co.screenshot_map_file == "mapfoo" && *co.screenshot_output_file == "outssfoo");
295 BOOST_CHECK(co.test && *co.test == "testfoo");
296 BOOST_CHECK(co.userdata_dir && *co.userdata_dir == "userdatadirfoo");
297 BOOST_CHECK(co.print_userdata_path);
298 BOOST_CHECK(co.validcache);
299 BOOST_CHECK(co.version);
300 BOOST_CHECK(co.windowed);
301 BOOST_CHECK(co.with_replay);
302}
303
304BOOST_AUTO_TEST_CASE (test_positional_options)
305{
306 std::vector<std::string> args {
307 "wesnoth",
308 "datadirfoo"};
309
310 commandline_options co(args);
311
312 BOOST_CHECK(!co.campaign);
313 BOOST_CHECK(!co.campaign_difficulty);
314 BOOST_CHECK(!co.campaign_scenario);
315 BOOST_CHECK(!co.campaign_skip_story);
316 BOOST_CHECK(!co.clock);
317 BOOST_CHECK(co.data_dir && *co.data_dir == "datadirfoo");
318 BOOST_CHECK(!co.print_data_path);
319 BOOST_CHECK(!co.debug);
320#ifdef DEBUG_WINDOW_LAYOUT_GRAPHS
321 BOOST_CHECK(!co.debug_dot_domain);
322 BOOST_CHECK(!co.debug_dot_level);
323#endif
324 BOOST_CHECK(!co.editor);
325 BOOST_CHECK(!co.fps);
326 BOOST_CHECK(!co.fullscreen);
327 BOOST_CHECK(!co.help);
328 BOOST_CHECK(!co.load);
329 BOOST_CHECK(!co.log);
330 BOOST_CHECK(!co.logdomains);
331 BOOST_CHECK(!co.multiplayer);
332 BOOST_CHECK(!co.multiplayer_ai_config);
333 BOOST_CHECK(!co.multiplayer_algorithm);
334 BOOST_CHECK(!co.multiplayer_controller);
335 BOOST_CHECK(!co.multiplayer_era);
336 BOOST_CHECK(!co.multiplayer_exit_at_end);
337 BOOST_CHECK(!co.multiplayer_ignore_map_settings);
338 BOOST_CHECK(!co.multiplayer_label);
339 BOOST_CHECK(!co.multiplayer_parm);
340 BOOST_CHECK(!co.multiplayer_scenario);
341 BOOST_CHECK(!co.multiplayer_side);
342 BOOST_CHECK(!co.multiplayer_turns);
343 BOOST_CHECK(!co.max_fps);
344 BOOST_CHECK(!co.nocache);
345 BOOST_CHECK(!co.nogui);
346 BOOST_CHECK(!co.nomusic);
347 BOOST_CHECK(!co.nosound);
348 BOOST_CHECK(!co.new_widgets);
349 BOOST_CHECK(!co.preprocess);
350 BOOST_CHECK(!co.preprocess_defines);
351 BOOST_CHECK(!co.preprocess_input_macros);
352 BOOST_CHECK(!co.preprocess_output_macros);
353 BOOST_CHECK(!co.preprocess_path);
354 BOOST_CHECK(!co.preprocess_target);
355 BOOST_CHECK(!co.resolution);
356 BOOST_CHECK(!co.rng_seed);
357 BOOST_CHECK(!co.server);
358 BOOST_CHECK(!co.screenshot);
359 BOOST_CHECK(!co.screenshot_map_file);
360 BOOST_CHECK(!co.screenshot_output_file);
361 BOOST_CHECK(!co.test);
362 BOOST_CHECK(!co.userdata_dir);
363 BOOST_CHECK(!co.print_userdata_path);
364 BOOST_CHECK(!co.validcache);
365 BOOST_CHECK(!co.version);
366 BOOST_CHECK(!co.windowed);
367 BOOST_CHECK(!co.with_replay);
368}
369
370BOOST_AUTO_TEST_CASE (test_log_domain_severity_override_order)
371{
372 std::vector<std::string> args {
373 "wesnoth",
374 "--log-error=gui/draw",
375 "--log-info=all,gui/general",
376 "--log-debug=gui/*",
377 "--log-none=all,gui/general,gui/draw",
378 "--log-error=gui/general"};
379
380 commandline_options co(args);
381
382 BOOST_CHECK(co.log->at(0).first == lg::severity::LG_ERROR && co.log->at(0).second == "gui/draw");
383 BOOST_CHECK(co.log->at(1).first == lg::severity::LG_INFO && co.log->at(1).second == "all");
384 BOOST_CHECK(co.log->at(2).first == lg::severity::LG_INFO && co.log->at(2).second == "gui/general");
385 BOOST_CHECK(co.log->at(3).first == lg::severity::LG_DEBUG && co.log->at(3).second == "gui/*");
386 BOOST_CHECK(co.log->at(4).first == lg::severity::LG_NONE && co.log->at(4).second == "all");
387 BOOST_CHECK(co.log->at(5).first == lg::severity::LG_NONE && co.log->at(5).second == "gui/general");
388 BOOST_CHECK(co.log->at(6).first == lg::severity::LG_NONE && co.log->at(6).second == "gui/draw");
389 BOOST_CHECK(co.log->at(7).first == lg::severity::LG_ERROR && co.log->at(7).second == "gui/general");
390}
391
392BOOST_AUTO_TEST_SUITE_END()
bool nogui
True if –nogui was given on the command line.
utils::optional< std::vector< std::pair< unsigned int, std::string > > > multiplayer_side
Non-empty if –side was given on the command line.
bool print_userdata_path
True if –userdata-path was given on the command line.
utils::optional< std::pair< int, int > > resolution
Pair of AxB values specified after –resolution.
utils::optional< std::string > screenshot_map_file
Map file to make a screenshot of.
utils::optional< std::string > multiplayer_scenario
Non-empty if –scenario was given on the command line.
utils::optional< std::string > test
Non-empty if –test was given on the command line.
bool windowed
True if –windowed was given on the command line.
utils::optional< std::vector< std::string > > preprocess_defines
Defines that were given to the –preprocess option.
utils::optional< std::string > screenshot_output_file
Output file to put screenshot in.
utils::optional< int > max_fps
Max FPS specified by –max-fps option.
bool multiplayer_exit_at_end
True if –exit-at-and was given on the command line.
utils::optional< int > campaign_difficulty
Non-empty if –campaign-difficulty was given on the command line.
bool debug
True if –debug was given on the command line.
bool nosound
True if –nosound was given on the command line.
bool multiplayer
True if –multiplayer was given on the command line.
utils::optional< std::string > server
Non-empty if –server was given on the command line.
utils::optional< std::string > userdata_dir
Non-empty if –userdata-dir was given on the command line.
utils::optional< std::vector< std::pair< lg::severity, std::string > > > log
Contains parsed arguments of –log-* (e.g.
bool validcache
True if –validcache was given on the command line.
bool nomusic
True if –nomusic was given on the command line.
bool clock
True if –clock was given on the command line.
utils::optional< std::string > campaign
Non-empty if –campaign was given on the command line.
utils::optional< std::string > logdomains
Non-empty if –logdomains was given on the command line.
bool new_widgets
True if –new-widgets was given on the command line.
utils::optional< std::string > preprocess_input_macros
Non-empty if –preprocess-input-macros was given on the command line.
bool preprocess
True if –preprocess was given on the command line.
utils::optional< unsigned int > rng_seed
RNG seed specified by –rng-seed option.
utils::optional< std::vector< std::pair< unsigned int, std::string > > > multiplayer_ai_config
Non-empty if –ai-config was given on the command line.
bool version
True if –version was given on the command line.
utils::optional< std::string > multiplayer_label
Non-empty if –label was given on the command line.
utils::optional< std::string > multiplayer_era
Non-empty if –era was given on the command line.
bool fps
True if –fps was given on the command line.
utils::optional< std::string > multiplayer_turns
Non-empty if –turns was given on the command line.
utils::optional< std::string > data_dir
Non-empty if –data-dir was given on the command line.
utils::optional< std::string > preprocess_target
Target (output) path that was given to the –preprocess option.
bool campaign_skip_story
True if –skip-story was given on the command line.
bool with_replay
True if –with-replay was given on the command line.
bool screenshot
True if –screenshot was given on the command line.
bool multiplayer_ignore_map_settings
True if –ignore-map-settings was given at the command line.
utils::optional< std::string > editor
Non-empty if –editor was given on the command line.
utils::optional< std::string > preprocess_output_macros
Non-empty if –preprocess-output-macros was given on the command line.
bool fullscreen
True if –fullscreen was given on the command line.
utils::optional< std::vector< std::pair< unsigned int, std::string > > > multiplayer_controller
Non-empty if –controller was given on the command line.
utils::optional< std::vector< std::pair< unsigned int, std::string > > > multiplayer_algorithm
Non-empty if –algorithm was given on the command line.
utils::optional< std::string > preprocess_path
Path to parse that was given to the –preprocess option.
bool help
True if –help was given on the command line.
bool nocache
True if –nocache was given on the command line.
utils::optional< std::vector< std::tuple< unsigned int, std::string, std::string > > > multiplayer_parm
Non-empty if –parm was given on the command line.
bool print_data_path
True if –data-path was given on the command line.
utils::optional< std::string > campaign_scenario
Non-empty if –campaign-scenario was given on the command line.
utils::optional< std::string > load
Non-empty if –load was given on the command line.
BOOST_AUTO_TEST_CASE(test_empty_options)
BOOST_AUTO_TEST_SUITE(filesystem)