Lines Matching +full:test +full:- +full:cl
2 // Use of this source code is governed by a BSD-style license that can be
19 // To test Windows quoting behavior, we use a string that has some backslashes
21 // Consider the command-line argument: q\"bs1\bs2\\bs3q\\\"
22 // Here it is with C-style escapes.
26 // Here that is with C-style escapes.
30 TEST(CommandLineTest, CommandLineConstructor) { in TEST() function
33 FILE_PATH_LITERAL("--foo="), in TEST()
34 FILE_PATH_LITERAL("-bAr"), in TEST()
35 FILE_PATH_LITERAL("-spaetzel=pierogi"), in TEST()
36 FILE_PATH_LITERAL("-baz"), in TEST()
38 FILE_PATH_LITERAL("--other-switches=--dog=canine --cat=feline"), in TEST()
39 FILE_PATH_LITERAL("-spaetzle=Crepe"), in TEST()
40 FILE_PATH_LITERAL("-=loosevalue"), in TEST()
41 FILE_PATH_LITERAL("-"), in TEST()
44 FILE_PATH_LITERAL("--input-translation=45--output-rotation"), in TEST()
45 FILE_PATH_LITERAL("--"), in TEST()
46 FILE_PATH_LITERAL("--"), in TEST()
47 FILE_PATH_LITERAL("--not-a-switch"), in TEST()
49 FILE_PATH_LITERAL("unquoted arg-with-space")}; in TEST()
50 CommandLine cl(arraysize(argv), argv); in TEST() local
52 EXPECT_FALSE(cl.GetCommandLineString().empty()); in TEST()
53 EXPECT_FALSE(cl.HasSwitch("cruller")); in TEST()
54 EXPECT_FALSE(cl.HasSwitch("flim")); in TEST()
55 EXPECT_FALSE(cl.HasSwitch("program")); in TEST()
56 EXPECT_FALSE(cl.HasSwitch("dog")); in TEST()
57 EXPECT_FALSE(cl.HasSwitch("cat")); in TEST()
58 EXPECT_FALSE(cl.HasSwitch("output-rotation")); in TEST()
59 EXPECT_FALSE(cl.HasSwitch("not-a-switch")); in TEST()
60 EXPECT_FALSE(cl.HasSwitch("--")); in TEST()
63 cl.GetProgram().value()); in TEST()
65 EXPECT_TRUE(cl.HasSwitch("foo")); in TEST()
67 EXPECT_TRUE(cl.HasSwitch("bar")); in TEST()
69 EXPECT_FALSE(cl.HasSwitch("bar")); in TEST()
71 EXPECT_TRUE(cl.HasSwitch("baz")); in TEST()
72 EXPECT_TRUE(cl.HasSwitch("spaetzle")); in TEST()
73 EXPECT_TRUE(cl.HasSwitch("other-switches")); in TEST()
74 EXPECT_TRUE(cl.HasSwitch("input-translation")); in TEST()
76 EXPECT_EQ("Crepe", cl.GetSwitchValueASCII("spaetzle")); in TEST()
77 EXPECT_EQ("", cl.GetSwitchValueASCII("foo")); in TEST()
78 EXPECT_EQ("", cl.GetSwitchValueASCII("bar")); in TEST()
79 EXPECT_EQ("", cl.GetSwitchValueASCII("cruller")); in TEST()
80 EXPECT_EQ("--dog=canine --cat=feline", cl.GetSwitchValueASCII( in TEST()
81 "other-switches")); in TEST()
82 EXPECT_EQ("45--output-rotation", cl.GetSwitchValueASCII("input-translation")); in TEST()
84 const CommandLine::StringVector& args = cl.GetArgs(); in TEST()
90 EXPECT_EQ(FILE_PATH_LITERAL("-"), *iter); in TEST()
96 EXPECT_EQ(FILE_PATH_LITERAL("--"), *iter); in TEST()
98 EXPECT_EQ(FILE_PATH_LITERAL("--not-a-switch"), *iter); in TEST()
102 EXPECT_EQ(FILE_PATH_LITERAL("unquoted arg-with-space"), *iter); in TEST()
107 TEST(CommandLineTest, CommandLineFromString) { in TEST() function
109 CommandLine cl = CommandLine::FromString( in TEST() local
110 L"program --foo= -bAr /Spaetzel=pierogi /Baz flim " in TEST()
111 L"--other-switches=\"--dog=canine --cat=feline\" " in TEST()
112 L"-spaetzle=Crepe -=loosevalue FLAN " in TEST()
113 L"--input-translation=\"45\"--output-rotation " in TEST()
114 L"--quotes=" + kTrickyQuoted + L" " in TEST()
115 L"-- -- --not-a-switch " in TEST()
118 EXPECT_FALSE(cl.GetCommandLineString().empty()); in TEST()
119 EXPECT_FALSE(cl.HasSwitch("cruller")); in TEST()
120 EXPECT_FALSE(cl.HasSwitch("flim")); in TEST()
121 EXPECT_FALSE(cl.HasSwitch("program")); in TEST()
122 EXPECT_FALSE(cl.HasSwitch("dog")); in TEST()
123 EXPECT_FALSE(cl.HasSwitch("cat")); in TEST()
124 EXPECT_FALSE(cl.HasSwitch("output-rotation")); in TEST()
125 EXPECT_FALSE(cl.HasSwitch("not-a-switch")); in TEST()
126 EXPECT_FALSE(cl.HasSwitch("--")); in TEST()
129 cl.GetProgram().value()); in TEST()
131 EXPECT_TRUE(cl.HasSwitch("foo")); in TEST()
132 EXPECT_TRUE(cl.HasSwitch("bar")); in TEST()
133 EXPECT_TRUE(cl.HasSwitch("baz")); in TEST()
134 EXPECT_TRUE(cl.HasSwitch("spaetzle")); in TEST()
135 EXPECT_TRUE(cl.HasSwitch("other-switches")); in TEST()
136 EXPECT_TRUE(cl.HasSwitch("input-translation")); in TEST()
137 EXPECT_TRUE(cl.HasSwitch("quotes")); in TEST()
139 EXPECT_EQ("Crepe", cl.GetSwitchValueASCII("spaetzle")); in TEST()
140 EXPECT_EQ("", cl.GetSwitchValueASCII("foo")); in TEST()
141 EXPECT_EQ("", cl.GetSwitchValueASCII("bar")); in TEST()
142 EXPECT_EQ("", cl.GetSwitchValueASCII("cruller")); in TEST()
143 EXPECT_EQ("--dog=canine --cat=feline", cl.GetSwitchValueASCII( in TEST()
144 "other-switches")); in TEST()
145 EXPECT_EQ("45--output-rotation", cl.GetSwitchValueASCII("input-translation")); in TEST()
146 EXPECT_EQ(kTricky, cl.GetSwitchValueNative("quotes")); in TEST()
148 const CommandLine::StringVector& args = cl.GetArgs(); in TEST()
156 EXPECT_EQ(FILE_PATH_LITERAL("--"), *iter); in TEST()
158 EXPECT_EQ(FILE_PATH_LITERAL("--not-a-switch"), *iter); in TEST()
165 CommandLine cl_duplicate = CommandLine::FromString(cl.GetCommandLineString()); in TEST()
166 EXPECT_EQ(cl.GetCommandLineString(), cl_duplicate.GetCommandLineString()); in TEST()
171 TEST(CommandLineTest, EmptyString) { in TEST() function
186 TEST(CommandLineTest, GetArgumentsString) { in TEST() function
192 static const char kFirstArgName[] = "first-arg"; in TEST()
198 CommandLine cl(CommandLine::NO_PROGRAM); in TEST() local
199 cl.AppendSwitchPath(kFirstArgName, FilePath(kPath1)); in TEST()
200 cl.AppendSwitchPath(kSecondArgName, FilePath(kPath2)); in TEST()
201 cl.AppendArg(kThirdArgName); in TEST()
202 cl.AppendArg(kFourthArgName); in TEST()
203 cl.AppendArg(kFifthArgName); in TEST()
226 expected_str.append(FILE_PATH_LITERAL("--")) in TEST()
233 .append(FILE_PATH_LITERAL("--")) in TEST()
249 EXPECT_EQ(expected_str_no_quote_placeholders, cl.GetArgumentsString()); in TEST()
257 cl.GetArgumentsStringWithPlaceholders()); in TEST()
261 // Test methods for appending switches to a command line.
262 TEST(CommandLineTest, AppendSwitches) { in TEST() function
273 CommandLine cl(FilePath(FILE_PATH_LITERAL("Program"))); in TEST() local
275 cl.AppendSwitch(switch1); in TEST()
276 cl.AppendSwitchASCII(switch2, value2); in TEST()
277 cl.AppendSwitchASCII(switch3, value3); in TEST()
278 cl.AppendSwitchASCII(switch4, value4); in TEST()
279 cl.AppendSwitchASCII(switch5, value4); in TEST()
280 cl.AppendSwitchNative(switch5, value5); in TEST()
282 EXPECT_TRUE(cl.HasSwitch(switch1)); in TEST()
283 EXPECT_TRUE(cl.HasSwitch(switch2)); in TEST()
284 EXPECT_EQ(value2, cl.GetSwitchValueASCII(switch2)); in TEST()
285 EXPECT_TRUE(cl.HasSwitch(switch3)); in TEST()
286 EXPECT_EQ(value3, cl.GetSwitchValueASCII(switch3)); in TEST()
287 EXPECT_TRUE(cl.HasSwitch(switch4)); in TEST()
288 EXPECT_EQ(value4, cl.GetSwitchValueASCII(switch4)); in TEST()
289 EXPECT_TRUE(cl.HasSwitch(switch5)); in TEST()
290 EXPECT_EQ(value5, cl.GetSwitchValueNative(switch5)); in TEST()
294 L"--switch1 " in TEST()
295 L"--switch2=value " in TEST()
296 L"--switch3=\"a value with spaces\" " in TEST()
297 L"--switch4=\"\\\"a value with quotes\\\"\" " in TEST()
300 L"--quotes=\"\\\"a value with quotes\\\"\" " in TEST()
301 L"--quotes=\"" + kTrickyQuoted + L"\"", in TEST()
302 cl.GetCommandLineString()); in TEST()
306 TEST(CommandLineTest, AppendSwitchesDashDash) { in TEST() function
308 FILE_PATH_LITERAL("--"), in TEST()
309 FILE_PATH_LITERAL("--arg1") }; in TEST()
310 CommandLine cl(arraysize(raw_argv), raw_argv); in TEST() local
312 cl.AppendSwitch("switch1"); in TEST()
313 cl.AppendSwitchASCII("switch2", "foo"); in TEST()
315 cl.AppendArg("--arg2"); in TEST()
317 EXPECT_EQ(FILE_PATH_LITERAL("prog --switch1 --switch2=foo -- --arg1 --arg2"), in TEST()
318 cl.GetCommandLineString()); in TEST()
319 CommandLine::StringVector cl_argv = cl.argv(); in TEST()
321 EXPECT_EQ(FILE_PATH_LITERAL("--switch1"), cl_argv[1]); in TEST()
322 EXPECT_EQ(FILE_PATH_LITERAL("--switch2=foo"), cl_argv[2]); in TEST()
323 EXPECT_EQ(FILE_PATH_LITERAL("--"), cl_argv[3]); in TEST()
324 EXPECT_EQ(FILE_PATH_LITERAL("--arg1"), cl_argv[4]); in TEST()
325 EXPECT_EQ(FILE_PATH_LITERAL("--arg2"), cl_argv[5]); in TEST()
331 TEST(CommandLineTest, AppendArguments) { in TEST() function
354 // This only makes sense on Windows and the test is basically here to guard
356 TEST(CommandLineTest, ProgramQuotes) { in TEST() function
382 TEST(CommandLineTest, Init) { in TEST() function
384 // whether or not the test runner does so. in TEST()
392 // Test that copies of CommandLine have a valid StringPiece map.
393 TEST(CommandLineTest, Copy) { in TEST() function
396 initial->AppendSwitch("a"); in TEST()
397 initial->AppendSwitch("bbbbbbbbbbbbbbb"); in TEST()
398 initial->AppendSwitch("c"); in TEST()
401 CommandLine::SwitchMap switch_map = initial->GetSwitches(); in TEST()
409 TEST(CommandLineTest, PrependSimpleWrapper) { in TEST() function
410 CommandLine cl(FilePath(FILE_PATH_LITERAL("Program"))); in TEST() local
411 cl.AppendSwitch("a"); in TEST()
412 cl.AppendSwitch("b"); in TEST()
413 cl.PrependWrapper(FILE_PATH_LITERAL("wrapper --foo --bar")); in TEST()
415 EXPECT_EQ(6u, cl.argv().size()); in TEST()
416 EXPECT_EQ(FILE_PATH_LITERAL("wrapper"), cl.argv()[0]); in TEST()
417 EXPECT_EQ(FILE_PATH_LITERAL("--foo"), cl.argv()[1]); in TEST()
418 EXPECT_EQ(FILE_PATH_LITERAL("--bar"), cl.argv()[2]); in TEST()
419 EXPECT_EQ(FILE_PATH_LITERAL("Program"), cl.argv()[3]); in TEST()
420 EXPECT_EQ(FILE_PATH_LITERAL("--a"), cl.argv()[4]); in TEST()
421 EXPECT_EQ(FILE_PATH_LITERAL("--b"), cl.argv()[5]); in TEST()
424 TEST(CommandLineTest, PrependComplexWrapper) { in TEST() function
425 CommandLine cl(FilePath(FILE_PATH_LITERAL("Program"))); in TEST() local
426 cl.AppendSwitch("a"); in TEST()
427 cl.AppendSwitch("b"); in TEST()
428 cl.PrependWrapper( in TEST()
429 FILE_PATH_LITERAL("wrapper --foo='hello world' --bar=\"let's go\"")); in TEST()
431 EXPECT_EQ(6u, cl.argv().size()); in TEST()
432 EXPECT_EQ(FILE_PATH_LITERAL("wrapper"), cl.argv()[0]); in TEST()
433 EXPECT_EQ(FILE_PATH_LITERAL("--foo='hello world'"), cl.argv()[1]); in TEST()
434 EXPECT_EQ(FILE_PATH_LITERAL("--bar=\"let's go\""), cl.argv()[2]); in TEST()
435 EXPECT_EQ(FILE_PATH_LITERAL("Program"), cl.argv()[3]); in TEST()
436 EXPECT_EQ(FILE_PATH_LITERAL("--a"), cl.argv()[4]); in TEST()
437 EXPECT_EQ(FILE_PATH_LITERAL("--b"), cl.argv()[5]); in TEST()