Mercurial > hg
changeset 18094:8ceabb34f1cb
test-pathencode: compare current pathencoding implementations
We already have two implementations of the pathencoding (C and
Python) and this test can perfectly well be used to probabilistically
test them instead of just wasting CPU cycles and test time.
author | Adrian Buehlmann <adrian@cadifra.com> |
---|---|
date | Wed, 19 Dec 2012 10:02:43 +0100 |
parents | 9c76da468a19 |
children | 8cbe0fed0c1f |
files | tests/test-pathencode.py |
diffstat | 1 files changed, 9 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test-pathencode.py Mon Dec 17 20:51:21 2012 -0800 +++ b/tests/test-pathencode.py Wed Dec 19 10:02:43 2012 +0100 @@ -13,9 +13,6 @@ if sys.version_info[:2] < (2, 6): sys.exit(0) -def hybridencode(path): - return store._hybridencode(path, True) - validchars = set(map(chr, range(0, 256))) alphanum = range(ord('A'), ord('Z')) @@ -157,7 +154,15 @@ def runtests(rng, seed, count): nerrs = 0 for p in genpath(rng, count): - hybridencode(p) + h = store._dothybridencode(p) # uses C implementation, if available + r = store._hybridencode(p, True) # reference implementation in Python + if h != r: + if nerrs == 0: + print >> sys.stderr, 'seed:', hex(seed)[:-1] + print >> sys.stderr, "\np: '%s'" % p.encode("string_escape") + print >> sys.stderr, "h: '%s'" % h.encode("string_escape") + print >> sys.stderr, "r: '%s'" % r.encode("string_escape") + nerrs += 1 return nerrs def main():