14
14
15
15
#include < stdint.h>
16
16
#include < thread>
17
+ #include < utility>
17
18
#include < vector>
18
19
#ifndef WIN32
19
20
#include < signal.h>
@@ -154,10 +155,10 @@ struct TestArgsManager : public ArgsManager
154
155
LOCK (cs_args);
155
156
m_network_only_args.insert (arg);
156
157
}
157
- void SetupArgs (int argv, const char * args[] )
158
+ void SetupArgs (const std::vector<std::pair<std::string, unsigned int >>& args)
158
159
{
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);
161
162
}
162
163
}
163
164
using ArgsManager::ReadConfigStream;
@@ -168,11 +169,15 @@ struct TestArgsManager : public ArgsManager
168
169
BOOST_AUTO_TEST_CASE (util_ParseParameters)
169
170
{
170
171
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
+
172
177
const char *argv_test[] = {" -ignored" , " -a" , " -b" , " -ccc=argument" , " -ccc=multiple" , " f" , " -d=e" };
173
178
174
179
std::string error;
175
- testArgs.SetupArgs (4 , avail_args );
180
+ testArgs.SetupArgs ({a, b, ccc, d} );
176
181
BOOST_CHECK (testArgs.ParseParameters (0 , (char **)argv_test, error));
177
182
BOOST_CHECK (testArgs.GetOverrideArgs ().empty () && testArgs.GetConfigArgs ().empty ());
178
183
@@ -200,11 +205,17 @@ BOOST_AUTO_TEST_CASE(util_ParseParameters)
200
205
BOOST_AUTO_TEST_CASE (util_GetBoolArg)
201
206
{
202
207
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
+
204
215
const char *argv_test[] = {
205
216
" ignored" , " -a" , " -nob" , " -c=0" , " -d=1" , " -e=false" , " -f=true" };
206
217
std::string error;
207
- testArgs.SetupArgs (6 , avail_args );
218
+ testArgs.SetupArgs ({a, b, c, d, e, f} );
208
219
BOOST_CHECK (testArgs.ParseParameters (7 , (char **)argv_test, error));
209
220
210
221
// Each letter should be set.
@@ -237,9 +248,10 @@ BOOST_AUTO_TEST_CASE(util_GetBoolArgEdgeCases)
237
248
TestArgsManager testArgs;
238
249
239
250
// 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);
241
253
const char *argv_test[] = {" ignored" , " -nofoo" , " -foo" , " -nobar=0" };
242
- testArgs.SetupArgs (2 , avail_args );
254
+ testArgs.SetupArgs ({foo, bar} );
243
255
std::string error;
244
256
BOOST_CHECK (testArgs.ParseParameters (4 , (char **)argv_test, error));
245
257
@@ -308,8 +320,17 @@ BOOST_AUTO_TEST_CASE(util_ReadConfigStream)
308
320
" iii=2\n " ;
309
321
310
322
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});
313
334
314
335
test_args.ReadConfigString (str_config);
315
336
// expectation: a, b, ccc, d, fff, ggg, h, i end up in map
@@ -507,8 +528,9 @@ BOOST_AUTO_TEST_CASE(util_GetArg)
507
528
BOOST_AUTO_TEST_CASE (util_GetChainName)
508
529
{
509
530
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});
512
534
513
535
const char * argv_testnet[] = {" cmd" , " -testnet" };
514
536
const char * argv_regtest[] = {" cmd" , " -regtest" };
0 commit comments