comparison mercurial/debugcommands.py @ 37044:d3a9036d9ae9

util: don't log low-level I/O calls for HTTP peer `hg debugwireproto` is useful for testing HTTP interactions. Possibly more useful than `get-with-headers.py`. But one thing that makes it annoying for mid-level tests is that it logs all API calls, such as readline(). This makes output - especially headers - overly verbose. This commit teaches our file and socket observers to not log API calls on functions dealing with data. We change the behavior of `hg debugwireproto` to enable this mode by default. --debug can be added to restore the previous behavior. As the test changes demonstrate, this makes tests much easier to read. As a bonus, it also removes some required (glob) over lengths in system call results. One thing that's lacking is knowing which side sent data. But we can fix this in a follow-up once it becomes a problem. Differential Revision: https://phab.mercurial-scm.org/D2842
author Gregory Szorc <gregory.szorc@gmail.com>
date Tue, 13 Mar 2018 11:20:07 -0700
parents b6a7070e7663
children a708e1e4d7a8
comparison
equal deleted inserted replaced
37043:a8d8cdafe29c 37044:d3a9036d9ae9
2837 openerargs = { 2837 openerargs = {
2838 r'loggingfh': ui, 2838 r'loggingfh': ui,
2839 r'loggingname': b's', 2839 r'loggingname': b's',
2840 r'loggingopts': { 2840 r'loggingopts': {
2841 r'logdata': True, 2841 r'logdata': True,
2842 r'logdataapis': False,
2842 }, 2843 },
2843 } 2844 }
2845
2846 if ui.debugflag:
2847 openerargs[r'loggingopts'][r'logdataapis'] = True
2844 2848
2845 opener = urlmod.opener(ui, authinfo, **openerargs) 2849 opener = urlmod.opener(ui, authinfo, **openerargs)
2846 2850
2847 if opts['peer'] == 'raw': 2851 if opts['peer'] == 'raw':
2848 ui.write(_('using raw connection to peer\n')) 2852 ui.write(_('using raw connection to peer\n'))