Mercurial > hg
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')) |