Merge bitcoin/bitcoin#31767: logging: Ensure -debug=0/none behaves consistently with -nodebug

7afeaa2469 test: `-debug=0` and `-debug=none` behave similarly to `-nodebug` (Daniela Brozzoni)
a8fedb36a7 logging: Ensure -debug=0/none behaves consistently with -nodebug (Daniela Brozzoni)
d39d521d86 test: `-nodebug` clears previously set debug options (Daniela Brozzoni)

Pull request description:

  Previously, -nodebug cleared all prior -debug configurations in the command line while allowing subsequent debug options to be applied.
  However, -debug=0 and -debug=none completely disabled debugging, even for categories specified afterward.

  This commit ensures consistency by making -debug=0 and -debug=none behave like -nodebug: they now clear previously set debug configurations but do not disable debugging for categories specified later.

  See https://github.com/bitcoin/bitcoin/pull/30529#discussion_r1930956563

ACKs for top commit:
  hodlinator:
    re-ACK 7afeaa2469
  ryanofsky:
    Code review ACK 7afeaa2469. Nicely implemented change with test and release notes, and I like how the test is implemented as the first commit.
  maflcko:
    review ACK 7afeaa2469 👡

Tree-SHA512: c69b17ff10da6c88636bd01918366dd408832e70f2d0a7b951e9619089e89c39282db70398ba2542d3aa69a2fe6b6a0a01638b3225aff79d234d84d3067f2caa
This commit is contained in:
Ryan Ofsky
2025-02-13 07:59:26 -05:00
3 changed files with 27 additions and 7 deletions

View File

@@ -99,6 +99,21 @@ class LoggingTest(BitcoinTestFramework):
match=ErrorMatch.PARTIAL_REGEX,
)
self.log.info("Test that -nodebug,-debug=0,-debug=none clear previously specified debug options")
disable_debug_options = [
'-debug=0',
'-debug=none',
'-nodebug'
]
for disable_debug_opt in disable_debug_options:
# Every category before disable_debug_opt will be ignored, including the invalid 'abc'
self.restart_node(0, ['-debug=http', '-debug=abc', disable_debug_opt, '-debug=rpc', '-debug=net'])
logging = self.nodes[0].logging()
assert not logging['http']
assert 'abc' not in logging
assert logging['rpc']
assert logging['net']
if __name__ == '__main__':
LoggingTest(__file__).main()