tests/test-progress
author Greg Ward <greg-hg@gerg.ca>
Mon, 15 Feb 2010 15:25:29 -0500
branchstable
changeset 10505 b3311e26f94f
parent 10465 5d7e84e7ac6d
child 10775 c52057614c72
permissions -rwxr-xr-x
merge: fix --preview to show all nodes that will be merged (issue2043). Formerly, it omitted nodes that were not descendants of the least common ancestor of the two merge parents, even though those nodes contribute to the merge. The new algorithm uses revlog.findmissing() instead of ancestor() + nodesbetween().

#!/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
    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, [], '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 "[ui]" >> $HGRCPATH
echo "interactive=1" >> $HGRCPATH

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

echo "[progress]" >> $HGRCPATH
echo "delay=0" >> $HGRCPATH
echo "refresh=0" >> $HGRCPATH

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

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

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

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

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

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