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"));
|
||||
}
|
||||
|
||||
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) {
|
||||
bool val{false};
|
||||
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);
|
||||
}
|
||||
|
||||
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
|
||||
#pragma warning(default : 4244)
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user