aboutsummaryrefslogtreecommitdiff
path: root/test.cxx
diff options
context:
space:
mode:
authorPavel Belikov <pavel.fuchs.belikov@gmail.com>2017-11-14 19:08:41 +0300
committerPavel Belikov <pavel.fuchs.belikov@gmail.com>2017-11-14 19:08:41 +0300
commit4b200a6d195470bcbfc280d92222e8573644a8c0 (patch)
treed1b3e39decb47bcc325898154e90e0ec91815db5 /test.cxx
parentMerge pull request #42 from pavel-belikov/better-progline (diff)
downloadargs.hxx-4b200a6d195470bcbfc280d92222e8573644a8c0.tar.xz
add more HelpParams for options
Diffstat (limited to 'test.cxx')
-rw-r--r--test.cxx72
1 files changed, 72 insertions, 0 deletions
diff --git a/test.cxx b/test.cxx
index 71f1fb7..2c4cd6e 100644
--- a/test.cxx
+++ b/test.cxx
@@ -964,6 +964,78 @@ TEST_CASE("Matcher validation works as expected", "[args]")
REQUIRE_THROWS_AS(args::ValueFlag<int>(parser, "", "", {}), args::UsageError);
}
+TEST_CASE("HelpParams work as expected", "[args]")
+{
+ args::ArgumentParser p("parser");
+ args::ValueFlag<std::string> f(p, "name", "description", {'f', "foo"});
+ args::ValueFlag<std::string> g(p, "name", "description", {'g'});
+ p.Prog("prog");
+
+ REQUIRE(p.Help() == R"( prog {OPTIONS}
+
+ parser
+
+ OPTIONS:
+
+ -f[name], --foo=[name] description
+ -g[name] description
+
+)");
+
+ p.helpParams.usageString = "usage: ";
+ p.helpParams.optionsString = "Options";
+ p.helpParams.useValueNameOnce = true;
+ REQUIRE(p.Help() == R"( usage: prog {OPTIONS}
+
+ parser
+
+ Options
+
+ -f, --foo [name] description
+ -g[name] description
+
+)");
+
+ p.helpParams.showValueName = false;
+ p.helpParams.optionsString = {};
+ REQUIRE(p.Help() == R"( usage: prog {OPTIONS}
+
+ parser
+
+ -f, --foo description
+ -g description
+
+)");
+
+ p.helpParams.helpindent = 12;
+ p.helpParams.optionsString = "Options";
+ REQUIRE(p.Help() == R"( usage: prog {OPTIONS}
+
+ parser
+
+ Options
+
+ -f, --foo
+ description
+ -g description
+
+)");
+
+ p.helpParams.addNewlineBeforeDescription = true;
+ REQUIRE(p.Help() == R"( usage: prog {OPTIONS}
+
+ parser
+
+ Options
+
+ -f, --foo
+ description
+ -g
+ description
+
+)");
+}
+
#undef ARGS_HXX
#define ARGS_TESTNAMESPACE
#define ARGS_NOEXCEPT