summaryrefslogtreecommitdiffstats
path: root/test/argument_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/argument_test.cpp')
-rw-r--r--test/argument_test.cpp158
1 files changed, 0 insertions, 158 deletions
diff --git a/test/argument_test.cpp b/test/argument_test.cpp
deleted file mode 100644
index 3cb5dc9..0000000
--- a/test/argument_test.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-#include "argument_test.hpp"
-
-#include "argument.hpp"
-
-#include <string>
-#include <vector>
-
-static const std::string expected_path1 = "/arg1-test-path";
-static const std::string expected_target1 = "t1.target";
-static const std::string expected_target2 = "t2.target";
-
-// Allow for a single unrecognized option then the Usage printout
-static const std::string invalid_arg_regex =
- "^[^\n]*unrecognized option[^\n]*\nUsage: ";
-
-static const std::string clean_usage_regex = "^Usage: ";
-
-namespace phosphor
-{
-namespace watchdog
-{
-
-void ArgumentTest::SetUp()
-{
- arg0 = "argument_test";
-}
-
-/** @brief ArgumentParser should return no values if given no options */
-TEST_F(ArgumentTest, NoOptions)
-{
- char* const args[] = {&arg0[0], nullptr};
- ArgumentParser ap(sizeof(args) / sizeof(char*) - 1, args);
- EXPECT_EQ(std::vector<std::string>({}), ap["path"]);
- EXPECT_EQ(std::vector<std::string>({}), ap["continue"]);
- EXPECT_EQ(std::vector<std::string>({}), ap["arbitrary_unknown"]);
-}
-
-/** @brief ArgumentParser should return true for an existing no-arg option
- * Make sure we don't parse arguments if an option takes none
- * Also make sure we don't populate options not used.
- */
-TEST_F(ArgumentTest, LongOptionNoArg)
-{
- std::string arg_continue = "--continue";
- std::string arg_extra = "not-a-bool";
- char* const args[] = {&arg0[0], &arg_continue[0], &arg_extra[0], nullptr};
- ArgumentParser ap(sizeof(args) / sizeof(char*) - 1, args);
- EXPECT_EQ(std::vector<std::string>({}), ap["path"]);
- EXPECT_EQ(std::vector<std::string>({ArgumentParser::trueString}),
- ap["continue"]);
-}
-
-/** @brief ArgumentParser should return a string for long options that
- * take an arg
- */
-TEST_F(ArgumentTest, LongOptionRequiredArg)
-{
- std::string arg_path = "--path";
- std::string arg_path_val = expected_path1;
- std::string arg_extra = "/unused-path";
- char* const args[] = {&arg0[0], &arg_path[0], &arg_path_val[0],
- &arg_extra[0], nullptr};
- ArgumentParser ap(sizeof(args) / sizeof(char*) - 1, args);
- EXPECT_EQ(std::vector<std::string>({expected_path1}), ap["path"]);
-}
-
-/** @brief ArgumentParser should return a string for long options that
- * accept an argument when passed an argument inline
- */
-TEST_F(ArgumentTest, LongOptionInlineArg)
-{
- std::string arg_path = "--path=" + expected_path1;
- std::string arg_extra = "/unused-path";
- char* const args[] = {&arg0[0], &arg_path[0], &arg_extra[0], nullptr};
- ArgumentParser ap(sizeof(args) / sizeof(char*) - 1, args);
- EXPECT_EQ(std::vector<std::string>({expected_path1}), ap["path"]);
-}
-
-/** @brief ArgumentParser should return a string for short options that
- * accept an argument.
- */
-TEST_F(ArgumentTest, ShortOptionRequiredArg)
-{
- std::string arg_path = "-p";
- std::string arg_path_val = expected_path1;
- std::string arg_extra = "/unused-path";
- char* const args[] = {&arg0[0], &arg_path[0], &arg_path_val[0],
- &arg_extra[0], nullptr};
- ArgumentParser ap(sizeof(args) / sizeof(char*) - 1, args);
- EXPECT_EQ(std::vector<std::string>({expected_path1}), ap["path"]);
-}
-
-/** @brief ArgumentParser should be able to handle parsing multiple options
- * Make sure this works for no-arg and required-arg type options
- * Make sure this works between short and long options
- */
-TEST_F(ArgumentTest, MultiOptionOverride)
-{
- std::string arg_continue_short = "-c";
- std::string arg_path = "--path=" + expected_path1;
- std::string arg_continue_long = "--continue";
- std::string arg_target = "--target=" + expected_target2;
- std::string arg_target_short = "-t";
- std::string arg_target_val = expected_target1;
- char* const args[] = {&arg0[0], &arg_continue_short[0],
- &arg_path[0], &arg_continue_long[0],
- &arg_target[0], &arg_target_short[0],
- &arg_target_val[0], nullptr};
- ArgumentParser ap(sizeof(args) / sizeof(char*) - 1, args);
- EXPECT_EQ(std::vector<std::string>({expected_path1}), ap["path"]);
- EXPECT_EQ(std::vector<std::string>(
- {ArgumentParser::trueString, ArgumentParser::trueString}),
- ap["continue"]);
- EXPECT_EQ(std::vector<std::string>({expected_target2, expected_target1}),
- ap["target"]);
-}
-
-/** @brief ArgumentParser should print usage information when given a help
- * argument anywhere in the arguments array
- */
-TEST_F(ArgumentTest, ShortOptionHelp)
-{
- std::string arg_extra = "extra";
- std::string arg_help = "-h";
- char* const args[] = {&arg0[0], &arg_extra[0], &arg_help[0], nullptr};
- EXPECT_EXIT(ArgumentParser(sizeof(args) / sizeof(char*) - 1, args),
- ::testing::ExitedWithCode(255), clean_usage_regex);
-}
-
-/** @brief ArgumentParser should print usage information when given a help
- * argument anywhere in the arguments array
- */
-TEST_F(ArgumentTest, LongOptionHelp)
-{
- std::string arg_help = "--help";
- std::string arg_extra = "extra";
- char* const args[] = {&arg0[0], &arg_help[0], &arg_extra[0], nullptr};
- EXPECT_EXIT(ArgumentParser(sizeof(args) / sizeof(char*) - 1, args),
- ::testing::ExitedWithCode(255), clean_usage_regex);
-}
-
-/** @brief ArgumentParser should print an invalid argument error and
- * usage information when given an invalid argument anywhere
- * in the arguments array
- */
-TEST_F(ArgumentTest, InvalidOptionHelp)
-{
- std::string arg_continue = "--continue";
- std::string arg_bad = "--bad_arg";
- std::string arg_target = "--target=/unused-path";
- char* const args[] = {&arg0[0], &arg_continue[0], &arg_bad[0],
- &arg_target[0], nullptr};
- EXPECT_EXIT(ArgumentParser(sizeof(args) / sizeof(char*) - 1, args),
- ::testing::ExitedWithCode(255), invalid_arg_regex);
-}
-
-} // namespace watchdog
-} // namespace phosphor
OpenPOWER on IntegriCloud