Skip to content

Commit 608415d

Browse files
committed
[tests] Unit tests for network-specific config entries
1 parent 68797e2 commit 608415d

File tree

1 file changed

+34
-3
lines changed

1 file changed

+34
-3
lines changed

src/test/util_tests.cpp

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@ BOOST_AUTO_TEST_CASE(util_FormatISO8601Time)
187187

188188
struct TestArgsManager : public ArgsManager
189189
{
190+
TestArgsManager() { m_network_only_args.clear(); }
190191
std::map<std::string, std::vector<std::string> >& GetOverrideArgs() { return m_override_args; }
191192
std::map<std::string, std::vector<std::string> >& GetConfigArgs() { return m_config_args; }
192193
void ReadConfigString(const std::string str_config)
@@ -198,6 +199,11 @@ struct TestArgsManager : public ArgsManager
198199
}
199200
ReadConfigStream(streamConfig);
200201
}
202+
void SetNetworkOnlyArg(const std::string arg)
203+
{
204+
LOCK(cs_args);
205+
m_network_only_args.insert(arg);
206+
}
201207
};
202208

203209
BOOST_AUTO_TEST_CASE(util_ParseParameters)
@@ -327,6 +333,7 @@ BOOST_AUTO_TEST_CASE(util_ReadConfigStream)
327333
"\n"
328334
"[sec1]\n"
329335
"ccc=extend2\n"
336+
"d=eee\n"
330337
"h=1\n"
331338
"[sec2]\n"
332339
"ccc=extend3\n"
@@ -336,10 +343,10 @@ BOOST_AUTO_TEST_CASE(util_ReadConfigStream)
336343

337344
test_args.ReadConfigString(str_config);
338345
// expectation: a, b, ccc, d, fff, ggg, h, i end up in map
339-
// so do sec1.ccc, sec1.h, sec2.ccc, sec2.iii
346+
// so do sec1.ccc, sec1.d, sec1.h, sec2.ccc, sec2.iii
340347

341348
BOOST_CHECK(test_args.GetOverrideArgs().empty());
342-
BOOST_CHECK(test_args.GetConfigArgs().size() == 12);
349+
BOOST_CHECK(test_args.GetConfigArgs().size() == 13);
343350

344351
BOOST_CHECK(test_args.GetConfigArgs().count("-a")
345352
&& test_args.GetConfigArgs().count("-b")
@@ -429,12 +436,13 @@ BOOST_AUTO_TEST_CASE(util_ReadConfigStream)
429436
// same as original
430437
BOOST_CHECK(test_args.GetArg("-a", "xxx") == ""
431438
&& test_args.GetArg("-b", "xxx") == "1"
432-
&& test_args.GetArg("-d", "xxx") == "e"
433439
&& test_args.GetArg("-fff", "xxx") == "0"
434440
&& test_args.GetArg("-ggg", "xxx") == "1"
435441
&& test_args.GetArg("-zzz", "xxx") == "xxx"
436442
&& test_args.GetArg("-iii", "xxx") == "xxx"
437443
);
444+
// d is overridden
445+
BOOST_CHECK(test_args.GetArg("-d", "xxx") == "eee");
438446
// section-specific setting
439447
BOOST_CHECK(test_args.GetArg("-h", "xxx") == "1");
440448
// section takes priority for multiple values
@@ -463,6 +471,29 @@ BOOST_AUTO_TEST_CASE(util_ReadConfigStream)
463471
const std::vector<std::string> sec2_ccc_expected = {"extend3","argument","multiple"};
464472
const auto& sec2_ccc_res = test_args.GetArgs("-ccc");
465473
BOOST_CHECK_EQUAL_COLLECTIONS(sec2_ccc_res.begin(), sec2_ccc_res.end(), sec2_ccc_expected.begin(), sec2_ccc_expected.end());
474+
475+
// Test section only options
476+
477+
test_args.SetNetworkOnlyArg("-d");
478+
test_args.SetNetworkOnlyArg("-ccc");
479+
test_args.SetNetworkOnlyArg("-h");
480+
481+
test_args.SelectConfigNetwork(CBaseChainParams::MAIN);
482+
BOOST_CHECK(test_args.GetArg("-d", "xxx") == "e");
483+
BOOST_CHECK(test_args.GetArgs("-ccc").size() == 2);
484+
BOOST_CHECK(test_args.GetArg("-h", "xxx") == "0");
485+
486+
test_args.SelectConfigNetwork("sec1");
487+
BOOST_CHECK(test_args.GetArg("-d", "xxx") == "eee");
488+
BOOST_CHECK(test_args.GetArgs("-d").size() == 1);
489+
BOOST_CHECK(test_args.GetArgs("-ccc").size() == 2);
490+
BOOST_CHECK(test_args.GetArg("-h", "xxx") == "1");
491+
492+
test_args.SelectConfigNetwork("sec2");
493+
BOOST_CHECK(test_args.GetArg("-d", "xxx") == "xxx");
494+
BOOST_CHECK(test_args.GetArgs("-d").size() == 0);
495+
BOOST_CHECK(test_args.GetArgs("-ccc").size() == 1);
496+
BOOST_CHECK(test_args.GetArg("-h", "xxx") == "0");
466497
}
467498

468499
BOOST_AUTO_TEST_CASE(util_GetArg)

0 commit comments

Comments
 (0)