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:
parent
f0461525bb
commit
a86f7fbd5e
@ -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");
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user