| 262 | } |
| 263 | |
| 264 | void 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); |
nothing calls this directly
no test coverage detected