Mercurial > public > mercurial-scm > hg-stable
diff tests/test-progress.t @ 12479:2f9ef3657730
tests: unify test-progress
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sun, 26 Sep 2010 13:44:49 -0500 |
parents | tests/test-progress@83af68e38be3 |
children | 05fffd665170 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-progress.t Sun Sep 26 13:44:49 2010 -0500 @@ -0,0 +1,100 @@ + + $ 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) + > print + > EOF + + $ echo "[extensions]" >> $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 + + $ hg -y loop 3 2>&1 | python filtercr.py + + loop [ ] 0/3 + loop [=====================> ] 1/3 + loop [============================================> ] 2/3 + + +test refresh is taken in account + + $ hg -y --config progress.refresh=100 loop 3 2>&1 | python filtercr.py + + +test format options 1 + + $ hg -y --config 'progress.format=number topic item+2' loop 2 2>&1 | python filtercr.py + + 0/2 loop lo + 1/2 loop lo + + +test format options 2 + + $ hg -y --config 'progress.format=number item-3 bar' loop 2 2>&1 | python filtercr.py + + 0/2 p.0 [ ] + 1/2 p.1 [=================================> ] + + +test format options and indeterminate progress + + $ hg -y --config 'progress.format=number item bar' loop -- -2 2>&1 | python filtercr.py + + 0 loop.0 [ <=> ] + 1 loop.1 [ <=> ] + + +make sure things don't fall over if count > total + + $ 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 + + +test immediate progress completion + + $ hg -y loop 0 2>&1 | python filtercr.py +