diff options
author | Taylor C. Richberger <taywee@gmx.com> | 2017-11-14 15:11:07 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-14 15:11:07 -0700 |
commit | 09b0d8c0fe1e6abbc27e13434355fea36a032213 (patch) | |
tree | 4d77fce4d5c42caa4ca8cd376ad67f0fe2d2c70d /test.cxx | |
parent | Merge pull request #42 from pavel-belikov/better-progline (diff) | |
parent | fix HelpParams::showValueNameOnce (diff) | |
download | args.hxx-09b0d8c0fe1e6abbc27e13434355fea36a032213.tar.xz |
Merge pull request #43 from pavel-belikov/better-help
Add more help parameters
Diffstat (limited to 'test.cxx')
-rw-r--r-- | test.cxx | 102 |
1 files changed, 102 insertions, 0 deletions
@@ -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 |