Skip to content
Bitcoin Roots

v30.3-roots.1 · Commit 2: [PATCH 02/68] feat(runtime): preserve Roots operator controls on Core 30.3

src/test/getarg_tests.cpp

Before: src/test/getarg_tests.cpp · After: src/test/getarg_tests.cpp

File metadata
index 8734735fd5b0c04832a65a74b80c13e1225d4b9c..277497000086c7e546999ba9140da2288ae4bf77 100644

Download original patch · Release notes

Diff rows 1–61 of 61. Line numbers refer to the original before/after files.

+ Added− RemovedUnmarked lines are context.

Scroll the code area horizontally to read long lines. The two line-number columns refer to before and after.

src/test/getarg_tests.cpp CHANGED
@@ -10,6 +10,8 @@
10
10
  #include <util/strencodings.h>
11
11
 
12
12
  #include <limits>
13
+ #include <map>
14
+ #include <sstream>
13
15
  #include <string>
14
16
  #include <utility>
15
17
  #include <vector>
@@ -104,22 +106,22 @@ BOOST_AUTO_TEST_CASE(setting_args)
104
106
  BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "99");
105
107
  BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "99");
106
108
  BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 99);
107
- BOOST_CHECK_THROW(args.GetBoolArg("foo", true), std::runtime_error);
108
- BOOST_CHECK_THROW(args.GetBoolArg("foo", false), std::runtime_error);
109
+ BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), true);
110
+ BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), true);
109
111
 
110
112
  set_foo(3.25);
111
113
  BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "3.25");
112
114
  BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "3.25");
113
115
  BOOST_CHECK_THROW(args.GetIntArg("foo", 100), std::runtime_error);
114
- BOOST_CHECK_THROW(args.GetBoolArg("foo", true), std::runtime_error);
115
- BOOST_CHECK_THROW(args.GetBoolArg("foo", false), std::runtime_error);
116
+ BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), true);
117
+ BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), true);
116
118
 
117
119
  set_foo(0);
118
120
  BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "0");
119
121
  BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "0");
120
122
  BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 0);
121
- BOOST_CHECK_THROW(args.GetBoolArg("foo", true), std::runtime_error);
122
- BOOST_CHECK_THROW(args.GetBoolArg("foo", false), std::runtime_error);
123
+ BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), false);
124
+ BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), false);
123
125
 
124
126
  set_foo(true);
125
127
  BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "true");
@@ -454,4 +456,25 @@ BOOST_AUTO_TEST_CASE(logargs)
454
456
  BOOST_CHECK(str.find("private42") == std::string::npos);
455
457
  }
456
458
 
459
+ BOOST_AUTO_TEST_CASE(fixed_point_settings)
460
+ {
461
+ BOOST_CHECK(!SettingToFixedPoint(UniValue{}, 3));
462
+ BOOST_CHECK_EQUAL(*SettingToFixedPoint(UniValue{"1.25"}, 3), 1250);
463
+ BOOST_CHECK_EQUAL(*SettingToFixedPoint(UniValue{UniValue::VNUM, "0.001"}, 3), 1);
464
+ BOOST_CHECK_THROW(SettingToFixedPoint(UniValue{"0.0001"}, 3), std::runtime_error);
465
+ BOOST_CHECK_THROW(SettingToFixedPoint(UniValue{"invalid"}, 3), std::runtime_error);
466
+ }
467
+
468
+ BOOST_AUTO_TEST_CASE(rw_config_stream)
469
+ {
470
+ std::istringstream input{"# operator settings\nprune=5\n[regtest]\nprune=1\n"};
471
+ std::ostringstream output;
472
+ ModifyRWConfigStream(input, output, {{"listen", "0"}, {"prune", "550"}});
473
+ BOOST_CHECK_EQUAL(output.str(), "# operator settings\nprune=550\nlisten=0\n[regtest]\nprune=1\n");
474
+
475
+ std::istringstream empty;
476
+ std::ostringstream rejected;
477
+ BOOST_CHECK_THROW(ModifyRWConfigStream(empty, rejected, {{"listen", "0\nprune=0"}}), std::invalid_argument);
478
+ }
479
+
457
480
  BOOST_AUTO_TEST_SUITE_END()