21 > "loop": (loop, [('', 'total', '', 'override for total')], |
21 > "loop": (loop, [('', 'total', '', 'override for total')], |
22 > 'hg loop LOOPS'), |
22 > 'hg loop LOOPS'), |
23 > } |
23 > } |
24 > EOF |
24 > EOF |
25 |
25 |
26 $ cat > filtercr.py <<EOF |
|
27 > import sys, re |
|
28 > for line in sys.stdin: |
|
29 > line = re.sub(r'\r+[^\n]', lambda m: '\n' + m.group()[-1:], line) |
|
30 > sys.stdout.write(line) |
|
31 > print |
|
32 > EOF |
|
33 |
|
34 $ echo "[extensions]" >> $HGRCPATH |
26 $ echo "[extensions]" >> $HGRCPATH |
35 $ echo "progress=" >> $HGRCPATH |
27 $ echo "progress=" >> $HGRCPATH |
36 $ echo "loop=`pwd`/loop.py" >> $HGRCPATH |
28 $ echo "loop=`pwd`/loop.py" >> $HGRCPATH |
37 $ echo "[progress]" >> $HGRCPATH |
29 $ echo "[progress]" >> $HGRCPATH |
38 $ echo "assume-tty=1" >> $HGRCPATH |
30 $ echo "assume-tty=1" >> $HGRCPATH |
39 |
31 |
40 test default params, display nothing because of delay |
32 test default params, display nothing because of delay |
41 |
33 |
42 $ hg -y loop 3 2>&1 | python filtercr.py |
34 $ hg -y loop 3 2>&1 | $TESTDIR/filtercr.py |
43 |
35 |
44 $ echo "delay=0" >> $HGRCPATH |
36 $ echo "delay=0" >> $HGRCPATH |
45 $ echo "refresh=0" >> $HGRCPATH |
37 $ echo "refresh=0" >> $HGRCPATH |
46 |
38 |
47 test with delay=0, refresh=0 |
39 test with delay=0, refresh=0 |
48 |
40 |
49 $ hg -y loop 3 2>&1 | python filtercr.py |
41 $ hg -y loop 3 2>&1 | $TESTDIR/filtercr.py |
50 |
42 |
51 loop [ ] 0/3 |
43 loop [ ] 0/3 |
52 loop [=====================> ] 1/3 |
44 loop [=====================> ] 1/3 |
53 loop [============================================> ] 2/3 |
45 loop [============================================> ] 2/3 |
54 \r (esc) |
46 \r (esc) |
55 |
47 |
56 test refresh is taken in account |
48 test refresh is taken in account |
57 |
49 |
58 $ hg -y --config progress.refresh=100 loop 3 2>&1 | python filtercr.py |
50 $ hg -y --config progress.refresh=100 loop 3 2>&1 | $TESTDIR/filtercr.py |
59 |
51 |
60 |
52 |
61 test format options 1 |
53 test format options 1 |
62 |
54 |
63 $ hg -y --config 'progress.format=number topic item+2' loop 2 2>&1 | python filtercr.py |
55 $ hg -y --config 'progress.format=number topic item+2' loop 2 2>&1 \ |
|
56 > | $TESTDIR/filtercr.py |
64 |
57 |
65 0/2 loop lo |
58 0/2 loop lo |
66 1/2 loop lo |
59 1/2 loop lo |
67 \r (esc) |
60 \r (esc) |
68 |
61 |
69 test format options 2 |
62 test format options 2 |
70 |
63 |
71 $ hg -y --config 'progress.format=number item-3 bar' loop 2 2>&1 | python filtercr.py |
64 $ hg -y --config 'progress.format=number item-3 bar' loop 2 2>&1 \ |
|
65 > | $TESTDIR/filtercr.py |
72 |
66 |
73 0/2 p.0 [ ] |
67 0/2 p.0 [ ] |
74 1/2 p.1 [=================================> ] |
68 1/2 p.1 [=================================> ] |
75 \r (esc) |
69 \r (esc) |
76 |
70 |
77 test format options and indeterminate progress |
71 test format options and indeterminate progress |
78 |
72 |
79 $ hg -y --config 'progress.format=number item bar' loop -- -2 2>&1 | python filtercr.py |
73 $ hg -y --config 'progress.format=number item bar' loop -- -2 2>&1 \ |
|
74 > | $TESTDIR/filtercr.py |
80 |
75 |
81 0 loop.0 [ <=> ] |
76 0 loop.0 [ <=> ] |
82 1 loop.1 [ <=> ] |
77 1 loop.1 [ <=> ] |
83 \r (esc) |
78 \r (esc) |
84 |
79 |
85 make sure things don't fall over if count > total |
80 make sure things don't fall over if count > total |
86 |
81 |
87 $ hg -y loop --total 4 6 2>&1 | python filtercr.py |
82 $ hg -y loop --total 4 6 2>&1 | $TESTDIR/filtercr.py |
88 |
83 |
89 loop [ ] 0/4 |
84 loop [ ] 0/4 |
90 loop [================> ] 1/4 |
85 loop [================> ] 1/4 |
91 loop [=================================> ] 2/4 |
86 loop [=================================> ] 2/4 |
92 loop [==================================================> ] 3/4 |
87 loop [==================================================> ] 3/4 |