##// END OF EJS Templates
changegroup: move file matcher from narrow extension...
changegroup: move file matcher from narrow extension Sparse changegroup generation requires the use of a matcher to filter which files are relevant. This commit moves the file matcher from the narrow extension to core and updates the narrow extension to use it. I'm not sure why the narrow extension was storing the matcher as a callable that resolved to a matcher. So I changed it to be a simple matcher instance. In addition, code from narrow to intersect the matcher with the local narrow spec is now performed automatically when the changegroup packer is created. If a matcher is not passed into getbundler() an alwaysmatcher() is assumed. This ensures that a matcher is always defined for all operations. Differential Revision: https://phab.mercurial-scm.org/D4011

File last commit:

r29828:79add5a4 default
r38818:9c057acb default
Show More
test-lrucachedict.py
77 lines | 1.9 KiB | text/x-python | PythonLexer
/ tests / test-lrucachedict.py
Pulkit Goyal
tests: make test-lrucachedict use print_function
r28931 from __future__ import absolute_import, print_function
Pulkit Goyal
tests: make test-lrucachedict use absolute_import
r28930
from mercurial import (
util,
)
Siddharth Agarwal
util: add an LRU cache dict...
r18603
Eric Sumner
lrucachedict: add copy method...
r27576 def printifpresent(d, xs, name='d'):
Siddharth Agarwal
util: add an LRU cache dict...
r18603 for x in xs:
present = x in d
Pulkit Goyal
tests: make test-lrucachedict use print_function
r28931 print("'%s' in %s: %s" % (x, name, present))
Siddharth Agarwal
util: add an LRU cache dict...
r18603 if present:
Pulkit Goyal
tests: make test-lrucachedict use print_function
r28931 print("%s['%s']: %s" % (name, x, d[x]))
Siddharth Agarwal
util: add an LRU cache dict...
r18603
def test_lrucachedict():
d = util.lrucachedict(4)
d['a'] = 'va'
d['b'] = 'vb'
d['c'] = 'vc'
d['d'] = 'vd'
# all of these should be present
printifpresent(d, ['a', 'b', 'c', 'd'])
# 'a' should be dropped because it was least recently used
d['e'] = 've'
printifpresent(d, ['a', 'b', 'c', 'd', 'e'])
Gregory Szorc
util: properly implement lrucachedict.get()...
r29828 assert d.get('a') is None
assert d.get('e') == 've'
Siddharth Agarwal
util: add an LRU cache dict...
r18603 # touch entries in some order (get or set).
d['e']
d['c'] = 'vc2'
d['d']
d['b'] = 'vb2'
# 'e' should be dropped now
d['f'] = 'vf'
printifpresent(d, ['b', 'c', 'd', 'e', 'f'])
Siddharth Agarwal
lrucachedict: implement clear()
r19710 d.clear()
printifpresent(d, ['b', 'c', 'd', 'e', 'f'])
Gregory Szorc
util: reimplement lrucachedict...
r27371 # Now test dicts that aren't full.
d = util.lrucachedict(4)
d['a'] = 1
d['b'] = 2
d['a']
d['b']
printifpresent(d, ['a', 'b'])
Eric Sumner
lrucachedict: add copy method...
r27576 # test copy method
d = util.lrucachedict(4)
d['a'] = 'va3'
d['b'] = 'vb3'
d['c'] = 'vc3'
d['d'] = 'vd3'
dc = d.copy()
# all of these should be present
Pulkit Goyal
tests: make test-lrucachedict use print_function
r28931 print("\nAll of these should be present:")
Eric Sumner
lrucachedict: add copy method...
r27576 printifpresent(dc, ['a', 'b', 'c', 'd'], 'dc')
# 'a' should be dropped because it was least recently used
Pulkit Goyal
tests: make test-lrucachedict use print_function
r28931 print("\nAll of these except 'a' should be present:")
Eric Sumner
lrucachedict: add copy method...
r27576 dc['e'] = 've3'
printifpresent(dc, ['a', 'b', 'c', 'd', 'e'], 'dc')
# contents and order of original dict should remain unchanged
Pulkit Goyal
tests: make test-lrucachedict use print_function
r28931 print("\nThese should be in reverse alphabetical order and read 'v?3':")
Eric Sumner
lrucachedict: add copy method...
r27576 dc['b'] = 'vb3_new'
for k in list(iter(d)):
Pulkit Goyal
tests: make test-lrucachedict use print_function
r28931 print("d['%s']: %s" % (k, d[k]))
Eric Sumner
lrucachedict: add copy method...
r27576
Siddharth Agarwal
util: add an LRU cache dict...
r18603 if __name__ == '__main__':
test_lrucachedict()