aboutsummaryrefslogtreecommitdiff
path: root/test.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'test.cxx')
-rw-r--r--test.cxx102
1 files changed, 102 insertions, 0 deletions
diff --git a/test.cxx b/test.cxx
index 71f1fb7..1189f97 100644
--- a/test.cxx
+++ b/test.cxx
@@ -964,6 +964,108 @@ 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\n d1\n d2", {'g'});
+ p.Prog("prog");
+
+ REQUIRE(p.Help() == R"( prog {OPTIONS}
+
+ parser
+
+ OPTIONS:
+
+ -f[name], --foo=[name] description
+ -g[name] description
+ d1
+ d2
+
+)");
+
+ 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
+ d1
+ d2
+
+)");
+
+ p.helpParams.showValueName = false;
+ p.helpParams.optionsString = {};
+ REQUIRE(p.Help() == R"( usage: prog {OPTIONS}
+
+ parser
+
+ -f, --foo description
+ -g description
+ d1
+ d2
+
+)");
+
+ p.helpParams.helpindent = 12;
+ p.helpParams.optionsString = "Options";
+ REQUIRE(p.Help() == R"( usage: prog {OPTIONS}
+
+ parser
+
+ Options
+
+ -f, --foo
+ description
+ -g description
+ d1
+ d2
+
+)");
+
+ p.helpParams.addNewlineBeforeDescription = true;
+ REQUIRE(p.Help() == R"( usage: prog {OPTIONS}
+
+ parser
+
+ Options
+
+ -f, --foo
+ description
+ -g
+ description
+ d1
+ d2
+
+)");
+
+ args::ValueFlag<std::string> e(p, "name", "some reaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaally loooooooooooooooooooooooooooong description", {'e'});
+ REQUIRE(p.Help() == R"( usage: prog {OPTIONS}
+
+ parser
+
+ Options
+
+ -f, --foo
+ description
+ -g
+ description
+ d1
+ d2
+ -e
+ some reaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaally
+ loooooooooooooooooooooooooooong description
+
+)");
+
+}
+
#undef ARGS_HXX
#define ARGS_TESTNAMESPACE
#define ARGS_NOEXCEPT