tests: unify test-progress
authorMatt Mackall <mpm@selenic.com>
Sun, 26 Sep 2010 13:44:49 -0500
changeset 12479 2f9ef3657730
parent 12478 bb665db49e32
child 12480 4a5048c359d7
tests: unify test-progress
tests/test-progress
tests/test-progress.out
tests/test-progress.t
--- a/tests/test-progress	Sun Sep 26 13:44:49 2010 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-#!/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
--- a/tests/test-progress.out	Sun Sep 26 13:44:49 2010 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -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
--- /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
+