From 5fe44fc7131fd612b5a5e3d7707282a6fd5946c7 Mon Sep 17 00:00:00 2001 From: Sean Fisk Date: Tue, 26 Jun 2018 10:57:17 -0400 Subject: [PATCH] Add failing test for repeated multi-argument options --- tests/AppTest.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/AppTest.cpp b/tests/AppTest.cpp index c54ea2c2..14b7bdcc 100644 --- a/tests/AppTest.cpp +++ b/tests/AppTest.cpp @@ -1581,3 +1581,17 @@ TEST_F(TApp, AddRemoveSetItemsNoCase) { args = {"--type2", "TYpE2"}; EXPECT_THROW(run(), CLI::ConversionError); } + +// #128 +TEST_F(TApp, RepeatingMultiArgumentOptions) { + std::vector entries; + app.add_option("--entry", entries, "set a key and value")->type_name("KEY VALUE")->type_size(-2); + + args = {"--entry", "key1", "value1", "--entry", "key2", "value2"}; + EXPECT_NO_THROW(run()); + EXPECT_EQ(entries, std::vector({"key1", "value1", "key2", "value2"})); + + app.reset(); + args.pop_back(); + ASSERT_THROW(run(), CLI::ValidationError); +}