tests/test-progress.t
changeset 13141 6cfe17c19ba2
parent 12942 05fffd665170
child 13142 e9827c85c50b
equal deleted inserted replaced
13140:217ae7d5c8ee 13141:6cfe17c19ba2
    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
    94   loop [ <=>                                                                ] 5/4
    89   loop [ <=>                                                                ] 5/4
    95                                                                                   \r (esc)
    90                                                                                   \r (esc)
    96 
    91 
    97 test immediate progress completion
    92 test immediate progress completion
    98 
    93 
    99   $ hg -y loop 0 2>&1 | python filtercr.py
    94   $ hg -y loop 0 2>&1 | $TESTDIR/filtercr.py
   100   
    95