##// END OF EJS Templates
rebase: don't mark file as removed if missing in parent's manifest (issue2725)
rebase: don't mark file as removed if missing in parent's manifest (issue2725)

File last commit:

r13236:3f299f5d default
r13778:46c30432 default
Show More
test-progress.t
166 lines | 5.6 KiB | text/troff | Tads3Lexer
Matt Mackall
tests: unify test-progress
r12479
$ 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
$ echo "[extensions]" >> $HGRCPATH
$ echo "progress=" >> $HGRCPATH
$ echo "loop=`pwd`/loop.py" >> $HGRCPATH
$ echo "[progress]" >> $HGRCPATH
Augie Fackler
progress using tests: disable time estimates to avoid flakiness
r13149 $ echo "format = topic bar number" >> $HGRCPATH
Matt Mackall
tests: unify test-progress
r12479 $ echo "assume-tty=1" >> $HGRCPATH
Martin Geisler
progress: test setting progress.width...
r13142 $ echo "width=60" >> $HGRCPATH
Matt Mackall
tests: unify test-progress
r12479
test default params, display nothing because of delay
Martin Geisler
tests: add filtercr.py helper for progress tests...
r13141 $ hg -y loop 3 2>&1 | $TESTDIR/filtercr.py
Matt Mackall
tests: unify test-progress
r12479
$ echo "delay=0" >> $HGRCPATH
$ echo "refresh=0" >> $HGRCPATH
test with delay=0, refresh=0
Martin Geisler
tests: add filtercr.py helper for progress tests...
r13141 $ hg -y loop 3 2>&1 | $TESTDIR/filtercr.py
Matt Mackall
tests: unify test-progress
r12479
Martin Geisler
progress: test setting progress.width...
r13142 loop [ ] 0/3
loop [===============> ] 1/3
loop [===============================> ] 2/3
\r (esc)
Matt Mackall
tests: unify test-progress
r12479
test refresh is taken in account
Martin Geisler
tests: add filtercr.py helper for progress tests...
r13141 $ hg -y --config progress.refresh=100 loop 3 2>&1 | $TESTDIR/filtercr.py
Matt Mackall
tests: unify test-progress
r12479
test format options 1
Martin Geisler
tests: add filtercr.py helper for progress tests...
r13141 $ hg -y --config 'progress.format=number topic item+2' loop 2 2>&1 \
> | $TESTDIR/filtercr.py
Matt Mackall
tests: unify test-progress
r12479
0/2 loop lo
1/2 loop lo
Martin Geisler
progress: test setting progress.width...
r13142 \r (esc)
Matt Mackall
tests: unify test-progress
r12479
test format options 2
Martin Geisler
tests: add filtercr.py helper for progress tests...
r13141 $ hg -y --config 'progress.format=number item-3 bar' loop 2 2>&1 \
> | $TESTDIR/filtercr.py
Matt Mackall
tests: unify test-progress
r12479
Martin Geisler
progress: test setting progress.width...
r13142 0/2 p.0 [ ]
1/2 p.1 [=======================> ]
\r (esc)
Matt Mackall
tests: unify test-progress
r12479
test format options and indeterminate progress
Martin Geisler
tests: add filtercr.py helper for progress tests...
r13141 $ hg -y --config 'progress.format=number item bar' loop -- -2 2>&1 \
> | $TESTDIR/filtercr.py
Matt Mackall
tests: unify test-progress
r12479
Martin Geisler
progress: test setting progress.width...
r13142 0 loop.0 [ <=> ]
1 loop.1 [ <=> ]
\r (esc)
Matt Mackall
tests: unify test-progress
r12479
make sure things don't fall over if count > total
Martin Geisler
tests: add filtercr.py helper for progress tests...
r13141 $ hg -y loop --total 4 6 2>&1 | $TESTDIR/filtercr.py
Matt Mackall
tests: unify test-progress
r12479
Martin Geisler
progress: test setting progress.width...
r13142 loop [ ] 0/4
loop [===========> ] 1/4
loop [=======================> ] 2/4
loop [===================================> ] 3/4
loop [===============================================>] 4/4
loop [ <=> ] 5/4
\r (esc)
Matt Mackall
tests: unify test-progress
r12479
test immediate progress completion
Martin Geisler
tests: add filtercr.py helper for progress tests...
r13141 $ hg -y loop 0 2>&1 | $TESTDIR/filtercr.py
Matt Mackall
tests: unify test-progress
r12479
Augie Fackler
test-progress: test completion estimates and progress bar delay
r13145
test delay time estimates
$ cat > mocktime.py <<EOF
> import os
> import time
>
> class mocktime(object):
> def __init__(self, increment):
> self.time = 0
> self.increment = increment
> def __call__(self):
> self.time += self.increment
> return self.time
>
> def uisetup(ui):
> time.time = mocktime(int(os.environ.get('MOCKTIME', '11')))
> EOF
$ echo "[extensions]" > $HGRCPATH
$ echo "mocktime=`pwd`/mocktime.py" >> $HGRCPATH
$ echo "progress=" >> $HGRCPATH
$ echo "loop=`pwd`/loop.py" >> $HGRCPATH
$ echo "[progress]" >> $HGRCPATH
$ echo "assume-tty=1" >> $HGRCPATH
$ echo "delay=25" >> $HGRCPATH
$ echo "width=60" >> $HGRCPATH
$ hg -y loop 8 2>&1 | python $TESTDIR/filtercr.py
loop [=========> ] 2/8 1m07s
loop [===============> ] 3/8 56s
loop [=====================> ] 4/8 45s
loop [==========================> ] 5/8 34s
loop [================================> ] 6/8 23s
loop [=====================================> ] 7/8 12s
\r (esc)
$ MOCKTIME=10000 hg -y loop 4 2>&1 | python $TESTDIR/filtercr.py
loop [ ] 0/4
loop [=========> ] 1/4 8h21m
loop [====================> ] 2/4 5h34m
loop [==============================> ] 3/4 2h47m
\r (esc)
timeless
progress: handle days, weeks and years...
r13236 $ MOCKTIME=1000000 hg -y loop 4 2>&1 | python $TESTDIR/filtercr.py
loop [ ] 0/4
loop [=========> ] 1/4 5w00d
loop [====================> ] 2/4 3w03d
loop [=============================> ] 3/4 11d14h
\r (esc)
$ MOCKTIME=14000000 hg -y loop 4 2>&1 | python $TESTDIR/filtercr.py
loop [ ] 0/4
loop [=========> ] 1/4 1y18w
loop [===================> ] 2/4 46w03d
loop [=============================> ] 3/4 23w02d
\r (esc)
Augie Fackler
progress: don't compute estimate without a total...
r13154 Time estimates should not fail when there's no end point:
$ hg -y loop -- -4 2>&1 | python $TESTDIR/filtercr.py
loop [ <=> ] 2
loop [ <=> ] 3
\r (esc)