MCPcopy Create free account
hub / github.com/TeXworks/texworks / CommandLineParser_parse

Method CommandLineParser_parse

unit-tests/Utils_test.cpp:264–382  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

262}
263
264void TestUtils::CommandLineParser_parse()
265{
266 QString exe{QStringLiteral("exe")};
267 {
268 Tw::Utils::CommandlineParser clp(QStringList({exe}));
269 QVERIFY(clp.parse());
270 QCOMPARE(clp.getNextArgument(), -1);
271 QCOMPARE(clp.getPrevArgument(), -1);
272 QCOMPARE(clp.getNextOption(), -1);
273 QCOMPARE(clp.getPrevOption(), -1);
274 QCOMPARE(clp.getNextSwitch(), -1);
275 QCOMPARE(clp.getPrevSwitch(), -1);
276 }
277 {
278 Tw::Utils::CommandlineParser clp(QStringList({exe,
279 QStringLiteral("--oLong=asdf"),
280 QStringLiteral("-o=ghjk"),
281 QStringLiteral("qwerty"),
282 QStringLiteral("-s"),
283 QStringLiteral("--sLong"),
284 QStringLiteral("--oLong"), QStringLiteral("xcvb"),
285 QStringLiteral("-o"), QStringLiteral("vbnm"),
286 QStringLiteral("uiop")}
287 ));
288 clp.registerSwitch(QStringLiteral("sLong"), QString(), QStringLiteral("s"));
289 clp.registerOption(QStringLiteral("oLong"), QString(), QStringLiteral("o"));
290 QVERIFY(clp.parse());
291 int nextArg = clp.getNextArgument();
292 QCOMPARE(nextArg, 2);
293 {
294 const Tw::Utils::CommandlineParser::CommandlineItem & item = clp.at(nextArg);
295 QCOMPARE(item.type, Tw::Utils::CommandlineParser::Commandline_Argument);
296 QCOMPARE(item.longName, QString());
297 QCOMPARE(item.value, QVariant(QStringLiteral("qwerty")));
298 QVERIFY(item.processed == false);
299 }
300 int nextArg2 = clp.getNextArgument(nextArg);
301 QCOMPARE(nextArg2, 7);
302 {
303 const Tw::Utils::CommandlineParser::CommandlineItem & item = clp.at(nextArg2);
304 QCOMPARE(item.type, Tw::Utils::CommandlineParser::Commandline_Argument);
305 QCOMPARE(item.longName, QString());
306 QCOMPARE(item.value, QVariant(QStringLiteral("uiop")));
307 QVERIFY(item.processed == false);
308 }
309 int nextOpt = clp.getNextOption(QStringLiteral("oLong"));
310 QCOMPARE(nextOpt, 0);
311 {
312 const Tw::Utils::CommandlineParser::CommandlineItem & item = clp.at(nextOpt);
313 QCOMPARE(item.type, Tw::Utils::CommandlineParser::Commandline_Option);
314 QCOMPARE(item.longName, QStringLiteral("oLong"));
315 QCOMPARE(item.value, QVariant(QStringLiteral("asdf")));
316 QVERIFY(item.processed == false);
317 }
318 int nextOpt2 = clp.getNextOption(QStringLiteral("oLong"), nextOpt);
319 QCOMPARE(nextOpt2, 1);
320 {
321 const Tw::Utils::CommandlineParser::CommandlineItem & item = clp.at(nextOpt2);

Callers

nothing calls this directly

Calls 9

parseMethod · 0.80
getNextArgumentMethod · 0.80
getPrevArgumentMethod · 0.80
getNextOptionMethod · 0.80
getPrevOptionMethod · 0.80
getNextSwitchMethod · 0.80
getPrevSwitchMethod · 0.80
registerSwitchMethod · 0.80
registerOptionMethod · 0.80

Tested by

no test coverage detected