Changeset View
Changeset View
Standalone View
Standalone View
src/test/util_tests.cpp
Show First 20 Lines • Show All 164 Lines • ▼ Show 20 Lines | BOOST_AUTO_TEST_CASE(util_FormatISO8601Date) { | ||||
BOOST_CHECK_EQUAL(FormatISO8601Date(1317425777), "2011-09-30"); | BOOST_CHECK_EQUAL(FormatISO8601Date(1317425777), "2011-09-30"); | ||||
} | } | ||||
BOOST_AUTO_TEST_CASE(util_FormatISO8601Time) { | BOOST_AUTO_TEST_CASE(util_FormatISO8601Time) { | ||||
BOOST_CHECK_EQUAL(FormatISO8601Time(1317425777), "23:36:17Z"); | BOOST_CHECK_EQUAL(FormatISO8601Time(1317425777), "23:36:17Z"); | ||||
} | } | ||||
struct TestArgsManager : public ArgsManager { | struct TestArgsManager : public ArgsManager { | ||||
TestArgsManager() { m_network_only_args.clear(); } | |||||
std::map<std::string, std::vector<std::string>> &GetOverrideArgs() { | std::map<std::string, std::vector<std::string>> &GetOverrideArgs() { | ||||
return m_override_args; | return m_override_args; | ||||
} | } | ||||
std::map<std::string, std::vector<std::string>> &GetConfigArgs() { | std::map<std::string, std::vector<std::string>> &GetConfigArgs() { | ||||
return m_config_args; | return m_config_args; | ||||
} | } | ||||
void ReadConfigString(const std::string str_config) { | void ReadConfigString(const std::string str_config) { | ||||
std::istringstream streamConfig(str_config); | std::istringstream streamConfig(str_config); | ||||
{ | { | ||||
LOCK(cs_args); | LOCK(cs_args); | ||||
m_config_args.clear(); | m_config_args.clear(); | ||||
} | } | ||||
ReadConfigStream(streamConfig); | ReadConfigStream(streamConfig); | ||||
} | } | ||||
void SetNetworkOnlyArg(const std::string arg) { | |||||
LOCK(cs_args); | |||||
m_network_only_args.insert(arg); | |||||
} | |||||
}; | }; | ||||
BOOST_AUTO_TEST_CASE(util_ParseParameters) { | BOOST_AUTO_TEST_CASE(util_ParseParameters) { | ||||
TestArgsManager testArgs; | TestArgsManager testArgs; | ||||
const char *argv_test[] = {"-ignored", "-a", "-b", "-ccc=argument", | const char *argv_test[] = {"-ignored", "-a", "-b", "-ccc=argument", | ||||
"-ccc=multiple", "f", "-d=e"}; | "-ccc=multiple", "f", "-d=e"}; | ||||
testArgs.ParseParameters(0, (char **)argv_test); | testArgs.ParseParameters(0, (char **)argv_test); | ||||
▲ Show 20 Lines • Show All 117 Lines • ▼ Show 20 Lines | const char *str_config = "a=\n" | ||||
"h=1\n" | "h=1\n" | ||||
"noh=1\n" | "noh=1\n" | ||||
"noi=1\n" | "noi=1\n" | ||||
"i=1\n" | "i=1\n" | ||||
"sec1.ccc=extend1\n" | "sec1.ccc=extend1\n" | ||||
"\n" | "\n" | ||||
"[sec1]\n" | "[sec1]\n" | ||||
"ccc=extend2\n" | "ccc=extend2\n" | ||||
"d=eee\n" | |||||
"h=1\n" | "h=1\n" | ||||
"[sec2]\n" | "[sec2]\n" | ||||
"ccc=extend3\n" | "ccc=extend3\n" | ||||
"iii=2\n"; | "iii=2\n"; | ||||
TestArgsManager test_args; | TestArgsManager test_args; | ||||
test_args.ReadConfigString(str_config); | test_args.ReadConfigString(str_config); | ||||
// expectation: a, b, ccc, d, fff, ggg, h, i end up in map | // expectation: a, b, ccc, d, fff, ggg, h, i end up in map | ||||
// so do sec1.ccc, sec1.h, sec2.ccc, sec2.iii | // so do sec1.ccc, sec1.d, sec1.h, sec2.ccc, sec2.iii | ||||
BOOST_CHECK(test_args.GetOverrideArgs().empty()); | BOOST_CHECK(test_args.GetOverrideArgs().empty()); | ||||
BOOST_CHECK(test_args.GetConfigArgs().size() == 12); | BOOST_CHECK(test_args.GetConfigArgs().size() == 13); | ||||
BOOST_CHECK(test_args.GetConfigArgs().count("-a") && | BOOST_CHECK(test_args.GetConfigArgs().count("-a") && | ||||
test_args.GetConfigArgs().count("-b") && | test_args.GetConfigArgs().count("-b") && | ||||
test_args.GetConfigArgs().count("-ccc") && | test_args.GetConfigArgs().count("-ccc") && | ||||
test_args.GetConfigArgs().count("-d") && | test_args.GetConfigArgs().count("-d") && | ||||
test_args.GetConfigArgs().count("-fff") && | test_args.GetConfigArgs().count("-fff") && | ||||
test_args.GetConfigArgs().count("-ggg") && | test_args.GetConfigArgs().count("-ggg") && | ||||
test_args.GetConfigArgs().count("-h") && | test_args.GetConfigArgs().count("-h") && | ||||
▲ Show 20 Lines • Show All 65 Lines • ▼ Show 20 Lines | BOOST_AUTO_TEST_CASE(util_ReadConfigStream) { | ||||
BOOST_CHECK(!test_args.IsArgNegated("-zzz")); | BOOST_CHECK(!test_args.IsArgNegated("-zzz")); | ||||
// Test sections work | // Test sections work | ||||
test_args.SelectConfigNetwork("sec1"); | test_args.SelectConfigNetwork("sec1"); | ||||
// same as original | // same as original | ||||
BOOST_CHECK(test_args.GetArg("-a", "xxx") == "" && | BOOST_CHECK(test_args.GetArg("-a", "xxx") == "" && | ||||
test_args.GetArg("-b", "xxx") == "1" && | test_args.GetArg("-b", "xxx") == "1" && | ||||
test_args.GetArg("-d", "xxx") == "e" && | |||||
test_args.GetArg("-fff", "xxx") == "0" && | test_args.GetArg("-fff", "xxx") == "0" && | ||||
test_args.GetArg("-ggg", "xxx") == "1" && | test_args.GetArg("-ggg", "xxx") == "1" && | ||||
test_args.GetArg("-zzz", "xxx") == "xxx" && | test_args.GetArg("-zzz", "xxx") == "xxx" && | ||||
test_args.GetArg("-iii", "xxx") == "xxx"); | test_args.GetArg("-iii", "xxx") == "xxx"); | ||||
// d is overridden | |||||
BOOST_CHECK(test_args.GetArg("-d", "xxx") == "eee"); | |||||
// section-specific setting | // section-specific setting | ||||
BOOST_CHECK(test_args.GetArg("-h", "xxx") == "1"); | BOOST_CHECK(test_args.GetArg("-h", "xxx") == "1"); | ||||
// section takes priority for multiple values | // section takes priority for multiple values | ||||
BOOST_CHECK(test_args.GetArg("-ccc", "xxx") == "extend1"); | BOOST_CHECK(test_args.GetArg("-ccc", "xxx") == "extend1"); | ||||
// check multiple values works | // check multiple values works | ||||
const std::vector<std::string> sec1_ccc_expected = {"extend1", "extend2", | const std::vector<std::string> sec1_ccc_expected = {"extend1", "extend2", | ||||
"argument", "multiple"}; | "argument", "multiple"}; | ||||
const auto &sec1_ccc_res = test_args.GetArgs("-ccc"); | const auto &sec1_ccc_res = test_args.GetArgs("-ccc"); | ||||
Show All 17 Lines | BOOST_AUTO_TEST_CASE(util_ReadConfigStream) { | ||||
BOOST_CHECK(test_args.GetArg("-ccc", "xxx") == "extend3"); | BOOST_CHECK(test_args.GetArg("-ccc", "xxx") == "extend3"); | ||||
// check multiple values works | // check multiple values works | ||||
const std::vector<std::string> sec2_ccc_expected = {"extend3", "argument", | const std::vector<std::string> sec2_ccc_expected = {"extend3", "argument", | ||||
"multiple"}; | "multiple"}; | ||||
const auto &sec2_ccc_res = test_args.GetArgs("-ccc"); | const auto &sec2_ccc_res = test_args.GetArgs("-ccc"); | ||||
BOOST_CHECK_EQUAL_COLLECTIONS(sec2_ccc_res.begin(), sec2_ccc_res.end(), | BOOST_CHECK_EQUAL_COLLECTIONS(sec2_ccc_res.begin(), sec2_ccc_res.end(), | ||||
sec2_ccc_expected.begin(), | sec2_ccc_expected.begin(), | ||||
sec2_ccc_expected.end()); | sec2_ccc_expected.end()); | ||||
// Test section only options | |||||
test_args.SetNetworkOnlyArg("-d"); | |||||
test_args.SetNetworkOnlyArg("-ccc"); | |||||
test_args.SetNetworkOnlyArg("-h"); | |||||
test_args.SelectConfigNetwork(CBaseChainParams::MAIN); | |||||
BOOST_CHECK(test_args.GetArg("-d", "xxx") == "e"); | |||||
BOOST_CHECK(test_args.GetArgs("-ccc").size() == 2); | |||||
BOOST_CHECK(test_args.GetArg("-h", "xxx") == "0"); | |||||
test_args.SelectConfigNetwork("sec1"); | |||||
BOOST_CHECK(test_args.GetArg("-d", "xxx") == "eee"); | |||||
BOOST_CHECK(test_args.GetArgs("-d").size() == 1); | |||||
BOOST_CHECK(test_args.GetArgs("-ccc").size() == 2); | |||||
BOOST_CHECK(test_args.GetArg("-h", "xxx") == "1"); | |||||
test_args.SelectConfigNetwork("sec2"); | |||||
BOOST_CHECK(test_args.GetArg("-d", "xxx") == "xxx"); | |||||
BOOST_CHECK(test_args.GetArgs("-d").size() == 0); | |||||
BOOST_CHECK(test_args.GetArgs("-ccc").size() == 1); | |||||
BOOST_CHECK(test_args.GetArg("-h", "xxx") == "0"); | |||||
} | } | ||||
BOOST_AUTO_TEST_CASE(util_GetArg) { | BOOST_AUTO_TEST_CASE(util_GetArg) { | ||||
TestArgsManager testArgs; | TestArgsManager testArgs; | ||||
testArgs.GetOverrideArgs().clear(); | testArgs.GetOverrideArgs().clear(); | ||||
testArgs.GetOverrideArgs()["strtest1"] = {"string..."}; | testArgs.GetOverrideArgs()["strtest1"] = {"string..."}; | ||||
// strtest2 undefined on purpose | // strtest2 undefined on purpose | ||||
testArgs.GetOverrideArgs()["inttest1"] = {"12345"}; | testArgs.GetOverrideArgs()["inttest1"] = {"12345"}; | ||||
▲ Show 20 Lines • Show All 728 Lines • Show Last 20 Lines |