diff 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
line wrap: on
line diff
--- a/mercurial/debugcommands.py	Wed Mar 21 09:56:41 2018 -0700
+++ b/mercurial/debugcommands.py	Tue Mar 13 11:20:07 2018 -0700
@@ -2839,9 +2839,13 @@
                 r'loggingname': b's',
                 r'loggingopts': {
                     r'logdata': True,
+                    r'logdataapis': False,
                 },
             }
 
+        if ui.debugflag:
+            openerargs[r'loggingopts'][r'logdataapis'] = True
+
         opener = urlmod.opener(ui, authinfo, **openerargs)
 
         if opts['peer'] == 'raw':