mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 12:02:48 +01:00
Merge #19624: Warn on unknown rw_settings
fa48405ef84985e5a9d38ec38e90d16596ea45b5 Warn on unknown rw_settings (MarcoFalke) Pull request description: Log a warning to debug log if unknown settings are encountered. This should probably only ever happen when the software is upgraded. Something similar is already done for the command line and config file. See: * test: Add test for unknown args #16234 (commit fa7dd88b71a1c6641bd450fae29a4a31849b1afd) ACKs for top commit: ryanofsky: Code review ACK fa48405ef84985e5a9d38ec38e90d16596ea45b5. Looks good and I could see this being helpful for debugging. Thanks for taking suggestions Tree-SHA512: cec7d88adf84fa0a842f56b26245157736eb50df433db951e622ea07fd145b899822b24cdab1d8b36c066415ce4f0ef09b493fa8a8d691532822a59c573aafa7
This commit is contained in:
parent
8f0192f3cf
commit
e0ba1fc72d
@ -468,6 +468,14 @@ bool ArgsManager::ReadSettingsFile(std::vector<std::string>* errors)
|
|||||||
SaveErrors(read_errors, errors);
|
SaveErrors(read_errors, errors);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
for (const auto& setting : m_settings.rw_settings) {
|
||||||
|
std::string section;
|
||||||
|
std::string key = setting.first;
|
||||||
|
(void)InterpretOption(section, key, /* value */ {}); // Split setting key into section and argname
|
||||||
|
if (!GetArgFlags('-' + key)) {
|
||||||
|
LogPrintf("Ignoring unknown rw_settings value %s\n", setting.first);
|
||||||
|
}
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,19 +30,25 @@ class SettingsTest(BitcoinTestFramework):
|
|||||||
|
|
||||||
# Assert settings are parsed and logged
|
# Assert settings are parsed and logged
|
||||||
with settings.open("w") as fp:
|
with settings.open("w") as fp:
|
||||||
json.dump({"string": "string", "num": 5, "bool": True, "null": None, "list": [6,7]}, fp)
|
json.dump({"string": "string", "num": 5, "bool": True, "null": None, "list": [6, 7]}, fp)
|
||||||
with node.assert_debug_log(expected_msgs=[
|
with node.assert_debug_log(expected_msgs=[
|
||||||
|
'Ignoring unknown rw_settings value bool',
|
||||||
|
'Ignoring unknown rw_settings value list',
|
||||||
|
'Ignoring unknown rw_settings value null',
|
||||||
|
'Ignoring unknown rw_settings value num',
|
||||||
|
'Ignoring unknown rw_settings value string',
|
||||||
'Setting file arg: string = "string"',
|
'Setting file arg: string = "string"',
|
||||||
'Setting file arg: num = 5',
|
'Setting file arg: num = 5',
|
||||||
'Setting file arg: bool = true',
|
'Setting file arg: bool = true',
|
||||||
'Setting file arg: null = null',
|
'Setting file arg: null = null',
|
||||||
'Setting file arg: list = [6,7]']):
|
'Setting file arg: list = [6,7]',
|
||||||
|
]):
|
||||||
self.start_node(0)
|
self.start_node(0)
|
||||||
self.stop_node(0)
|
self.stop_node(0)
|
||||||
|
|
||||||
# Assert settings are unchanged after shutdown
|
# Assert settings are unchanged after shutdown
|
||||||
with settings.open() as fp:
|
with settings.open() as fp:
|
||||||
assert_equal(json.load(fp), {"string": "string", "num": 5, "bool": True, "null": None, "list": [6,7]})
|
assert_equal(json.load(fp), {"string": "string", "num": 5, "bool": True, "null": None, "list": [6, 7]})
|
||||||
|
|
||||||
# Test invalid json
|
# Test invalid json
|
||||||
with settings.open("w") as fp:
|
with settings.open("w") as fp:
|
||||||
|
Loading…
Reference in New Issue
Block a user