view tests/test-progress @ 11635:4da35e02b67c

log: do not redefine cachefunc in walkchangerevs The same variable is defined a few blocks earlier. The first phases in walkchangerevs should in fact fill that cache, and allow faster lookups in the last phase. Redefining and overriding this cached function, (knowing that it will be called with the same arguments) defeats the caching purpose.
author Nicolas Dumazet <nicdumz.commits@gmail.com>
date Tue, 20 Jul 2010 14:42:05 +0900
parents 83af68e38be3
children
line wrap: on
line source

#!/bin/sh

cat > loop.py <<EOF
from mercurial import commands

def loop(ui, loops, **opts):
    loops = int(loops)
    total = None
    if loops >= 0:
        total = loops
    if opts.get('total', None):
        total = int(opts.get('total'))
    loops = abs(loops)

    for i in range(loops):
        ui.progress('loop', i, 'loop.%d' % i, 'loopnum', total)
    ui.progress('loop', None, 'loop.done', 'loopnum', total)

commands.norepo += " loop"

cmdtable = {
    "loop": (loop, [('', 'total', '', 'override for total')],
             'hg loop LOOPS'),
}
EOF

cat > filtercr.py <<EOF
import sys, re
for line in sys.stdin:
    line = re.sub(r'\r+[^\n]', lambda m: '\n' + m.group()[-1:], line)
    sys.stdout.write(line)
EOF

echo "[extensions]" >> $HGRCPATH
echo "progress=" >> $HGRCPATH
echo "loop=`pwd`/loop.py" >> $HGRCPATH
echo "[progress]" >> $HGRCPATH
echo "assume-tty=1" >> $HGRCPATH

echo '% test default params, display nothing because of delay'
hg -y loop 3 2>&1 | python filtercr.py

echo "delay=0" >> $HGRCPATH
echo "refresh=0" >> $HGRCPATH

echo '% test with delay=0, refresh=0'
hg -y loop 3 2>&1 | python filtercr.py

echo '% test refresh is taken in account'
hg -y --config progress.refresh=100 loop 3 2>&1 | python filtercr.py

echo '% test format options 1'
hg -y --config 'progress.format=number topic item+2' loop 2 2>&1 | python filtercr.py

echo '% test format options 2'
hg -y --config 'progress.format=number item-3 bar' loop 2 2>&1 | python filtercr.py

echo '% test format options and indeterminate progress'
hg -y --config 'progress.format=number item bar' loop -- -2 2>&1 | python filtercr.py

echo "% make sure things don't fall over if count > total"
hg -y loop --total 4 6 2>&1 | python filtercr.py

echo '% test immediate progress completion'
hg -y loop 0 2>&1 | python filtercr.py