Commit 6638549adbe908481d031479dde00eb99b4f5825
Committed by
Henry Schreiner
1 parent
1b3a4b63
Adding check for -2 opts
Showing
2 changed files
with
4 additions
and
5 deletions
include/CLI/App.hpp
| ... | ... | @@ -1370,7 +1370,6 @@ class App { |
| 1370 | 1370 | |
| 1371 | 1371 | int num = op->get_expected(); |
| 1372 | 1372 | |
| 1373 | - /// ONE /////////////////////////////////////////////////////////////// | |
| 1374 | 1373 | if(!value.empty()) { |
| 1375 | 1374 | if(num != -1) |
| 1376 | 1375 | num--; |
| ... | ... | @@ -1409,8 +1408,8 @@ class App { |
| 1409 | 1408 | args.pop_back(); |
| 1410 | 1409 | collected++; |
| 1411 | 1410 | } |
| 1412 | - // if(collected < -num) | |
| 1413 | - // throw ArgumentMismatch(op->single_name() + ": At least " + std::to_string(-num) + " required"); | |
| 1411 | + if(op->results_.size() < static_cast<size_t>(-num)) | |
| 1412 | + throw ArgumentMismatch(op->single_name() + ": At least " + std::to_string(-num) + " required"); | |
| 1414 | 1413 | |
| 1415 | 1414 | } else { |
| 1416 | 1415 | while(num > 0 && !args.empty()) { | ... | ... |
tests/AppTest.cpp
| ... | ... | @@ -338,7 +338,7 @@ TEST_F(TApp, RequiredOptsUnlimited) { |
| 338 | 338 | app.add_option("--str", strs)->required(); |
| 339 | 339 | |
| 340 | 340 | args = {"--str"}; |
| 341 | - EXPECT_THROW(run(), CLI::RequiredError); | |
| 341 | + EXPECT_THROW(run(), CLI::ArgumentMismatch); | |
| 342 | 342 | |
| 343 | 343 | app.reset(); |
| 344 | 344 | args = {"--str", "one", "--str", "two"}; |
| ... | ... | @@ -372,7 +372,7 @@ TEST_F(TApp, RequiredOptsUnlimitedShort) { |
| 372 | 372 | app.add_option("-s", strs)->required(); |
| 373 | 373 | |
| 374 | 374 | args = {"-s"}; |
| 375 | - EXPECT_THROW(run(), CLI::RequiredError); | |
| 375 | + EXPECT_THROW(run(), CLI::ArgumentMismatch); | |
| 376 | 376 | |
| 377 | 377 | app.reset(); |
| 378 | 378 | args = {"-s", "one", "-s", "two"}; | ... | ... |