| 93 | }; |
| 94 | |
| 95 | void CheckValue(unsigned int flags, const char* arg, const Expect& expect) |
| 96 | { |
| 97 | TestArgsManager test; |
| 98 | test.SetupArgs({{"-value", flags}}); |
| 99 | const char* argv[] = {"ignored", arg}; |
| 100 | std::string error; |
| 101 | bool success = test.ParseParameters(arg ? 2 : 1, argv, error); |
| 102 | |
| 103 | BOOST_CHECK_EQUAL(test.GetSetting("-value").write(), expect.setting.write()); |
| 104 | auto settings_list = test.GetSettingsList("-value"); |
| 105 | if (expect.setting.isNull() || expect.setting.isFalse()) { |
| 106 | BOOST_CHECK_EQUAL(settings_list.size(), 0U); |
| 107 | } else { |
| 108 | BOOST_CHECK_EQUAL(settings_list.size(), 1U); |
| 109 | BOOST_CHECK_EQUAL(settings_list[0].write(), expect.setting.write()); |
| 110 | } |
| 111 | |
| 112 | if (expect.error) { |
| 113 | BOOST_CHECK(!success); |
| 114 | BOOST_CHECK_NE(error.find(expect.error), std::string::npos); |
| 115 | } else { |
| 116 | BOOST_CHECK(success); |
| 117 | BOOST_CHECK_EQUAL(error, ""); |
| 118 | } |
| 119 | |
| 120 | if (expect.default_string) { |
| 121 | BOOST_CHECK_EQUAL(test.GetArg("-value", "zzzzz"), "zzzzz"); |
| 122 | } else if (expect.string_value) { |
| 123 | BOOST_CHECK_EQUAL(test.GetArg("-value", "zzzzz"), expect.string_value); |
| 124 | } else { |
| 125 | BOOST_CHECK(!success); |
| 126 | } |
| 127 | |
| 128 | if (expect.default_int) { |
| 129 | BOOST_CHECK_EQUAL(test.GetIntArg("-value", 99999), 99999); |
| 130 | } else if (expect.int_value) { |
| 131 | BOOST_CHECK_EQUAL(test.GetIntArg("-value", 99999), *expect.int_value); |
| 132 | } else { |
| 133 | BOOST_CHECK(!success); |
| 134 | } |
| 135 | |
| 136 | if (expect.default_bool) { |
| 137 | BOOST_CHECK_EQUAL(test.GetBoolArg("-value", false), false); |
| 138 | BOOST_CHECK_EQUAL(test.GetBoolArg("-value", true), true); |
| 139 | } else if (expect.bool_value) { |
| 140 | BOOST_CHECK_EQUAL(test.GetBoolArg("-value", false), *expect.bool_value); |
| 141 | BOOST_CHECK_EQUAL(test.GetBoolArg("-value", true), *expect.bool_value); |
| 142 | } else { |
| 143 | BOOST_CHECK(!success); |
| 144 | } |
| 145 | |
| 146 | if (expect.list_value) { |
| 147 | auto l = test.GetArgs("-value"); |
| 148 | BOOST_CHECK_EQUAL_COLLECTIONS(l.begin(), l.end(), expect.list_value->begin(), expect.list_value->end()); |
| 149 | } else { |
| 150 | BOOST_CHECK(!success); |
| 151 | } |
| 152 | } |
nothing calls this directly
no test coverage detected