1 | /*
|
---|
2 | * TOPPERS/JSP Kernel
|
---|
3 | * Toyohashi Open Platform for Embedded Real-Time Systems/
|
---|
4 | * Just Standard Profile Kernel
|
---|
5 | *
|
---|
6 | * Copyright (C) 2003 by Embedded and Real-Time Systems Laboratory
|
---|
7 | * Toyohashi Univ. of Technology, JAPAN
|
---|
8 | *
|
---|
9 | * ä¸è¨è使¨©è
|
---|
10 | ã¯ï¼ä»¥ä¸ã® (1)ã(4) ã®æ¡ä»¶ãï¼Free Software Foundation
|
---|
11 | * ã«ãã£ã¦å
|
---|
12 | ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
|
---|
13 | * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
|
---|
14 | * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé
|
---|
15 | å¸ï¼ä»¥ä¸ï¼
|
---|
16 | * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
|
---|
17 | * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
|
---|
18 | * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
|
---|
19 | * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼
|
---|
20 | * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
|
---|
21 | * ç¨ã§ããå½¢ã§åé
|
---|
22 | å¸ããå ´åã«ã¯ï¼åé
|
---|
23 | å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨
|
---|
24 | * è
|
---|
25 | ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è使¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
|
---|
26 | * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
|
---|
27 | * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
|
---|
28 | * ç¨ã§ããªãå½¢ã§åé
|
---|
29 | å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
|
---|
30 | * ã¨ï¼
|
---|
31 | * (a) åé
|
---|
32 | å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è
|
---|
33 | ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
|
---|
34 | * 使¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
|
---|
35 | * (b) åé
|
---|
36 | å¸ã®å½¢æ
|
---|
37 | ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã«
|
---|
38 | * å ±åãããã¨ï¼
|
---|
39 | * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
|
---|
40 | * 害ãããï¼ä¸è¨è使¨©è
|
---|
41 | ããã³TOPPERSããã¸ã§ã¯ããå
|
---|
42 | 責ãããã¨ï¼
|
---|
43 | *
|
---|
44 | * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨è使¨©è
|
---|
45 | ã
|
---|
46 | * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
|
---|
47 | * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
|
---|
48 | * æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
|
---|
49 | *
|
---|
50 | * @(#) $Id: option.cpp,v 1.3 2003/12/15 07:32:14 takayuki Exp $
|
---|
51 | */
|
---|
52 |
|
---|
53 | // $Header: /home/CVS/configurator/base/option.cpp,v 1.3 2003/12/15 07:32:14 takayuki Exp $
|
---|
54 |
|
---|
55 | #include "base/option.h"
|
---|
56 | #include <assert.h>
|
---|
57 | #include <algorithm>
|
---|
58 |
|
---|
59 | using namespace std;
|
---|
60 |
|
---|
61 | //å¥ã®OptionItemãæã¤ãã©ã¡ã¼ã¿ãèªåã«è¿½å ãã
|
---|
62 | void OptionParameter::OptionItem::mergeItem(const OptionItem & src)
|
---|
63 | {
|
---|
64 | vector<string>::const_iterator scope;
|
---|
65 |
|
---|
66 | //å
|
---|
67 | ¨ã¦ã®ãã©ã¡ã¼ã¿ãèªåã®å¾ãã«è¿½å
|
---|
68 | scope = src.param.begin();
|
---|
69 | while(scope != src.param.end()) {
|
---|
70 | param.push_back(*scope);
|
---|
71 | ++ scope;
|
---|
72 | }
|
---|
73 | }
|
---|
74 |
|
---|
75 | //æååã®å
|
---|
76 | é ã«ããç©ºç½æåãåãé¤ã
|
---|
77 | namespace {
|
---|
78 | void TrimString(string & src)
|
---|
79 | {
|
---|
80 | string::size_type pos;
|
---|
81 |
|
---|
82 | pos = src.find_first_not_of(" \t\r\n");
|
---|
83 | if(pos != 0)
|
---|
84 | src.erase(0, pos);
|
---|
85 | }
|
---|
86 | }
|
---|
87 |
|
---|
88 | //ãªãã·ã§ã³ãã©ã¡ã¼ã¿ãè§£æãã¦OptionItemãçæãã
|
---|
89 | bool OptionParameter::OptionItem::createItem(OptionItem & _dest, string & argv)
|
---|
90 | {
|
---|
91 | bool result;
|
---|
92 | string param;
|
---|
93 | string::size_type pos;
|
---|
94 | OptionItem dest;
|
---|
95 |
|
---|
96 | result = true;
|
---|
97 |
|
---|
98 | TrimString(argv);
|
---|
99 | if(argv.empty())
|
---|
100 | result = false; //ä¸èº«ã空ã£ã½
|
---|
101 | else {
|
---|
102 | //ãªãã·ã§ã³ã®ãã§ãã¯
|
---|
103 | if(argv[0] == '-') {
|
---|
104 | pos = argv.find_first_of(" =");
|
---|
105 |
|
---|
106 | if(argv.substr(0,pos).compare("-") == 0) { // - ã ãã®ãªãã·ã§ã³ã¯åãä»ããªã
|
---|
107 | result = false;
|
---|
108 | }
|
---|
109 | else {
|
---|
110 | if(pos != 1) {
|
---|
111 | if(pos != string::npos) {
|
---|
112 | dest = argv.substr(1, pos - 1);
|
---|
113 | argv.erase(0, pos + 1);
|
---|
114 | }
|
---|
115 | else {
|
---|
116 | dest = argv.substr(1);
|
---|
117 | argv.erase();
|
---|
118 | }
|
---|
119 | }
|
---|
120 | }
|
---|
121 | }
|
---|
122 |
|
---|
123 | TrimString(argv);
|
---|
124 | while(!argv.empty() && argv[0] != '-') {
|
---|
125 | if(argv[0] == '"') {
|
---|
126 |
|
---|
127 | //対ã«ãªãããã«ã¯ã©ã¼ããæ¢ã
|
---|
128 | pos = argv.find_first_of('"',1);
|
---|
129 | if(pos == string::npos) {
|
---|
130 | result = false;
|
---|
131 | break;
|
---|
132 | }
|
---|
133 |
|
---|
134 | //ããã«ã¯ã©ã¼ãã®ä¸èº«ãåã
|
---|
135 | param = argv.substr(1, pos - 1);
|
---|
136 |
|
---|
137 | //ããã«ã¯ã©ã¼ããæ¶ã
|
---|
138 | ++ pos;
|
---|
139 | }
|
---|
140 | else {
|
---|
141 |
|
---|
142 | //次ã®åºåããæ¢ã
|
---|
143 | pos = argv.find_first_of(" \t\r\n");
|
---|
144 | if(pos == string::npos)
|
---|
145 | param = argv;
|
---|
146 | else
|
---|
147 | param = argv.substr(0,pos);
|
---|
148 | }
|
---|
149 |
|
---|
150 | dest.addParameter(param);
|
---|
151 | argv.erase(0, pos);
|
---|
152 |
|
---|
153 | TrimString(argv);
|
---|
154 | }
|
---|
155 | }
|
---|
156 |
|
---|
157 | if(result)
|
---|
158 | _dest = dest;
|
---|
159 |
|
---|
160 | return result;
|
---|
161 | }
|
---|
162 |
|
---|
163 | //ç¡å¹ãªãªãã·ã§ã³ã¢ã¤ãã ã®çæ
|
---|
164 | OptionParameter::OptionItem OptionParameter::OptionItem::createInvalidItem(void) throw()
|
---|
165 | {
|
---|
166 | OptionItem result;
|
---|
167 |
|
---|
168 | result.assign("");
|
---|
169 | return result;
|
---|
170 | }
|
---|
171 |
|
---|
172 |
|
---|
173 | //å
|
---|
174 | ¨ã¦ã®ãã©ã¡ã¼ã¿çµåãããã®ãåå¾
|
---|
175 | string OptionParameter::OptionItem::getParameters(string punctuator) const throw()
|
---|
176 | {
|
---|
177 | string result;
|
---|
178 |
|
---|
179 | vector<string>::const_iterator scope;
|
---|
180 |
|
---|
181 | if(isValid()) {
|
---|
182 | scope = param.begin();
|
---|
183 | while(scope != param.end()) {
|
---|
184 | result += punctuator;
|
---|
185 | result += *scope;
|
---|
186 | ++ scope;
|
---|
187 | }
|
---|
188 |
|
---|
189 | if(!result.empty())
|
---|
190 | result.erase(0, punctuator.size()); //å
|
---|
191 | é ã®åºåãåãåé¤
|
---|
192 | }
|
---|
193 |
|
---|
194 | return result;
|
---|
195 | }
|
---|
196 |
|
---|
197 | //ãªãã·ã§ã³ã®åæ°ã®ãã§ãã¯
|
---|
198 | bool OptionParameter::OptionItem::checkParameterCount(size_t required, bool allow_zero) const throw()
|
---|
199 | {
|
---|
200 | bool result = true;
|
---|
201 | if(isValid()) {
|
---|
202 | size_t count = countParameter();
|
---|
203 | if(count != required || (!allow_zero && count == 0))
|
---|
204 | result = false;
|
---|
205 | }
|
---|
206 | else
|
---|
207 | result = false;
|
---|
208 | return result;
|
---|
209 | }
|
---|
210 |
|
---|
211 | //ãªãã·ã§ã³ãã©ã¡ã¼ã¿ã®ãã¼ã¹
|
---|
212 | bool OptionParameter::parseOption(int _argc, char const * const * _argv, char const * _default) throw()
|
---|
213 | {
|
---|
214 | bool result;
|
---|
215 | string arguments;
|
---|
216 | OptionItem work;
|
---|
217 | int i;
|
---|
218 |
|
---|
219 | map<string, OptionItem>::iterator scope;
|
---|
220 |
|
---|
221 | //ããã°ã©ã åã®åå¾
|
---|
222 | if(_argc > 0)
|
---|
223 | program_name.assign(_argv[0]);
|
---|
224 |
|
---|
225 | //å
|
---|
226 | ¨ã¦ã¤ãªãã
|
---|
227 | for(i=1;i<_argc;++i) {
|
---|
228 | arguments += _argv[i];
|
---|
229 | arguments += ' ';
|
---|
230 | }
|
---|
231 |
|
---|
232 | if(arguments.empty() && _default != 0)
|
---|
233 | arguments.assign(_default);
|
---|
234 |
|
---|
235 | cmdline += arguments;
|
---|
236 |
|
---|
237 | result = true;
|
---|
238 |
|
---|
239 | //åãªãã·ã§ã³ã®è§£æ
|
---|
240 | while(!arguments.empty()) {
|
---|
241 |
|
---|
242 | if(!OptionItem::createItem(work, arguments)) {
|
---|
243 | result = false;
|
---|
244 | break;
|
---|
245 | }
|
---|
246 |
|
---|
247 | //åä¸ã®ãªãã·ã§ã³ãããããã¼ã¸ãã
|
---|
248 | scope = container.find(work);
|
---|
249 | if(scope != container.end())
|
---|
250 | scope->second.mergeItem(work);
|
---|
251 | else
|
---|
252 | container.insert(std::map<std::string, OptionItem>::value_type(work, work));
|
---|
253 | }
|
---|
254 |
|
---|
255 | return result;
|
---|
256 | }
|
---|
257 |
|
---|
258 | //è¦ç´ ã®æ¤åº
|
---|
259 | map<string, OptionParameter::OptionItem>::iterator OptionParameter::_find(const std::string & name, bool check) throw()
|
---|
260 | {
|
---|
261 | map<string, OptionParameter::OptionItem>::iterator scope;
|
---|
262 |
|
---|
263 | scope = container.find(name);
|
---|
264 |
|
---|
265 | //è¦ç´ ã使ç¨ãããã¨ãè¨é²ãã¦ãã
|
---|
266 | if(check && scope != container.end())
|
---|
267 | scope->second._check();
|
---|
268 |
|
---|
269 | return scope;
|
---|
270 | }
|
---|
271 |
|
---|
272 |
|
---|
273 | //ãªãã·ã§ã³ã¢ã¤ãã ã®åç
|
---|
274 | §
|
---|
275 | OptionParameter::OptionItem OptionParameter::get(const std::string & name, bool check) throw()
|
---|
276 | {
|
---|
277 | OptionItem result;
|
---|
278 | map<string, OptionItem>::iterator scope;
|
---|
279 |
|
---|
280 | scope = _find(name, check);
|
---|
281 | if(scope != container.end())
|
---|
282 | result = scope->second;
|
---|
283 | else
|
---|
284 | result = OptionItem::createInvalidItem();
|
---|
285 |
|
---|
286 | return result;
|
---|
287 | }
|
---|
288 |
|
---|
289 |
|
---|
290 | //å
|
---|
291 | ¨ã¦ã®ãªãã·ã§ã³ã使ç¨ããããã©ããã®ç¢ºèª
|
---|
292 | bool OptionParameter::validateOption(void) const throw()
|
---|
293 | {
|
---|
294 | map<string, OptionItem>::const_iterator scope;
|
---|
295 | bool result = true;
|
---|
296 |
|
---|
297 | //å
|
---|
298 | ¨ã¦ã®ãªãã·ã§ã³ããã§ãã¯æ¸ã¿ã§ãããã¨ã確èª
|
---|
299 | scope = container.begin();
|
---|
300 | while(scope != container.end()) {
|
---|
301 | if(!scope->second.isChecked()) {
|
---|
302 | result = false;
|
---|
303 | break;
|
---|
304 | }
|
---|
305 | ++ scope;
|
---|
306 | }
|
---|
307 |
|
---|
308 | return result;
|
---|
309 | }
|
---|
310 |
|
---|
311 |
|
---|
312 | //使ç¨ãããªãã£ããªãã·ã§ã³åãåå¾
|
---|
313 | string OptionParameter::getInvalidOptions(void) const throw()
|
---|
314 | {
|
---|
315 | map<string, OptionItem>::const_iterator scope;
|
---|
316 | string result;
|
---|
317 |
|
---|
318 | //使ç¨ãããªãã£ãå
|
---|
319 | ¨ã¦ã®ãªãã·ã§ã³ã«å¯¾ãã¦
|
---|
320 | scope = container.begin();
|
---|
321 | while(scope != container.end()) {
|
---|
322 | const OptionItem & item = scope->second;
|
---|
323 | if(!item.isChecked()) {
|
---|
324 | result += " -";
|
---|
325 | result += item;
|
---|
326 |
|
---|
327 | //ãªãã·ã§ã³ãã©ã¡ã¼ã¿ã®åæ
|
---|
328 | size_t params = item.countParameter();
|
---|
329 | for(size_t i=0; i<params; ++i) {
|
---|
330 | result += " \"";
|
---|
331 | result += item[i];
|
---|
332 | result += '\"';
|
---|
333 | }
|
---|
334 | }
|
---|
335 | ++ scope;
|
---|
336 | }
|
---|
337 |
|
---|
338 | //å
|
---|
339 | é ã®ç©ºç½ãåãé¤ã
|
---|
340 | if(!result.empty())
|
---|
341 | result = result.substr(1);
|
---|
342 |
|
---|
343 | return result;
|
---|
344 | }
|
---|
345 |
|
---|
346 | /***************** ãã¹ãã¹ã£ã¼ã *****************/
|
---|
347 |
|
---|
348 | #ifdef TESTSUITE
|
---|
349 | #include "coverage_undefs.h"
|
---|
350 |
|
---|
351 |
|
---|
352 | TESTSUITE_(main,OptionItem,OptionParameter)
|
---|
353 | {
|
---|
354 | BEGIN_CASE("01","ããã©ã«ããã©ã¡ã¼ã¿ã" DEFAULT_PARAMETER "ã«ãªã£ã¦ãã") {
|
---|
355 | OptionItem work;
|
---|
356 | if(work.compare(DEFAULT_PARAMETER) != 0)
|
---|
357 | TEST_FAIL;
|
---|
358 | } END_CASE;
|
---|
359 |
|
---|
360 | //----
|
---|
361 |
|
---|
362 | BEGIN_CASE("02","ã³ã³ã¹ãã©ã¯ã¿ãã§ã㯠(checked == false, ãã©ã¡ã¼ã¿å)") {
|
---|
363 |
|
---|
364 | BEGIN_CASE("1","OptionItem(void)") {
|
---|
365 | OptionItem work;
|
---|
366 | if(work.checked != false)
|
---|
367 | TEST_FAIL;
|
---|
368 | } END_CASE;
|
---|
369 |
|
---|
370 | BEGIN_CASE("2","OptionItem(const string &)") {
|
---|
371 | OptionItem work("test");
|
---|
372 | if(work.compare("test") != 0 || work.checked != false)
|
---|
373 | TEST_FAIL;
|
---|
374 | } END_CASE;
|
---|
375 |
|
---|
376 | BEGIN_CASE("3","OptionItem(const OptionItem &)") {
|
---|
377 | OptionItem dummy("test");
|
---|
378 | OptionItem work(dummy);
|
---|
379 | if(work.compare("test") != 0 || work.checked != false)
|
---|
380 | TEST_FAIL;
|
---|
381 | } END_CASE;
|
---|
382 |
|
---|
383 | } END_CASE;
|
---|
384 |
|
---|
385 | //----
|
---|
386 |
|
---|
387 | BEGIN_CASE("03", "addParameter / countParameter / operator []") {
|
---|
388 | const char * container[] = { "first", "second", "third", "forth", "fifth", NULL };
|
---|
389 | const char ** param = container;
|
---|
390 | int i;
|
---|
391 |
|
---|
392 | OptionItem work;
|
---|
393 |
|
---|
394 | BEGIN_CASE("1", "ä½ã£ãç´å¾ã®countParameterã¯0") {
|
---|
395 | if(work.countParameter() != 0)
|
---|
396 | TEST_FAIL;
|
---|
397 | } END_CASE;
|
---|
398 |
|
---|
399 | BEGIN_CASE("2", "addParameterãããã³ã«1ãã¤å¢ããã¯ã") {
|
---|
400 | while(*param != NULL) {
|
---|
401 | size_t count = work.countParameter();
|
---|
402 |
|
---|
403 | work.addParameter(*param);
|
---|
404 |
|
---|
405 | if(work.countParameter() != count + 1)
|
---|
406 | TEST_FAIL;
|
---|
407 |
|
---|
408 | ++ param;
|
---|
409 | }
|
---|
410 | } END_CASE;
|
---|
411 |
|
---|
412 | BEGIN_CASE("3", "å
|
---|
413 | ¥ãããã®ã¯ã¡ããã¨å
|
---|
414 | ¥ã£ã¦ã") {
|
---|
415 | i = 0;
|
---|
416 | param = container;
|
---|
417 | while(*param != NULL) {
|
---|
418 | if(work[i].compare(*param) != 0)
|
---|
419 | TEST_FAIL;
|
---|
420 |
|
---|
421 | ++ i;
|
---|
422 | ++ param;
|
---|
423 | }
|
---|
424 | } END_CASE;
|
---|
425 |
|
---|
426 | BEGIN_CASE("4", "operator[]ã«ç¯å²å¤ã®ãã©ã¡ã¼ã¿ãå
|
---|
427 | ¥ããã¨ç©ºæåãè¿ã") {
|
---|
428 | if(!work[10000].empty())
|
---|
429 | TEST_FAIL;
|
---|
430 | } END_CASE;
|
---|
431 | } END_CASE;
|
---|
432 |
|
---|
433 | //----
|
---|
434 |
|
---|
435 | BEGIN_CASE("04", "hasParameter") {
|
---|
436 | OptionItem work;
|
---|
437 |
|
---|
438 | BEGIN_CASE("1", "ä¸èº«ããªãã¨ãã¯falseãè¿ã") {
|
---|
439 | if(work.hasParameter())
|
---|
440 | TEST_FAIL;
|
---|
441 | } END_CASE;
|
---|
442 |
|
---|
443 | BEGIN_CASE("2", "ä¸èº«ãããã¨ãã¯trueãè¿ã") {
|
---|
444 | work.addParameter("dummy");
|
---|
445 | if(!work.hasParameter())
|
---|
446 | TEST_FAIL;
|
---|
447 | } END_CASE;
|
---|
448 | } END_CASE;
|
---|
449 |
|
---|
450 | //----
|
---|
451 |
|
---|
452 | BEGIN_CASE("mergeItem", "mergeItem") {
|
---|
453 | OptionItem work;
|
---|
454 | OptionItem work2;
|
---|
455 |
|
---|
456 | work.addParameter("one");
|
---|
457 | work2.addParameter("two");
|
---|
458 |
|
---|
459 | work.mergeItem(work2);
|
---|
460 |
|
---|
461 | BEGIN_CASE("1","ãã¼ã¸ããã¦ãã") {
|
---|
462 | if(work[0].compare("one") != 0 || work[1].compare("two") != 0 || work.countParameter() != 2)
|
---|
463 | TEST_FAIL;
|
---|
464 | } END_CASE;
|
---|
465 |
|
---|
466 | BEGIN_CASE("2","夿´å
|
---|
467 | ã¯å¤åãªã") {
|
---|
468 | if(work2[0].compare("two") != 0 || work2.countParameter() != 1)
|
---|
469 | TEST_FAIL;
|
---|
470 | } END_CASE;
|
---|
471 |
|
---|
472 | } END_CASE;
|
---|
473 |
|
---|
474 | //----
|
---|
475 |
|
---|
476 | BEGIN_CASE("isChecked/checked", "isChecked/check") {
|
---|
477 | OptionItem work;
|
---|
478 |
|
---|
479 | BEGIN_CASE("1","æåã¯uncheckedç¶æ
|
---|
480 | ") {
|
---|
481 | if(work.isChecked() != false)
|
---|
482 | TEST_FAIL;
|
---|
483 | } END_CASE;
|
---|
484 |
|
---|
485 | BEGIN_CASE("2","checkãã¤ãã") {
|
---|
486 | work._check();
|
---|
487 | if(work.isChecked() != true)
|
---|
488 | TEST_FAIL;
|
---|
489 | } END_CASE;
|
---|
490 |
|
---|
491 | BEGIN_CASE("3","ããä¸åãã£ã¦ããã°ã«ã«ãªããªã") {
|
---|
492 | work._check();
|
---|
493 | if(work.isChecked() != true)
|
---|
494 | TEST_FAIL;
|
---|
495 | } END_CASE;
|
---|
496 |
|
---|
497 | } END_CASE;
|
---|
498 |
|
---|
499 | //----
|
---|
500 |
|
---|
501 | BEGIN_CASE("CopyConstructor", "ã³ãã¼ã³ã³ã¹ãã©ã¯ã¿ã§ãã©ã¡ã¼ã¿ãç§»ãã") {
|
---|
502 | OptionItem src;
|
---|
503 | src.addParameter("one");
|
---|
504 |
|
---|
505 | OptionItem dest(src);
|
---|
506 |
|
---|
507 | if(dest.countParameter() != 1 || dest[0].compare("one") != 0)
|
---|
508 | TEST_FAIL;
|
---|
509 | } END_CASE;
|
---|
510 |
|
---|
511 | //----
|
---|
512 |
|
---|
513 | BEGIN_CASE("TrimString", "TrinStringãã¡ããã¨åãã") {
|
---|
514 | BEGIN_CASE("1","å
|
---|
515 | é ã®ç©ºç½æåãæ¶ãã") {
|
---|
516 | string work(" \r\n\ttest");
|
---|
517 | TrimString(work);
|
---|
518 | if(work.compare("test") != 0)
|
---|
519 | TEST_FAIL;
|
---|
520 | } END_CASE;
|
---|
521 |
|
---|
522 | BEGIN_CASE("2","ç©ºç½æåã ãããæãæåå") {
|
---|
523 | string work(" ");
|
---|
524 | TrimString(work);
|
---|
525 | if(!work.empty())
|
---|
526 | TEST_FAIL;
|
---|
527 | } END_CASE;
|
---|
528 | } END_CASE;
|
---|
529 |
|
---|
530 | //----
|
---|
531 |
|
---|
532 | BEGIN_CASE("createItem", "createItem颿°ã®å使¤è¨¼") {
|
---|
533 | BEGIN_CASE("1", "空ã£ã½ã®æååããããã¨å¤±æãã") {
|
---|
534 | OptionItem work;
|
---|
535 | string param("");
|
---|
536 | if(OptionItem::createItem(work, param))
|
---|
537 | TEST_FAIL;
|
---|
538 | } END_CASE;
|
---|
539 |
|
---|
540 | BEGIN_CASE("2", "弿°ãªããªãã·ã§ã³") {
|
---|
541 | OptionItem work;
|
---|
542 | string arg("-test");
|
---|
543 | if(!OptionItem::createItem(work, arg))
|
---|
544 | TEST_FAIL;
|
---|
545 | if(work.compare("test") != 0 || work.hasParameter())
|
---|
546 | TEST_FAIL;
|
---|
547 | if(!arg.empty())
|
---|
548 | TEST_FAIL;
|
---|
549 | } END_CASE;
|
---|
550 |
|
---|
551 | BEGIN_CASE("3", "é£ç¶ãã弿°ãªããªãã·ã§ã³") {
|
---|
552 | OptionItem work;
|
---|
553 | string arg("-test -test2");
|
---|
554 | if(!OptionItem::createItem(work, arg))
|
---|
555 | TEST_FAIL;
|
---|
556 | if(arg.compare("-test2") != 0)
|
---|
557 | TEST_FAIL;
|
---|
558 | } END_CASE;
|
---|
559 |
|
---|
560 | BEGIN_CASE("4", "弿°ã¤ããªãã·ã§ã³(-test param)") {
|
---|
561 | OptionItem work;
|
---|
562 | string arg("-test param");
|
---|
563 | if(!OptionItem::createItem(work, arg))
|
---|
564 | TEST_FAIL;
|
---|
565 | if(work.compare("test") != 0)
|
---|
566 | TEST_FAIL;
|
---|
567 | if(work.countParameter() != 1 || work[0].compare("param") != 0)
|
---|
568 | TEST_FAIL;
|
---|
569 | if(!arg.empty())
|
---|
570 | TEST_FAIL;
|
---|
571 | } END_CASE;
|
---|
572 |
|
---|
573 | BEGIN_CASE("5", "弿°ã¤ããªãã·ã§ã³(-test=param)") {
|
---|
574 | OptionItem work;
|
---|
575 | string arg("-test=param");
|
---|
576 | if(!OptionItem::createItem(work, arg))
|
---|
577 | TEST_FAIL;
|
---|
578 | if(work.compare("test") != 0)
|
---|
579 | TEST_FAIL;
|
---|
580 | if(work.countParameter() != 1 || work[0].compare("param") != 0)
|
---|
581 | TEST_FAIL;
|
---|
582 | if(!arg.empty())
|
---|
583 | TEST_FAIL;
|
---|
584 | } END_CASE;
|
---|
585 |
|
---|
586 | BEGIN_CASE("6", "弿°ã¤ããªãã·ã§ã³(-test=\"a b c\")") {
|
---|
587 | OptionItem work;
|
---|
588 | string arg("-test=\"a b c\"");
|
---|
589 | if(!OptionItem::createItem(work, arg))
|
---|
590 | TEST_FAIL;
|
---|
591 | if(work.compare("test") != 0)
|
---|
592 | TEST_FAIL;
|
---|
593 | if(work.countParameter() != 1 || work[0].compare("a b c") != 0)
|
---|
594 | TEST_FAIL;
|
---|
595 | if(!arg.empty())
|
---|
596 | TEST_FAIL;
|
---|
597 | } END_CASE;
|
---|
598 |
|
---|
599 | BEGIN_CASE("7", "é£ç¶ãã弿°ã¤ããªãã·ã§ã³(-test one two)") {
|
---|
600 | OptionItem work;
|
---|
601 | string arg("-test one two");
|
---|
602 | if(!OptionItem::createItem(work, arg))
|
---|
603 | TEST_FAIL;
|
---|
604 | if(work.compare("test") != 0)
|
---|
605 | TEST_FAIL;
|
---|
606 | if(work.countParameter() != 2 || work[0].compare("one") != 0 || work[1].compare("two") != 0)
|
---|
607 | TEST_FAIL;
|
---|
608 | if(!arg.empty())
|
---|
609 | TEST_FAIL;
|
---|
610 | } END_CASE;
|
---|
611 |
|
---|
612 | BEGIN_CASE("8", "ãã¤ãã³") {
|
---|
613 | BEGIN_CASE("1", "ãã¤ãã³ã ãã®å¼æ°ã¯åãä»ããªã") {
|
---|
614 | OptionItem work;
|
---|
615 | string arg("-");
|
---|
616 | if(OptionItem::createItem(work, arg))
|
---|
617 | TEST_FAIL;
|
---|
618 | } END_CASE;
|
---|
619 |
|
---|
620 | BEGIN_CASE("2", "ãã¤ãã³ã ãã®å¼æ°ã¯åãä»ããªã(é£ç¶)") {
|
---|
621 | OptionItem work;
|
---|
622 | string arg("- - -");
|
---|
623 | if(OptionItem::createItem(work, arg))
|
---|
624 | TEST_FAIL;
|
---|
625 | } END_CASE;
|
---|
626 |
|
---|
627 | BEGIN_CASE("3", "ããã«ã¯ã©ã¼ãã§ããããããã¤ãã³ã¯åãä»ãã") {
|
---|
628 | OptionItem work;
|
---|
629 | string arg("\"-\"");
|
---|
630 | if(!OptionItem::createItem(work, arg))
|
---|
631 | TEST_FAIL;
|
---|
632 | if(work.compare(DEFAULT_PARAMETER) != 0 || work.countParameter() != 1 || work[0].compare("-") != 0)
|
---|
633 | TEST_FAIL;
|
---|
634 | } END_CASE;
|
---|
635 |
|
---|
636 | } END_CASE;
|
---|
637 |
|
---|
638 | BEGIN_CASE("9", "対ã«ãªãããã«ã¯ã©ã¼ããæ¬ ãã弿°ã¯åãä»ããªã") {
|
---|
639 | OptionItem work;
|
---|
640 | string arg("-test=\"a b c");
|
---|
641 | if(OptionItem::createItem(work, arg))
|
---|
642 | TEST_FAIL;
|
---|
643 | } END_CASE;
|
---|
644 |
|
---|
645 | } END_CASE;
|
---|
646 |
|
---|
647 | BEGIN_CASE("isValid/createInvalidItem", "ç¡å¹ã示ãã¤ã³ã¹ã¿ã³ã¹ãçæã§ãããããå¤å®ã§ãã") {
|
---|
648 | OptionItem work;
|
---|
649 |
|
---|
650 | BEGIN_CASE("1","ããã©ã«ãã³ã³ã¹ãã©ã¯ã¿ã§çæãããªãã¸ã§ã¯ãã¯æå¹") {
|
---|
651 | if(!work.isValid())
|
---|
652 | TEST_FAIL;
|
---|
653 | } END_CASE;
|
---|
654 |
|
---|
655 | BEGIN_CASE("2","ç¡å¹ã¤ã³ã¹ã¿ã³ã¹ã¯å½ç¶ç¡å¹") {
|
---|
656 | work = OptionItem::createInvalidItem();
|
---|
657 | if(work.isValid())
|
---|
658 | TEST_FAIL;
|
---|
659 | } END_CASE;
|
---|
660 | } END_CASE;
|
---|
661 |
|
---|
662 | BEGIN_CASE("getParameters","getParameters") {
|
---|
663 | BEGIN_CASE("1","æ£ãããªãã·ã§ã³ãçµåã§ãã") {
|
---|
664 | OptionItem work;
|
---|
665 | string arg("-test a b c d e f g");
|
---|
666 |
|
---|
667 | TEST_CASE("0","[åæ]ãªãã·ã§ã³è§£æã«æåãã", OptionItem::createItem(work,arg));
|
---|
668 | TEST_CASE("1","çµåã§ãã", work.getParameters().compare("a b c d e f g") == 0);
|
---|
669 | TEST_CASE("2","åºåãæ°ãæå®ãã¦çµåã§ãã", work.getParameters(",").compare("a,b,c,d,e,f,g") == 0);
|
---|
670 | } END_CASE;
|
---|
671 | } END_CASE;
|
---|
672 |
|
---|
673 | BEGIN_CASE("checkParameterCount","checkParameterCount") {
|
---|
674 | BEGIN_CASE("1","ãªãã·ã§ã³ã®æ°ããã£ã¦ããã¯true") {
|
---|
675 | OptionItem work;
|
---|
676 | string arg("-test a b c d e f g");
|
---|
677 |
|
---|
678 | TEST_CASE("0","[åæ]ãªãã·ã§ã³è§£æã«æåãã", OptionItem::createItem(work,arg));
|
---|
679 |
|
---|
680 | if(!work.checkParameterCount(7))
|
---|
681 | TEST_FAIL;
|
---|
682 | } END_CASE;
|
---|
683 |
|
---|
684 | BEGIN_CASE("2","ãªãã·ã§ã³ã®æ°ãééã£ã¦ããã¨false") {
|
---|
685 | OptionItem work;
|
---|
686 | string arg("-test a b c d e f g");
|
---|
687 |
|
---|
688 | TEST_CASE("0","[åæ]ãªãã·ã§ã³è§£æã«æåãã", OptionItem::createItem(work,arg));
|
---|
689 |
|
---|
690 | if(work.checkParameterCount(2))
|
---|
691 | TEST_FAIL;
|
---|
692 | } END_CASE;
|
---|
693 |
|
---|
694 | BEGIN_CASE("3","ãªãã·ã§ã³ããªãã¦ã!allow_zeroãªãfalse") {
|
---|
695 | OptionItem work;
|
---|
696 | string arg("-test");
|
---|
697 |
|
---|
698 | TEST_CASE("0","[åæ]ãªãã·ã§ã³è§£æã«æåãã", OptionItem::createItem(work,arg));
|
---|
699 |
|
---|
700 | if(work.checkParameterCount(1,false))
|
---|
701 | TEST_FAIL;
|
---|
702 | } END_CASE;
|
---|
703 |
|
---|
704 | BEGIN_CASE("4","ãªãã·ã§ã³ããªãã¦ãallow_zeroãªãtrue") {
|
---|
705 | OptionItem work;
|
---|
706 | string arg("-test");
|
---|
707 |
|
---|
708 | TEST_CASE("0","[åæ]ãªãã·ã§ã³è§£æã«æåãã", OptionItem::createItem(work,arg));
|
---|
709 |
|
---|
710 | if(work.checkParameterCount(1,true))
|
---|
711 | TEST_FAIL;
|
---|
712 | } END_CASE;
|
---|
713 |
|
---|
714 | } END_CASE;
|
---|
715 | }
|
---|
716 |
|
---|
717 | /********************************* ãã¹ãã¹ã£ã¼ã *********************************/
|
---|
718 |
|
---|
719 | TESTSUITE(main,OptionParameter)
|
---|
720 | {
|
---|
721 | SINGLETON(OptionParameter);
|
---|
722 |
|
---|
723 | BEGIN_CASE("countItem","ãªãã·ã§ã³ã¢ã¤ãã ã®æ°ãæ£ããåå¾ã§ãã") {
|
---|
724 | OptionParameter param;
|
---|
725 | if(param.countItem() != 0)
|
---|
726 | TEST_FAIL;
|
---|
727 |
|
---|
728 | param.container.insert(pair<string, OptionItem>(DEFAULT_PARAMETER, OptionItem()));
|
---|
729 | if(param.countItem() != 1)
|
---|
730 | TEST_FAIL;
|
---|
731 | } END_CASE;
|
---|
732 |
|
---|
733 | BEGIN_CASE("opeator []","operator []ã§è¦ç´ ã«ã¢ã¯ã»ã¹ã§ãã") {
|
---|
734 | OptionParameter param;
|
---|
735 | OptionItem work;
|
---|
736 | string arg("-test param");
|
---|
737 |
|
---|
738 | OptionItem::createItem(work, arg);
|
---|
739 | param.container.insert(pair<string, OptionItem>(work, work));
|
---|
740 |
|
---|
741 | BEGIN_CASE("1", "operator [] (const string &)ã§ç·ç¥ã«ã¢ã¯ã»ã¹ã§ãã") {
|
---|
742 | if(param[string("test")][0].compare("param") != 0)
|
---|
743 | TEST_FAIL;
|
---|
744 | } END_CASE;
|
---|
745 |
|
---|
746 | BEGIN_CASE("2", "operator [] (const char *)ã§ç·ç¥ã«ã¢ã¯ã»ã¹ã§ãã") {
|
---|
747 | if(param["test"][0].compare("param") != 0)
|
---|
748 | TEST_FAIL;
|
---|
749 | } END_CASE;
|
---|
750 |
|
---|
751 | BEGIN_CASE("3", "operator []ã§è§¦ãã¨ãcheckãå
|
---|
752 | ¥ã") {
|
---|
753 | if(!param["test"].isChecked())
|
---|
754 | TEST_FAIL;
|
---|
755 | } END_CASE;
|
---|
756 |
|
---|
757 | BEGIN_CASE("4", "operator []ã«ç¡å¹ãªãã¼ãå
|
---|
758 | ¥ããã¨ãç¡å¹ãªãã¼ã¿ãè¿ã£ã¦ãã") {
|
---|
759 | if(param["nonexist"].isValid())
|
---|
760 | TEST_FAIL;
|
---|
761 | } END_CASE;
|
---|
762 | } END_CASE;
|
---|
763 |
|
---|
764 | BEGIN_CASE("get","è¦ç´ ã¸ã®ã¢ã¯ã»ã¹") {
|
---|
765 | OptionParameter param;
|
---|
766 | OptionItem work;
|
---|
767 |
|
---|
768 | OptionItem::createItem(work, string("-test param"));
|
---|
769 | param.container.insert(pair<string, OptionItem>(work, work));
|
---|
770 | OptionItem::createItem(work, string("-test2 param2"));
|
---|
771 | param.container.insert(pair<string, OptionItem>(work, work));
|
---|
772 |
|
---|
773 | BEGIN_CASE("1","get(test)ã§è¦ç´ ãåå¾ã§ãããã§ãã¯ãå
|
---|
774 | ¥ã") {
|
---|
775 | TEST_CASE("1","è¦ç´ ãåå¨ãã", (work = param.get("test")).isValid());
|
---|
776 | TEST_CASE("2","ãã§ãã¯ãå
|
---|
777 | ¥ã£ã¦ãã", work.isChecked() );
|
---|
778 | TEST_CASE("3","è¦ç´ ã¯ãã©ã¡ã¼ã¿ãæã¤", work.hasParameter() );
|
---|
779 | } END_CASE;
|
---|
780 |
|
---|
781 | BEGIN_CASE("2","get(test2,false)ã§è¦ç´ ãåå¾ã§ãããã§ãã¯ã¯ã¤ããªã") {
|
---|
782 | TEST_CASE("1","è¦ç´ ãåå¨ãã", (work = param.get("test2",false)).isValid());
|
---|
783 | TEST_CASE("2","ãã§ãã¯ãå
|
---|
784 | ¥ã£ã¦ããªã", !work.isChecked() );
|
---|
785 | } END_CASE;
|
---|
786 |
|
---|
787 | BEGIN_CASE("3","ãã§ã«ãã§ãã¯ã®ã¤ããtestã«å¯¾ããget(test,false)ã§è¦ç´ ãåå¾ã§ãããã§ãã¯æ¸ã¿") {
|
---|
788 | TEST_CASE("1","è¦ç´ ãåå¨ãã", (work = param.get("test",false)).isValid());
|
---|
789 | TEST_CASE("2","ãã§ãã¯ãå
|
---|
790 | ¥ã£ã¦ããªã", work.isChecked() );
|
---|
791 | } END_CASE;
|
---|
792 |
|
---|
793 | BEGIN_CASE("4","get(ç¡å¹ãªåå)ã§ç¡å¹ãªè¦ç´ ãè¿ã") {
|
---|
794 | TEST_CASE("1","è¦ç´ ãåå¨ãã", !param.get("unknown").isValid());
|
---|
795 | } END_CASE;
|
---|
796 | } END_CASE;
|
---|
797 |
|
---|
798 |
|
---|
799 | BEGIN_CASE("parseOption","ãã©ã¡ã¼ã¿ã®ãã¼ã¹ãæ£å¸¸ã«ã§ããã") {
|
---|
800 | BEGIN_CASE("01","ä¸èº«ãä½ããªããã©ã¡ã¼ã¿ãä¸ãã¦ãæåãã") {
|
---|
801 | OptionParameter param;
|
---|
802 | char ** argv = { NULL };
|
---|
803 |
|
---|
804 | if(!param.parseOption(0, argv))
|
---|
805 | TEST_FAIL;
|
---|
806 | } END_CASE;
|
---|
807 |
|
---|
808 | BEGIN_CASE("02","ããã°ã©ã åã¯ãªãã·ã§ã³ã¨ãã¦è§£æãããªã") {
|
---|
809 | OptionParameter param;
|
---|
810 | char * argv[] = { "test.exe", NULL };
|
---|
811 |
|
---|
812 | if(!param.parseOption(1, argv))
|
---|
813 | TEST_FAIL;
|
---|
814 | if(param.countItem() != 0)
|
---|
815 | TEST_FAIL;
|
---|
816 | } END_CASE;
|
---|
817 |
|
---|
818 | BEGIN_CASE("03","ãã©ã¡ã¼ã¿ããããªãã«è§£æããã") {
|
---|
819 | OptionParameter param;
|
---|
820 | char * argv[] = { "test.exe", "-test", "param", "-test2=\"dummy\"", NULL };
|
---|
821 |
|
---|
822 | if(!param.parseOption(4, argv))
|
---|
823 | TEST_FAIL;
|
---|
824 | if(param.countItem() != 2)
|
---|
825 | TEST_FAIL;
|
---|
826 |
|
---|
827 | if(param[string("test")][0].compare("param") != 0)
|
---|
828 | TEST_FAIL;
|
---|
829 |
|
---|
830 | if(param["test2"][0].compare("dummy") != 0)
|
---|
831 | TEST_FAIL;
|
---|
832 |
|
---|
833 | if(param.getProgramName().compare("test.exe") != 0)
|
---|
834 | TEST_FAIL;
|
---|
835 |
|
---|
836 | } END_CASE;
|
---|
837 |
|
---|
838 | BEGIN_CASE("04","弿°åãåãã") {
|
---|
839 | OptionParameter param;
|
---|
840 | char * argv[] = { "test.exe", "-test", "param", "-test2=\"dummy\"", NULL };
|
---|
841 |
|
---|
842 | if(!param.parseOption(4, argv))
|
---|
843 | TEST_FAIL;
|
---|
844 |
|
---|
845 | if(param.getCommandLine().compare("-test param -test2=\"dummy\" ") != 0)
|
---|
846 | TEST_FAIL;
|
---|
847 | } END_CASE;
|
---|
848 |
|
---|
849 | BEGIN_CASE("05","ä½ã弿°ãç¡ãã¨ãã«ã¯ããã©ã«ã弿°ãã²ãã¦ãã") {
|
---|
850 | OptionParameter param;
|
---|
851 | char * argv[] = { "test.exe", NULL };
|
---|
852 |
|
---|
853 | if(!param.parseOption(1, argv, "-default=parameter"))
|
---|
854 | TEST_FAIL;
|
---|
855 |
|
---|
856 | if(param.getCommandLine().compare("-default=parameter ") != 0)
|
---|
857 | TEST_FAIL;
|
---|
858 | } END_CASE;
|
---|
859 |
|
---|
860 | } END_CASE;
|
---|
861 |
|
---|
862 | BEGIN_CASE("04","åç
|
---|
863 | §ãã¼ã¯ãã¤ãã") {
|
---|
864 | OptionParameter param;
|
---|
865 | char * argv[] = { "test.exe", "-test", "param", "-test2=\"dummy\"", NULL };
|
---|
866 |
|
---|
867 | if(!param.parseOption(4, argv))
|
---|
868 | TEST_FAIL;
|
---|
869 |
|
---|
870 | if(param.container.find(string("test"))->second.isChecked())
|
---|
871 | TEST_FAIL;
|
---|
872 |
|
---|
873 | param.check("test");
|
---|
874 | if(!param.container.find(string("test"))->second.isChecked())
|
---|
875 | TEST_FAIL;
|
---|
876 | } END_CASE;
|
---|
877 |
|
---|
878 | BEGIN_CASE("05","validateOption") {
|
---|
879 | OptionParameter param;
|
---|
880 | char * argv[] = { "test.exe", "-test", "param", "-test2=\"dummy\"", NULL };
|
---|
881 |
|
---|
882 | if(!param.parseOption(4, argv))
|
---|
883 | TEST_FAIL;
|
---|
884 |
|
---|
885 | BEGIN_CASE("1","ä½ã使ç¨ãã¦ããªãã¨ãã«ã¯false") {
|
---|
886 | if(param.validateOption())
|
---|
887 | TEST_FAIL;
|
---|
888 | } END_CASE;
|
---|
889 |
|
---|
890 | param["test"]._check();
|
---|
891 | BEGIN_CASE("2","ã»ãã«ãã§ãã¯ãã¦ããªããªãã·ã§ã³ãããã°false") {
|
---|
892 | if(param.validateOption())
|
---|
893 | TEST_FAIL;
|
---|
894 | } END_CASE;
|
---|
895 |
|
---|
896 | param["test2"]._check();
|
---|
897 | BEGIN_CASE("3","å
|
---|
898 | ¨ã¦ä½¿ç¨ãããã°true") {
|
---|
899 | if(!param.validateOption())
|
---|
900 | TEST_FAIL;
|
---|
901 | } END_CASE;
|
---|
902 | } END_CASE;
|
---|
903 |
|
---|
904 | BEGIN_CASE("06","getInvalidOptions") {
|
---|
905 | OptionParameter param;
|
---|
906 | char * argv[] = { "test.exe", "-test", "param", "-test2=\"dummy\"", NULL };
|
---|
907 |
|
---|
908 | if(!param.parseOption(4, argv))
|
---|
909 | TEST_FAIL;
|
---|
910 |
|
---|
911 | BEGIN_CASE("1","ä½ã使ç¨ãã¦ããªãã¨ãã«ã¯å
|
---|
912 | ¨ã¦ã®ãªãã·ã§ã³ãç¡å¹") {
|
---|
913 | if(param.getInvalidOptions().compare("-test \"param\" -test2 \"dummy\"") != 0)
|
---|
914 | TEST_FAIL;
|
---|
915 | } END_CASE;
|
---|
916 |
|
---|
917 | param["test"]._check();
|
---|
918 | BEGIN_CASE("2","ã»ãã«ãã§ãã¯ãã¦ããªããªãã·ã§ã³ãããã°ãããåãã") {
|
---|
919 | if(param.getInvalidOptions().compare("-test2 \"dummy\"") != 0)
|
---|
920 | TEST_FAIL;
|
---|
921 | } END_CASE;
|
---|
922 | } END_CASE;
|
---|
923 |
|
---|
924 | BEGIN_CASE("07","find") {
|
---|
925 | OptionParameter param;
|
---|
926 | char * argv[] = { "test.exe", "-test", "param", "-test2=\"dummy\"", NULL };
|
---|
927 |
|
---|
928 | if(!param.parseOption(4, argv))
|
---|
929 | TEST_FAIL;
|
---|
930 |
|
---|
931 | BEGIN_CASE("1","åå¨ãããªãã·ã§ã³ã«å¯¾ãã¦trueãè¿ã") {
|
---|
932 | if(!param.find("test") || !param.find("test2"))
|
---|
933 | TEST_FAIL;
|
---|
934 | } END_CASE;
|
---|
935 |
|
---|
936 | BEGIN_CASE("2","åå¨ããªããªãã·ã§ã³ã«å¯¾ãã¦falseãè¿ã") {
|
---|
937 | if(param.find("unknown"))
|
---|
938 | TEST_FAIL;
|
---|
939 | } END_CASE;
|
---|
940 |
|
---|
941 | BEGIN_CASE("3","空æåã«å¯¾ãã¦falseãè¿ã") {
|
---|
942 | if(param.find(""))
|
---|
943 | TEST_FAIL;
|
---|
944 | } END_CASE;
|
---|
945 | } END_CASE;
|
---|
946 |
|
---|
947 | Singleton<OptionParameter>::restoreContext(context);
|
---|
948 | }
|
---|
949 |
|
---|
950 | #endif
|
---|
951 |
|
---|
952 |
|
---|