Mercurial > hg
view tests/test-minifileset.py @ 37012:fc8939825632
debugcommands: support connecting to HTTP peers
Now that we have the plumbing for logging socket activity, let's hook
it up to `hg debugwireproto` so we can collect low-level activity on
sockets.
The new code is a bit incomplete. But it is better than nothing:
`hg debugwireproto` is still heavily evolving.
The added test demonstrates some interesting behavior. For example,
we're calling socket.makefile() and doing I/O on that. TIL. We're also
sending an "Accept-Encoding: identity" request header.
Differential Revision: https://phab.mercurial-scm.org/D2726
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Tue, 13 Mar 2018 10:02:03 -0700 |
parents | 73432eee0ac4 |
children | 2cdae2582d8a |
line wrap: on
line source
from __future__ import absolute_import from __future__ import print_function import os import sys # make it runnable directly without run-tests.py sys.path[0:0] = [os.path.join(os.path.dirname(__file__), '..')] from mercurial import minifileset def check(text, truecases, falsecases): f = minifileset.compile(text) for args in truecases: if not f(*args): print('unexpected: %r should include %r' % (text, args)) for args in falsecases: if f(*args): print('unexpected: %r should exclude %r' % (text, args)) check('all()', [('a.php', 123), ('b.txt', 0)], []) check('none()', [], [('a.php', 123), ('b.txt', 0)]) check('!!!!((!(!!all())))', [], [('a.php', 123), ('b.txt', 0)]) check('"path:a" & (**.b | **.c)', [('a/b.b', 0), ('a/c.c', 0)], [('b/c.c', 0)]) check('(path:a & **.b) | **.c', [('a/b.b', 0), ('a/c.c', 0), ('b/c.c', 0)], []) check('**.bin - size("<20B")', [('b.bin', 21)], [('a.bin', 11), ('b.txt', 21)]) check('!!**.bin or size(">20B") + "path:bin" or !size(">10")', [('a.bin', 11), ('b.txt', 21), ('bin/abc', 11)], [('a.notbin', 11), ('b.txt', 11), ('bin2/abc', 11)]) check('(**.php and size(">10KB")) | **.zip | ("path:bin" & !"path:bin/README") ' ' | size(">1M")', [('a.php', 15000), ('a.zip', 0), ('bin/a', 0), ('bin/README', 1e7)], [('a.php', 5000), ('b.zip2', 0), ('t/bin/a', 0), ('bin/README', 1)])