Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/jarro2783/cxxopts.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'test/options.cpp')
-rw-r--r--test/options.cpp26
1 files changed, 23 insertions, 3 deletions
diff --git a/test/options.cpp b/test/options.cpp
index 95cd220..df6a2e7 100644
--- a/test/options.cpp
+++ b/test/options.cpp
@@ -49,6 +49,9 @@ TEST_CASE("Basic options", "[options]")
options.add_options()
("long", "a long option")
("s,short", "a short option")
+ ("quick,brown", "An option with multiple long names and no short name")
+ ("f,ox,jumped", "An option with multiple long names and a short name")
+ ("over,z,lazy,dog", "An option with multiple long names and a short name, not listed first")
("value", "an option with a value", cxxopts::value<std::string>())
("a,av", "a short option with a value", cxxopts::value<std::string>())
("6,six", "a short number option")
@@ -67,6 +70,14 @@ TEST_CASE("Basic options", "[options]")
"-6",
"-p",
"--space",
+ "--quick",
+ "--ox",
+ "-f",
+ "--brown",
+ "-z",
+ "--over",
+ "--dog",
+ "--lazy"
});
auto** actual_argv = argv.argv();
@@ -83,9 +94,12 @@ TEST_CASE("Basic options", "[options]")
CHECK(result.count("6") == 1);
CHECK(result.count("p") == 2);
CHECK(result.count("space") == 2);
+ CHECK(result.count("quick") == 2);
+ CHECK(result.count("f") == 2);
+ CHECK(result.count("z") == 4);
auto& arguments = result.arguments();
- REQUIRE(arguments.size() == 7);
+ REQUIRE(arguments.size() == 15);
CHECK(arguments[0].key() == "long");
CHECK(arguments[0].value() == "true");
CHECK(arguments[0].as<bool>() == true);
@@ -786,24 +800,30 @@ TEST_CASE("Option add with add_option(string, Option)", "[options]") {
options.add_option("", option_1);
options.add_option("TEST", {"a,aggregate", "test option 2", cxxopts::value<int>(), "AGGREGATE"});
+ options.add_option("TEST", {"multilong,m,multilong-alias", "test option 3", cxxopts::value<int>(), "An option with multiple long names"});
Argv argv_({
"test",
"--test",
"5",
"-a",
- "4"
+ "4",
+ "--multilong-alias",
+ "6"
});
auto argc = argv_.argc();
auto** argv = argv_.argv();
auto result = options.parse(argc, argv);
- CHECK(result.arguments().size()==2);
+ CHECK(result.arguments().size() == 3);
CHECK(options.groups().size() == 2);
CHECK(result.count("address") == 0);
CHECK(result.count("aggregate") == 1);
CHECK(result.count("test") == 1);
CHECK(result["aggregate"].as<int>() == 4);
+ CHECK(result["multilong"].as<int>() == 6);
+ CHECK(result["multilong-alias"].as<int>() == 6);
+ CHECK(result["m"].as<int>() == 6);
CHECK(result["test"].as<int>() == 5);
}