Commit a86f7fbd5e4354e08a2a843444f9b780fe4d0dfa

Authored by Philip Top
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
tests/AppTest.cpp
... ... @@ -564,6 +564,26 @@ TEST_F(TApp, LotsOfFlagsSingleStringExtraSpace) {
564 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 587 TEST_F(TApp, FlagLikeOption) {
568 588 bool val{false};
569 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 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 133 #ifdef _MSC_VER
121 134 #pragma warning(default : 4244)
122 135 #endif
... ...