Mercurial > hg
view contrib/debugcmdserver.py @ 39358:57b2a02420cd
tests: add flat manifest case in test-narrow-widen-non-ellipsis.t
We had this test with tree manifest only because the tests were broken and we
were fixing them and maintaing two different cases of broken tests was bit hard.
Now that things work fine, let's add the flat manifest case.
The test shows that things work fine in both cases.
Differential Revision: https://phab.mercurial-scm.org/D4385
author | Pulkit Goyal <pulkit@yandex-team.ru> |
---|---|
date | Mon, 27 Aug 2018 14:08:18 +0300 |
parents | cd03fbd5ab57 |
children | 2372284d9457 |
line wrap: on
line source
#!/usr/bin/env python # # Dumps output generated by Mercurial's command server in a formatted style to a # given file or stderr if '-' is specified. Output is also written in its raw # format to stdout. # # $ ./hg serve --cmds pipe | ./contrib/debugcmdserver.py - # o, 52 -> 'capabilities: getencoding runcommand\nencoding: UTF-8' from __future__ import absolute_import, print_function import struct import sys if len(sys.argv) != 2: print('usage: debugcmdserver.py FILE') sys.exit(1) outputfmt = '>cI' outputfmtsize = struct.calcsize(outputfmt) if sys.argv[1] == '-': log = sys.stderr else: log = open(sys.argv[1], 'a') def read(size): data = sys.stdin.read(size) if not data: raise EOFError sys.stdout.write(data) sys.stdout.flush() return data try: while True: header = read(outputfmtsize) channel, length = struct.unpack(outputfmt, header) log.write('%s, %-4d' % (channel, length)) if channel in 'IL': log.write(' -> waiting for input\n') else: data = read(length) log.write(' -> %r\n' % data) log.flush() except EOFError: pass finally: if log != sys.stderr: log.close()