Skip to content

Commit e6f649c

Browse files
committed
test: Make tests arg type specific
1 parent b70cc5d commit e6f649c

File tree

2 files changed

+53
-21
lines changed

2 files changed

+53
-21
lines changed

src/test/getarg_tests.cpp

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <test/setup_common.h>
88

99
#include <string>
10+
#include <utility>
1011
#include <vector>
1112

1213
#include <boost/algorithm/string.hpp>
@@ -32,17 +33,18 @@ static void ResetArgs(const std::string& strArg)
3233
BOOST_CHECK(gArgs.ParseParameters(vecChar.size(), vecChar.data(), error));
3334
}
3435

35-
static void SetupArgs(const std::vector<std::string>& args)
36+
static void SetupArgs(const std::vector<std::pair<std::string, unsigned int>>& args)
3637
{
3738
gArgs.ClearArgs();
38-
for (const std::string& arg : args) {
39-
gArgs.AddArg(arg, "", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
39+
for (const auto& arg : args) {
40+
gArgs.AddArg(arg.first, "", arg.second, OptionsCategory::OPTIONS);
4041
}
4142
}
4243

4344
BOOST_AUTO_TEST_CASE(boolarg)
4445
{
45-
SetupArgs({"-foo"});
46+
const auto foo = std::make_pair("-foo", ArgsManager::ALLOW_BOOL);
47+
SetupArgs({foo});
4648
ResetArgs("-foo");
4749
BOOST_CHECK(gArgs.GetBoolArg("-foo", false));
4850
BOOST_CHECK(gArgs.GetBoolArg("-foo", true));
@@ -95,7 +97,9 @@ BOOST_AUTO_TEST_CASE(boolarg)
9597

9698
BOOST_AUTO_TEST_CASE(stringarg)
9799
{
98-
SetupArgs({"-foo", "-bar"});
100+
const auto foo = std::make_pair("-foo", ArgsManager::ALLOW_STRING);
101+
const auto bar = std::make_pair("-bar", ArgsManager::ALLOW_STRING);
102+
SetupArgs({foo, bar});
99103
ResetArgs("");
100104
BOOST_CHECK_EQUAL(gArgs.GetArg("-foo", ""), "");
101105
BOOST_CHECK_EQUAL(gArgs.GetArg("-foo", "eleven"), "eleven");
@@ -120,7 +124,9 @@ BOOST_AUTO_TEST_CASE(stringarg)
120124

121125
BOOST_AUTO_TEST_CASE(intarg)
122126
{
123-
SetupArgs({"-foo", "-bar"});
127+
const auto foo = std::make_pair("-foo", ArgsManager::ALLOW_INT);
128+
const auto bar = std::make_pair("-bar", ArgsManager::ALLOW_INT);
129+
SetupArgs({foo, bar});
124130
ResetArgs("");
125131
BOOST_CHECK_EQUAL(gArgs.GetArg("-foo", 11), 11);
126132
BOOST_CHECK_EQUAL(gArgs.GetArg("-foo", 0), 0);
@@ -140,7 +146,9 @@ BOOST_AUTO_TEST_CASE(intarg)
140146

141147
BOOST_AUTO_TEST_CASE(doubledash)
142148
{
143-
SetupArgs({"-foo", "-bar"});
149+
const auto foo = std::make_pair("-foo", ArgsManager::ALLOW_ANY);
150+
const auto bar = std::make_pair("-bar", ArgsManager::ALLOW_ANY);
151+
SetupArgs({foo, bar});
144152
ResetArgs("--foo");
145153
BOOST_CHECK_EQUAL(gArgs.GetBoolArg("-foo", false), true);
146154

@@ -151,7 +159,9 @@ BOOST_AUTO_TEST_CASE(doubledash)
151159

152160
BOOST_AUTO_TEST_CASE(boolargno)
153161
{
154-
SetupArgs({"-foo", "-bar"});
162+
const auto foo = std::make_pair("-foo", ArgsManager::ALLOW_BOOL);
163+
const auto bar = std::make_pair("-bar", ArgsManager::ALLOW_BOOL);
164+
SetupArgs({foo, bar});
155165
ResetArgs("-nofoo");
156166
BOOST_CHECK(!gArgs.GetBoolArg("-foo", true));
157167
BOOST_CHECK(!gArgs.GetBoolArg("-foo", false));

src/test/util_tests.cpp

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
#include <stdint.h>
1616
#include <thread>
17+
#include <utility>
1718
#include <vector>
1819
#ifndef WIN32
1920
#include <signal.h>
@@ -154,10 +155,10 @@ struct TestArgsManager : public ArgsManager
154155
LOCK(cs_args);
155156
m_network_only_args.insert(arg);
156157
}
157-
void SetupArgs(int argv, const char* args[])
158+
void SetupArgs(const std::vector<std::pair<std::string, unsigned int>>& args)
158159
{
159-
for (int i = 0; i < argv; ++i) {
160-
AddArg(args[i], "", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
160+
for (const auto& arg : args) {
161+
AddArg(arg.first, "", arg.second, OptionsCategory::OPTIONS);
161162
}
162163
}
163164
using ArgsManager::ReadConfigStream;
@@ -168,11 +169,15 @@ struct TestArgsManager : public ArgsManager
168169
BOOST_AUTO_TEST_CASE(util_ParseParameters)
169170
{
170171
TestArgsManager testArgs;
171-
const char* avail_args[] = {"-a", "-b", "-ccc", "-d"};
172+
const auto a = std::make_pair("-a", ArgsManager::ALLOW_ANY);
173+
const auto b = std::make_pair("-b", ArgsManager::ALLOW_ANY);
174+
const auto ccc = std::make_pair("-ccc", ArgsManager::ALLOW_ANY);
175+
const auto d = std::make_pair("-d", ArgsManager::ALLOW_ANY);
176+
172177
const char *argv_test[] = {"-ignored", "-a", "-b", "-ccc=argument", "-ccc=multiple", "f", "-d=e"};
173178

174179
std::string error;
175-
testArgs.SetupArgs(4, avail_args);
180+
testArgs.SetupArgs({a, b, ccc, d});
176181
BOOST_CHECK(testArgs.ParseParameters(0, (char**)argv_test, error));
177182
BOOST_CHECK(testArgs.GetOverrideArgs().empty() && testArgs.GetConfigArgs().empty());
178183

@@ -200,11 +205,17 @@ BOOST_AUTO_TEST_CASE(util_ParseParameters)
200205
BOOST_AUTO_TEST_CASE(util_GetBoolArg)
201206
{
202207
TestArgsManager testArgs;
203-
const char* avail_args[] = {"-a", "-b", "-c", "-d", "-e", "-f"};
208+
const auto a = std::make_pair("-a", ArgsManager::ALLOW_BOOL);
209+
const auto b = std::make_pair("-b", ArgsManager::ALLOW_BOOL);
210+
const auto c = std::make_pair("-c", ArgsManager::ALLOW_BOOL);
211+
const auto d = std::make_pair("-d", ArgsManager::ALLOW_BOOL);
212+
const auto e = std::make_pair("-e", ArgsManager::ALLOW_BOOL);
213+
const auto f = std::make_pair("-f", ArgsManager::ALLOW_BOOL);
214+
204215
const char *argv_test[] = {
205216
"ignored", "-a", "-nob", "-c=0", "-d=1", "-e=false", "-f=true"};
206217
std::string error;
207-
testArgs.SetupArgs(6, avail_args);
218+
testArgs.SetupArgs({a, b, c, d, e, f});
208219
BOOST_CHECK(testArgs.ParseParameters(7, (char**)argv_test, error));
209220

210221
// Each letter should be set.
@@ -237,9 +248,10 @@ BOOST_AUTO_TEST_CASE(util_GetBoolArgEdgeCases)
237248
TestArgsManager testArgs;
238249

239250
// Params test
240-
const char* avail_args[] = {"-foo", "-bar"};
251+
const auto foo = std::make_pair("-foo", ArgsManager::ALLOW_BOOL);
252+
const auto bar = std::make_pair("-bar", ArgsManager::ALLOW_BOOL);
241253
const char *argv_test[] = {"ignored", "-nofoo", "-foo", "-nobar=0"};
242-
testArgs.SetupArgs(2, avail_args);
254+
testArgs.SetupArgs({foo, bar});
243255
std::string error;
244256
BOOST_CHECK(testArgs.ParseParameters(4, (char**)argv_test, error));
245257

@@ -308,8 +320,17 @@ BOOST_AUTO_TEST_CASE(util_ReadConfigStream)
308320
"iii=2\n";
309321

310322
TestArgsManager test_args;
311-
const char* avail_args[] = {"-a", "-b", "-ccc", "-d", "-e", "-fff", "-ggg", "-h", "-i", "-iii"};
312-
test_args.SetupArgs(10, avail_args);
323+
const auto a = std::make_pair("-a", ArgsManager::ALLOW_BOOL);
324+
const auto b = std::make_pair("-b", ArgsManager::ALLOW_BOOL);
325+
const auto ccc = std::make_pair("-ccc", ArgsManager::ALLOW_STRING);
326+
const auto d = std::make_pair("-d", ArgsManager::ALLOW_STRING);
327+
const auto e = std::make_pair("-e", ArgsManager::ALLOW_ANY);
328+
const auto fff = std::make_pair("-fff", ArgsManager::ALLOW_BOOL);
329+
const auto ggg = std::make_pair("-ggg", ArgsManager::ALLOW_BOOL);
330+
const auto h = std::make_pair("-h", ArgsManager::ALLOW_BOOL);
331+
const auto i = std::make_pair("-i", ArgsManager::ALLOW_BOOL);
332+
const auto iii = std::make_pair("-iii", ArgsManager::ALLOW_INT);
333+
test_args.SetupArgs({a, b, ccc, d, e, fff, ggg, h, i, iii});
313334

314335
test_args.ReadConfigString(str_config);
315336
// expectation: a, b, ccc, d, fff, ggg, h, i end up in map
@@ -507,8 +528,9 @@ BOOST_AUTO_TEST_CASE(util_GetArg)
507528
BOOST_AUTO_TEST_CASE(util_GetChainName)
508529
{
509530
TestArgsManager test_args;
510-
const char* avail_args[] = {"-testnet", "-regtest"};
511-
test_args.SetupArgs(2, avail_args);
531+
const auto testnet = std::make_pair("-testnet", ArgsManager::ALLOW_BOOL);
532+
const auto regtest = std::make_pair("-regtest", ArgsManager::ALLOW_BOOL);
533+
test_args.SetupArgs({testnet, regtest});
512534

513535
const char* argv_testnet[] = {"cmd", "-testnet"};
514536
const char* argv_regtest[] = {"cmd", "-regtest"};

0 commit comments

Comments
 (0)