# HG changeset patch # User Matt Mackall # Date 2010-09-26 18:44:49 # Node ID 2f9ef36577300c553bc7f44491d978ccd6bff232 # Parent bb665db49e32b446228f6958684242ddd271a27c tests: unify test-progress diff --git a/tests/test-progress.out b/tests/test-progress.out deleted file mode 100644 --- a/tests/test-progress.out +++ /dev/null @@ -1,28 +0,0 @@ -% test default params, display nothing because of delay -% test with delay=0, refresh=0 - -loop [ ] 0/3 -loop [=====================> ] 1/3 -loop [============================================> ] 2/3 - % test refresh is taken in account -% test format options 1 - -0/2 loop lo -1/2 loop lo - % test format options 2 - -0/2 p.0 [ ] -1/2 p.1 [=================================> ] - % test format options and indeterminate progress - -0 loop.0 [ <=> ] -1 loop.1 [ <=> ] - % make sure things don't fall over if count > total - -loop [ ] 0/4 -loop [================> ] 1/4 -loop [=================================> ] 2/4 -loop [==================================================> ] 3/4 -loop [===================================================================>] 4/4 -loop [ <=> ] 5/4 - % test immediate progress completion diff --git a/tests/test-progress b/tests/test-progress.t old mode 100755 new mode 100644 rename from tests/test-progress rename to tests/test-progress.t --- a/tests/test-progress +++ b/tests/test-progress.t @@ -1,65 +1,100 @@ -#!/bin/sh - -cat > loop.py <= 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" + $ cat > loop.py < 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 -cmdtable = { - "loop": (loop, [('', 'total', '', 'override for total')], - 'hg loop LOOPS'), -} -EOF + $ cat > filtercr.py < 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) + > print + > EOF -cat > filtercr.py <> $HGRCPATH + $ echo "progress=" >> $HGRCPATH + $ echo "loop=`pwd`/loop.py" >> $HGRCPATH + $ echo "[progress]" >> $HGRCPATH + $ echo "assume-tty=1" >> $HGRCPATH + +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 + +test with delay=0, refresh=0 -echo "[extensions]" >> $HGRCPATH -echo "progress=" >> $HGRCPATH -echo "loop=`pwd`/loop.py" >> $HGRCPATH -echo "[progress]" >> $HGRCPATH -echo "assume-tty=1" >> $HGRCPATH + $ hg -y loop 3 2>&1 | python filtercr.py + + loop [ ] 0/3 + loop [=====================> ] 1/3 + loop [============================================> ] 2/3 + + +test refresh is taken in account -echo '% test default params, display nothing because of delay' -hg -y loop 3 2>&1 | python filtercr.py + $ hg -y --config progress.refresh=100 loop 3 2>&1 | python filtercr.py + + +test format options 1 -echo "delay=0" >> $HGRCPATH -echo "refresh=0" >> $HGRCPATH + $ hg -y --config 'progress.format=number topic item+2' loop 2 2>&1 | python filtercr.py + + 0/2 loop lo + 1/2 loop lo + -echo '% test with delay=0, refresh=0' -hg -y loop 3 2>&1 | python filtercr.py +test format options 2 -echo '% test refresh is taken in account' -hg -y --config progress.refresh=100 loop 3 2>&1 | python filtercr.py + $ hg -y --config 'progress.format=number item-3 bar' loop 2 2>&1 | python filtercr.py + + 0/2 p.0 [ ] + 1/2 p.1 [=================================> ] + -echo '% test format options 1' -hg -y --config 'progress.format=number topic item+2' loop 2 2>&1 | python filtercr.py +test format options and indeterminate progress -echo '% test format options 2' -hg -y --config 'progress.format=number item-3 bar' loop 2 2>&1 | python filtercr.py + $ hg -y --config 'progress.format=number item bar' loop -- -2 2>&1 | python filtercr.py + + 0 loop.0 [ <=> ] + 1 loop.1 [ <=> ] + -echo '% test format options and indeterminate progress' -hg -y --config 'progress.format=number item bar' loop -- -2 2>&1 | python filtercr.py +make sure things don't fall over if count > total -echo "% make sure things don't fall over if count > total" -hg -y loop --total 4 6 2>&1 | python filtercr.py + $ hg -y loop --total 4 6 2>&1 | python filtercr.py + + loop [ ] 0/4 + loop [================> ] 1/4 + loop [=================================> ] 2/4 + loop [==================================================> ] 3/4 + loop [===================================================================>] 4/4 + loop [ <=> ] 5/4 + -echo '% test immediate progress completion' -hg -y loop 0 2>&1 | python filtercr.py +test immediate progress completion + + $ hg -y loop 0 2>&1 | python filtercr.py +