test-progress.t
216 lines
| 7.9 KiB
| text/troff
|
Tads3Lexer
/ tests / test-progress.t
Matt Mackall
|
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')) | ||||
Augie Fackler
|
r14838 | > nested = False | ||
> if opts.get('nested', None): | ||||
> nested = True | ||||
Matt Mackall
|
r12479 | > loops = abs(loops) | ||
> | ||||
> for i in range(loops): | ||||
> ui.progress('loop', i, 'loop.%d' % i, 'loopnum', total) | ||||
Augie Fackler
|
r14838 | > if opts.get('parallel'): | ||
> ui.progress('other', i, 'other.%d' % i, 'othernum', total) | ||||
> if nested: | ||||
> for j in range(2): | ||||
> ui.progress('nested', j, 'nested.%d' % j, 'nestnum', 2) | ||||
> ui.progress('nested', None, 'nested.done', 'nestnum', 2) | ||||
Matt Mackall
|
r12479 | > ui.progress('loop', None, 'loop.done', 'loopnum', total) | ||
> | ||||
> commands.norepo += " loop" | ||||
> | ||||
> cmdtable = { | ||||
Augie Fackler
|
r14838 | > "loop": (loop, [('', 'total', '', 'override for total'), | ||
> ('', 'nested', False, 'show nested results'), | ||||
> ('', 'parallel', False, 'show parallel sets of results'), | ||||
> ], | ||||
Matt Mackall
|
r12479 | > 'hg loop LOOPS'), | ||
> } | ||||
> EOF | ||||
Matt Mackall
|
r15372 | $ cp $HGRCPATH $HGRCPATH.orig | ||
Matt Mackall
|
r12479 | $ echo "[extensions]" >> $HGRCPATH | ||
$ echo "progress=" >> $HGRCPATH | ||||
$ echo "loop=`pwd`/loop.py" >> $HGRCPATH | ||||
$ echo "[progress]" >> $HGRCPATH | ||||
Augie Fackler
|
r13149 | $ echo "format = topic bar number" >> $HGRCPATH | ||
Matt Mackall
|
r12479 | $ echo "assume-tty=1" >> $HGRCPATH | ||
Martin Geisler
|
r13142 | $ echo "width=60" >> $HGRCPATH | ||
Matt Mackall
|
r12479 | |||
test default params, display nothing because of delay | ||||
Thomas Arendsen Hein
|
r16350 | $ hg -y loop 3 2>&1 | "$TESTDIR/filtercr.py" | ||
Matt Mackall
|
r12479 | |||
$ echo "delay=0" >> $HGRCPATH | ||||
$ echo "refresh=0" >> $HGRCPATH | ||||
test with delay=0, refresh=0 | ||||
Thomas Arendsen Hein
|
r16350 | $ hg -y loop 3 2>&1 | "$TESTDIR/filtercr.py" | ||
Matt Mackall
|
r12479 | |||
Martin Geisler
|
r13142 | loop [ ] 0/3 | ||
loop [===============> ] 1/3 | ||||
loop [===============================> ] 2/3 | ||||
\r (esc) | ||||
Matt Mackall
|
r12479 | |||
Augie Fackler
|
r14838 | |||
test nested short-lived topics (which shouldn't display with nestdelay): | ||||
$ hg -y loop 3 --nested 2>&1 | \ | ||||
Thomas Arendsen Hein
|
r16350 | > python "$TESTDIR/filtercr.py" | ||
Augie Fackler
|
r14838 | |||
loop [ ] 0/3 | ||||
loop [===============> ] 1/3 | ||||
loop [===============================> ] 2/3 | ||||
\r (esc) | ||||
$ hg --config progress.changedelay=0 -y loop 3 --nested 2>&1 | \ | ||||
Thomas Arendsen Hein
|
r16350 | > python "$TESTDIR/filtercr.py" | ||
Augie Fackler
|
r14838 | |||
loop [ ] 0/3 | ||||
nested [ ] 0/2 | ||||
nested [======================> ] 1/2 | ||||
loop [===============> ] 1/3 | ||||
nested [ ] 0/2 | ||||
nested [======================> ] 1/2 | ||||
loop [===============================> ] 2/3 | ||||
nested [ ] 0/2 | ||||
nested [======================> ] 1/2 | ||||
\r (esc) | ||||
test two topics being printed in parallel (as when we're doing a local | ||||
--pull clone, where you get the unbundle and bundle progress at the | ||||
same time): | ||||
Thomas Arendsen Hein
|
r16350 | $ hg loop 3 --parallel 2>&1 | python "$TESTDIR/filtercr.py" | ||
Augie Fackler
|
r14838 | |||
loop [ ] 0/3 | ||||
loop [===============> ] 1/3 | ||||
loop [===============================> ] 2/3 | ||||
\r (esc) | ||||
Matt Mackall
|
r12479 | test refresh is taken in account | ||
Thomas Arendsen Hein
|
r16350 | $ hg -y --config progress.refresh=100 loop 3 2>&1 | "$TESTDIR/filtercr.py" | ||
Matt Mackall
|
r12479 | |||
test format options 1 | ||||
Martin Geisler
|
r13141 | $ hg -y --config 'progress.format=number topic item+2' loop 2 2>&1 \ | ||
Thomas Arendsen Hein
|
r16350 | > | "$TESTDIR/filtercr.py" | ||
Matt Mackall
|
r12479 | |||
0/2 loop lo | ||||
1/2 loop lo | ||||
Martin Geisler
|
r13142 | \r (esc) | ||
Matt Mackall
|
r12479 | |||
test format options 2 | ||||
Martin Geisler
|
r13141 | $ hg -y --config 'progress.format=number item-3 bar' loop 2 2>&1 \ | ||
Thomas Arendsen Hein
|
r16350 | > | "$TESTDIR/filtercr.py" | ||
Matt Mackall
|
r12479 | |||
Martin Geisler
|
r13142 | 0/2 p.0 [ ] | ||
1/2 p.1 [=======================> ] | ||||
\r (esc) | ||||
Matt Mackall
|
r12479 | |||
test format options and indeterminate progress | ||||
Martin Geisler
|
r13141 | $ hg -y --config 'progress.format=number item bar' loop -- -2 2>&1 \ | ||
Thomas Arendsen Hein
|
r16350 | > | "$TESTDIR/filtercr.py" | ||
Matt Mackall
|
r12479 | |||
Martin Geisler
|
r13142 | 0 loop.0 [ <=> ] | ||
1 loop.1 [ <=> ] | ||||
\r (esc) | ||||
Matt Mackall
|
r12479 | |||
make sure things don't fall over if count > total | ||||
Thomas Arendsen Hein
|
r16350 | $ hg -y loop --total 4 6 2>&1 | "$TESTDIR/filtercr.py" | ||
Matt Mackall
|
r12479 | |||
Martin Geisler
|
r13142 | loop [ ] 0/4 | ||
loop [===========> ] 1/4 | ||||
loop [=======================> ] 2/4 | ||||
loop [===================================> ] 3/4 | ||||
loop [===============================================>] 4/4 | ||||
loop [ <=> ] 5/4 | ||||
\r (esc) | ||||
Matt Mackall
|
r12479 | |||
test immediate progress completion | ||||
Thomas Arendsen Hein
|
r16350 | $ hg -y loop 0 2>&1 | "$TESTDIR/filtercr.py" | ||
Matt Mackall
|
r12479 | |||
Augie Fackler
|
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 | ||||
Matt Mackall
|
r15372 | $ cp $HGRCPATH.orig $HGRCPATH | ||
$ echo "[extensions]" >> $HGRCPATH | ||||
Augie Fackler
|
r13145 | $ 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 | ||||
Thomas Arendsen Hein
|
r16350 | $ hg -y loop 8 2>&1 | python "$TESTDIR/filtercr.py" | ||
Augie Fackler
|
r13145 | |||
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) | ||||
Thomas Arendsen Hein
|
r16350 | $ MOCKTIME=10000 hg -y loop 4 2>&1 | python "$TESTDIR/filtercr.py" | ||
Augie Fackler
|
r13145 | |||
loop [ ] 0/4 | ||||
loop [=========> ] 1/4 8h21m | ||||
loop [====================> ] 2/4 5h34m | ||||
loop [==============================> ] 3/4 2h47m | ||||
\r (esc) | ||||
Thomas Arendsen Hein
|
r16350 | $ MOCKTIME=1000000 hg -y loop 4 2>&1 | python "$TESTDIR/filtercr.py" | ||
timeless
|
r13236 | |||
loop [ ] 0/4 | ||||
loop [=========> ] 1/4 5w00d | ||||
loop [====================> ] 2/4 3w03d | ||||
loop [=============================> ] 3/4 11d14h | ||||
\r (esc) | ||||
Thomas Arendsen Hein
|
r16350 | $ MOCKTIME=14000000 hg -y loop 4 2>&1 | python "$TESTDIR/filtercr.py" | ||
timeless
|
r13236 | |||
loop [ ] 0/4 | ||||
loop [=========> ] 1/4 1y18w | ||||
loop [===================> ] 2/4 46w03d | ||||
loop [=============================> ] 3/4 23w02d | ||||
\r (esc) | ||||
Augie Fackler
|
r13154 | Time estimates should not fail when there's no end point: | ||
Thomas Arendsen Hein
|
r16350 | $ hg -y loop -- -4 2>&1 | python "$TESTDIR/filtercr.py" | ||
Augie Fackler
|
r13154 | |||
loop [ <=> ] 2 | ||||
loop [ <=> ] 3 | ||||
\r (esc) | ||||