1
0
mirror of https://github.com/CLIUtils/CLI11.git synced 2025-05-03 14:03:52 +00:00

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
This commit is contained in:
Philip Top 2020-12-28 08:01:11 -08:00 committed by GitHub
parent f0461525bb
commit a86f7fbd5e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 0 deletions

View File

@ -564,6 +564,26 @@ TEST_F(TApp, LotsOfFlagsSingleStringExtraSpace) {
EXPECT_EQ(1u, app.count("-A")); EXPECT_EQ(1u, app.count("-A"));
} }
TEST_F(TApp, SingleArgVector) {
std::vector<std::string> channels;
std::vector<std::string> iargs;
std::string path;
app.add_option("-c", channels)->type_size(1)->allow_extra_args(false);
app.add_option("args", iargs);
app.add_option("-p", path);
app.parse("-c t1 -c t2 -c t3 a1 a2 a3 a4 -p happy");
EXPECT_EQ(3u, channels.size());
EXPECT_EQ(4u, iargs.size());
EXPECT_EQ(path, "happy");
app.parse("-c t1 a1 -c t2 -c t3 a2 a3 a4 -p happy");
EXPECT_EQ(3u, channels.size());
EXPECT_EQ(4u, iargs.size());
EXPECT_EQ(path, "happy");
}
TEST_F(TApp, FlagLikeOption) { TEST_F(TApp, FlagLikeOption) {
bool val{false}; bool val{false};
auto opt = app.add_option("--flag", val)->type_size(0)->default_str("true"); auto opt = app.add_option("--flag", val)->type_size(0)->default_str("true");

View File

@ -117,6 +117,19 @@ TEST_F(TApp, StdOptionalComplexDirect) {
EXPECT_EQ(*opt, val2); EXPECT_EQ(*opt, val2);
} }
TEST_F(TApp, StdOptionalUint) {
std::optional<std::uint64_t> opt;
app.add_option("-i,--int", opt);
run();
EXPECT_FALSE(opt);
args = {"-i", "15"};
run();
EXPECT_EQ(*opt, 15U);
static_assert(CLI::detail::classify_object<std::optional<std::uint64_t>>::value ==
CLI::detail::object_category::wrapper_value);
}
#ifdef _MSC_VER #ifdef _MSC_VER
#pragma warning(default : 4244) #pragma warning(default : 4244)
#endif #endif