| 60 | } |
| 61 | |
| 62 | int testCommandLineArguments(int argc, char* argv[]) |
| 63 | { |
| 64 | // Example run: ./testCommandLineArguments --some-int-variable 4 |
| 65 | // --another-bool-variable --some-bool-variable=yes |
| 66 | // --some-stl-string-variable=foobar --set-bool-arg1 --set-bool-arg2 |
| 67 | // --some-string-variable=hello |
| 68 | |
| 69 | int res = 0; |
| 70 | kwsys::CommandLineArguments arg; |
| 71 | arg.Initialize(argc, argv); |
| 72 | |
| 73 | // For error handling |
| 74 | arg.SetClientData(random_ptr); |
| 75 | arg.SetUnknownArgumentCallback(unknown_argument); |
| 76 | |
| 77 | int some_int_variable = 10; |
| 78 | double some_double_variable = 10.10; |
| 79 | char* some_string_variable = nullptr; |
| 80 | std::string some_stl_string_variable; |
| 81 | bool some_bool_variable = false; |
| 82 | bool some_bool_variable1 = false; |
| 83 | bool bool_arg1 = false; |
| 84 | int bool_arg2 = 0; |
| 85 | |
| 86 | std::vector<int> numbers_argument; |
| 87 | int valid_numbers[] = { 5, 1, 8, 3, 7, 1, 3, 9, 7, 1 }; |
| 88 | |
| 89 | std::vector<double> doubles_argument; |
| 90 | double valid_doubles[] = { 12.5, 1.31, 22 }; |
| 91 | |
| 92 | std::vector<bool> bools_argument; |
| 93 | bool valid_bools[] = { true, true, false }; |
| 94 | |
| 95 | std::vector<char*> strings_argument; |
| 96 | char const* valid_strings[] = { "andy", "bill", "brad", "ken" }; |
| 97 | |
| 98 | std::vector<std::string> stl_strings_argument; |
| 99 | std::string valid_stl_strings[] = { "ken", "brad", "bill", "andy" }; |
| 100 | |
| 101 | using argT = kwsys::CommandLineArguments; |
| 102 | |
| 103 | arg.AddArgument("--some-int-variable", argT::SPACE_ARGUMENT, |
| 104 | &some_int_variable, "Set some random int variable"); |
| 105 | arg.AddArgument("--some-double-variable", argT::CONCAT_ARGUMENT, |
| 106 | &some_double_variable, "Set some random double variable"); |
| 107 | arg.AddArgument("--some-string-variable", argT::EQUAL_ARGUMENT, |
| 108 | &some_string_variable, "Set some random string variable"); |
| 109 | arg.AddArgument("--some-stl-string-variable", argT::EQUAL_ARGUMENT, |
| 110 | &some_stl_string_variable, |
| 111 | "Set some random stl string variable"); |
| 112 | arg.AddArgument("--some-bool-variable", argT::EQUAL_ARGUMENT, |
| 113 | &some_bool_variable, "Set some random bool variable"); |
| 114 | arg.AddArgument("--another-bool-variable", argT::NO_ARGUMENT, |
| 115 | &some_bool_variable1, "Set some random bool variable 1"); |
| 116 | arg.AddBooleanArgument("--set-bool-arg1", &bool_arg1, |
| 117 | "Test AddBooleanArgument 1"); |
| 118 | arg.AddBooleanArgument("--set-bool-arg2", &bool_arg2, |
| 119 | "Test AddBooleanArgument 2"); |
nothing calls this directly
no test coverage detected
searching dependent graphs…