mirror of
https://github.com/CLIUtils/CLI11.git
synced 2025-05-02 13:43:52 +00:00
Adding test for horrible error
This commit is contained in:
parent
3e8502bf43
commit
33f4c5783a
@ -27,10 +27,12 @@ namespace CLI {
|
|||||||
|
|
||||||
namespace detail {
|
namespace detail {
|
||||||
enum class Classifer {NONE, POSITIONAL_MARK, SHORT, LONG, SUBCOMMAND};
|
enum class Classifer {NONE, POSITIONAL_MARK, SHORT, LONG, SUBCOMMAND};
|
||||||
|
class AppFriend;
|
||||||
}
|
}
|
||||||
|
|
||||||
class App;
|
class App;
|
||||||
|
|
||||||
|
|
||||||
typedef std::unique_ptr<App> App_p;
|
typedef std::unique_ptr<App> App_p;
|
||||||
|
|
||||||
/// Creates a command line program, with very few defaults.
|
/// Creates a command line program, with very few defaults.
|
||||||
@ -39,6 +41,7 @@ typedef std::unique_ptr<App> App_p;
|
|||||||
* program, so that the options can be evaluated and the help option doesn't accidentally run your program. */
|
* program, so that the options can be evaluated and the help option doesn't accidentally run your program. */
|
||||||
class App {
|
class App {
|
||||||
friend Option;
|
friend Option;
|
||||||
|
friend detail::AppFriend;
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
// This library follows the Google style guide for member names ending in underscores
|
// This library follows the Google style guide for member names ending in underscores
|
||||||
@ -1041,5 +1044,23 @@ protected:
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
namespace detail {
|
||||||
|
/// This class is simply to allow tests access to App's protected functions
|
||||||
|
struct AppFriend {
|
||||||
|
|
||||||
|
/// Wrap _parse_short
|
||||||
|
static void parse_short(App* app, std::vector<std::string> &args) {
|
||||||
|
return app->_parse_short(args);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Wrap _parse_long
|
||||||
|
static void parse_long(App* app, std::vector<std::string> &args) {
|
||||||
|
return app->_parse_long(args);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -696,3 +696,17 @@ TEST_F(TApp, AllowExtrasOrder) {
|
|||||||
EXPECT_EQ(left_over, left_over_2);
|
EXPECT_EQ(left_over, left_over_2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Test horrible error
|
||||||
|
TEST_F(TApp, CheckShortFail) {
|
||||||
|
args = {"--two"};
|
||||||
|
|
||||||
|
EXPECT_THROW(CLI::detail::AppFriend::parse_short(&app, args), CLI::HorribleError);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test horrible error
|
||||||
|
TEST_F(TApp, CheckLongFail) {
|
||||||
|
args = {"-t"};
|
||||||
|
|
||||||
|
EXPECT_THROW(CLI::detail::AppFriend::parse_long(&app, args), CLI::HorribleError);
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user