Commit a86f7fbd5e4354e08a2a843444f9b780fe4d0dfa
Committed by
GitHub
1 parent
f0461525
tests: add some extra tests from debugging (#542)
* add a test to verify std::optional<std::uint64_t> works correctly. * adding some extra tests to help with debugging
Showing
2 changed files
with
33 additions
and
0 deletions
tests/AppTest.cpp
| @@ -564,6 +564,26 @@ TEST_F(TApp, LotsOfFlagsSingleStringExtraSpace) { | @@ -564,6 +564,26 @@ TEST_F(TApp, LotsOfFlagsSingleStringExtraSpace) { | ||
| 564 | EXPECT_EQ(1u, app.count("-A")); | 564 | EXPECT_EQ(1u, app.count("-A")); |
| 565 | } | 565 | } |
| 566 | 566 | ||
| 567 | +TEST_F(TApp, SingleArgVector) { | ||
| 568 | + | ||
| 569 | + std::vector<std::string> channels; | ||
| 570 | + std::vector<std::string> iargs; | ||
| 571 | + std::string path; | ||
| 572 | + app.add_option("-c", channels)->type_size(1)->allow_extra_args(false); | ||
| 573 | + app.add_option("args", iargs); | ||
| 574 | + app.add_option("-p", path); | ||
| 575 | + | ||
| 576 | + app.parse("-c t1 -c t2 -c t3 a1 a2 a3 a4 -p happy"); | ||
| 577 | + EXPECT_EQ(3u, channels.size()); | ||
| 578 | + EXPECT_EQ(4u, iargs.size()); | ||
| 579 | + EXPECT_EQ(path, "happy"); | ||
| 580 | + | ||
| 581 | + app.parse("-c t1 a1 -c t2 -c t3 a2 a3 a4 -p happy"); | ||
| 582 | + EXPECT_EQ(3u, channels.size()); | ||
| 583 | + EXPECT_EQ(4u, iargs.size()); | ||
| 584 | + EXPECT_EQ(path, "happy"); | ||
| 585 | +} | ||
| 586 | + | ||
| 567 | TEST_F(TApp, FlagLikeOption) { | 587 | TEST_F(TApp, FlagLikeOption) { |
| 568 | bool val{false}; | 588 | bool val{false}; |
| 569 | auto opt = app.add_option("--flag", val)->type_size(0)->default_str("true"); | 589 | auto opt = app.add_option("--flag", val)->type_size(0)->default_str("true"); |
tests/OptionalTest.cpp
| @@ -117,6 +117,19 @@ TEST_F(TApp, StdOptionalComplexDirect) { | @@ -117,6 +117,19 @@ TEST_F(TApp, StdOptionalComplexDirect) { | ||
| 117 | EXPECT_EQ(*opt, val2); | 117 | EXPECT_EQ(*opt, val2); |
| 118 | } | 118 | } |
| 119 | 119 | ||
| 120 | +TEST_F(TApp, StdOptionalUint) { | ||
| 121 | + std::optional<std::uint64_t> opt; | ||
| 122 | + app.add_option("-i,--int", opt); | ||
| 123 | + run(); | ||
| 124 | + EXPECT_FALSE(opt); | ||
| 125 | + | ||
| 126 | + args = {"-i", "15"}; | ||
| 127 | + run(); | ||
| 128 | + EXPECT_EQ(*opt, 15U); | ||
| 129 | + static_assert(CLI::detail::classify_object<std::optional<std::uint64_t>>::value == | ||
| 130 | + CLI::detail::object_category::wrapper_value); | ||
| 131 | +} | ||
| 132 | + | ||
| 120 | #ifdef _MSC_VER | 133 | #ifdef _MSC_VER |
| 121 | #pragma warning(default : 4244) | 134 | #pragma warning(default : 4244) |
| 122 | #endif | 135 | #endif |