v31.1-roots.1 · Commit 7: [PATCH 07/17] feat(rpc): preserve Roots operator interfaces on v31
test/functional/feature_policy_args.py
Before: test/functional/feature_policy_args.py · After: test/functional/feature_policy_args.py
File metadata
index a7afa797b1b3e7a350f97008586c39037f9a58f4..8823439a0e994a6265c8500613399edd848ba50d 100755
Download original patch · Release notes
Diff rows 1–36 of 36. 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.
test/functional/feature_policy_args.py
CHANGED
|
@@ -132,14 +132,13 @@ class PolicyArgsTest(BitcoinTestFramework):
|
|
|
132
132
|
check_start(["-bytespersigop=20junk", "-datacarriersize=83junk", "-datacarrier=1junk", "-permitbaremultisig=2", "-mempoolfullrbf=1junk"])
|
|
133
133
|
check_start(config="bytespersigop=20junk\ndatacarriersize=83junk\ndatacarrier=1junk\npermitbaremultisig=2\nmempoolfullrbf=1junk\n")
|
|
134
134
|
|
|
135
|
-
# Only malformed dynamic modes are startup-tested. Valid non-off grammar
|
|
136
|
-
# is unit-tested without constructing a mempool: production scheduler
|
|
137
|
-
# wiring is an existing separate runtime gap, not a successful startup.
|
|
135
|
+
# Valid dynamic-mode runtime behavior is covered by mempool_dynamic_dust.
|
|
136
|
+
# This parser test checks malformed effective input at startup.
|
|
138
137
|
config_path.write_text(base_config, encoding="utf-8")
|
|
139
138
|
node.assert_start_raises_init_error(extra_args=["-dustdynamic=target:2junk"], expected_msg="Invalid mode for dustdynamic: failed to parse target block count", match=ErrorMatch.PARTIAL_REGEX)
|
|
140
139
|
rejected_startups += 1
|
|
141
140
|
|
|
142
|
-
self.log.info("JSON settings use the same effective grammar; confrw integration belongs L12")
|
|
141
|
+
self.log.info("JSON settings use the same effective grammar")
|
|
143
142
|
settings_path = node.chain_path / "settings.json"
|
|
144
143
|
for value in [True, False]:
|
|
145
144
|
settings_path.write_text(json.dumps({"subdustfeepenalty": value}), encoding="utf-8")
|
|
@@ -155,6 +154,19 @@ class PolicyArgsTest(BitcoinTestFramework):
|
|
|
155
154
|
check_start(["-subdustfeepenalty=1"])
|
|
156
155
|
settings_path.write_text("{}", encoding="utf-8")
|
|
157
156
|
config_path.write_text(base_config, encoding="utf-8")
|
|
157
|
+
self.log.info("Read/write config preserves first-value selection and strict effective parsing")
|
|
158
|
+
rw_path = node.chain_path / "bitcoin_rw.conf"
|
|
159
|
+
rw_path.write_text("subdustfeepenalty=1\nsubdustfeepenalty=junk\n", encoding="utf-8")
|
|
160
|
+
check_start(config="subdustfeepenalty=junk\n")
|
|
161
|
+
rw_path.write_text("subdustfeepenalty=junk\n", encoding="utf-8")
|
|
162
|
+
check_start(["-subdustfeepenalty=1"])
|
|
163
|
+
node.assert_start_raises_init_error(extra_args=[], expected_msg="Invalid -subdustfeepenalty value: 'junk'", match=ErrorMatch.PARTIAL_REGEX)
|
|
164
|
+
rejected_startups += 1
|
|
165
|
+
rw_path.write_text("nosubdustfeepenalty=junk\n", encoding="utf-8")
|
|
166
|
+
node.assert_start_raises_init_error(extra_args=["-subdustfeepenalty=1"], expected_msg="Invalid -nosubdustfeepenalty value: 'junk'", match=ErrorMatch.PARTIAL_REGEX)
|
|
167
|
+
rejected_startups += 1
|
|
168
|
+
rw_path.unlink()
|
|
169
|
+
|
|
158
170
|
self.log.info("Policy startup cases: %d passed starts, %d expected diagnostic rejections", passed_startups, rejected_startups)
|
|
159
171
|
|
|
160
172
|
|