##// END OF EJS Templates
dispatch: make "_checkshellalias()" invoke "findcmd()" with "strict=True"...
dispatch: make "_checkshellalias()" invoke "findcmd()" with "strict=True" Before this patch, shell alias may be executed by abbreviated command name unexpectedly, even if abbreviated command name matches also against the command provided by extension. For example, "rebate" shell alias is executed by "hg reba", even if rebase extension (= "rebase" command) is enabled. In this case, "hg reba" should be aborted because of command name ambiguity. This patch makes "_checkshellalias()" invoke "cmdutil.findcmd()" always with "strict=True" (default value). If abbreviated command name matches against only one shell alias even after loading extensions, such shell alias will be executed via "_parse()". This patch doesn't remove "_checkshellalias()" invocation itself, because it may prevent shell alias from loading extensions uselessly.

File last commit:

r19619:4694ccd5 default
r20328:03d345da stable
Show More
test-progress.t
239 lines | 9.9 KiB | text/troff | Tads3Lexer
Matt Mackall
tests: unify test-progress
r12479
$ cat > loop.py <<EOF
> from mercurial import commands
Augie Fackler
progress: stop getting stuck in a nested topic during a long inner step...
r19619 > import time
> class incrementingtime(object):
> def __init__(self):
> self._time = 0.0
> def __call__(self):
> self._time += 0.25
> return self._time
> time.time = incrementingtime()
Matt Mackall
tests: unify test-progress
r12479 >
> 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
progress: add a changedelay to prevent parallel topics from flapping (issue2698)...
r14838 > nested = False
> if opts.get('nested', None):
> nested = True
Matt Mackall
tests: unify test-progress
r12479 > loops = abs(loops)
>
> for i in range(loops):
> ui.progress('loop', i, 'loop.%d' % i, 'loopnum', total)
Augie Fackler
progress: add a changedelay to prevent parallel topics from flapping (issue2698)...
r14838 > if opts.get('parallel'):
> ui.progress('other', i, 'other.%d' % i, 'othernum', total)
> if nested:
Augie Fackler
progress: stop getting stuck in a nested topic during a long inner step...
r19619 > nested_steps = 2
> if i and i % 4 == 0:
> nested_steps = 5
> for j in range(nested_steps):
> ui.progress(
> 'nested', j, 'nested.%d' % j, 'nestnum', nested_steps)
> ui.progress(
> 'nested', None, 'nested.done', 'nestnum', nested_steps)
Matt Mackall
tests: unify test-progress
r12479 > ui.progress('loop', None, 'loop.done', 'loopnum', total)
>
> commands.norepo += " loop"
>
> cmdtable = {
Augie Fackler
progress: add a changedelay to prevent parallel topics from flapping (issue2698)...
r14838 > "loop": (loop, [('', 'total', '', 'override for total'),
> ('', 'nested', False, 'show nested results'),
> ('', 'parallel', False, 'show parallel sets of results'),
> ],
Matt Mackall
tests: unify test-progress
r12479 > 'hg loop LOOPS'),
> }
> EOF
Matt Mackall
check-code: fix issues with finding patterns in unified tests, fix tests...
r15372 $ cp $HGRCPATH $HGRCPATH.orig
Matt Mackall
tests: unify test-progress
r12479 $ echo "[extensions]" >> $HGRCPATH
$ echo "progress=" >> $HGRCPATH
$ echo "loop=`pwd`/loop.py" >> $HGRCPATH
$ echo "[progress]" >> $HGRCPATH
Martin Geisler
test-progress: fix whitespace typo
r16675 $ 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
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 $ hg -y loop 3
Matt Mackall
tests: unify test-progress
r12479 $ echo "delay=0" >> $HGRCPATH
$ echo "refresh=0" >> $HGRCPATH
test with delay=0, refresh=0
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 $ hg -y loop 3
\r (no-eol) (esc)
loop [ ] 0/3\r (no-eol) (esc)
loop [===============> ] 1/3\r (no-eol) (esc)
loop [===============================> ] 2/3\r (no-eol) (esc)
\r (no-eol) (esc)
Matt Mackall
tests: unify test-progress
r12479
Augie Fackler
progress: add a changedelay to prevent parallel topics from flapping (issue2698)...
r14838
test nested short-lived topics (which shouldn't display with nestdelay):
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 $ hg -y loop 3 --nested
\r (no-eol) (esc)
loop [ ] 0/3\r (no-eol) (esc)
loop [===============> ] 1/3\r (no-eol) (esc)
loop [===============================> ] 2/3\r (no-eol) (esc)
\r (no-eol) (esc)
Augie Fackler
progress: add a changedelay to prevent parallel topics from flapping (issue2698)...
r14838
Augie Fackler
progress: stop getting stuck in a nested topic during a long inner step...
r19619 Test nested long-lived topic which has the same name as a short-lived
peer. We shouldn't get stuck showing the short-lived inner steps, and
should go back to skipping the inner steps when the slow nested step
finishes.
$ hg -y loop 7 --nested
\r (no-eol) (esc)
loop [ ] 0/7\r (no-eol) (esc)
loop [=====> ] 1/7\r (no-eol) (esc)
loop [============> ] 2/7\r (no-eol) (esc)
loop [===================> ] 3/7\r (no-eol) (esc)
loop [==========================> ] 4/7\r (no-eol) (esc)
nested [==========================> ] 3/5\r (no-eol) (esc)
nested [===================================> ] 4/5\r (no-eol) (esc)
loop [=================================> ] 5/7\r (no-eol) (esc)
loop [========================================> ] 6/7\r (no-eol) (esc)
\r (no-eol) (esc)
Augie Fackler
progress: add a changedelay to prevent parallel topics from flapping (issue2698)...
r14838
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 $ hg --config progress.changedelay=0 -y loop 3 --nested
\r (no-eol) (esc)
loop [ ] 0/3\r (no-eol) (esc)
nested [ ] 0/2\r (no-eol) (esc)
nested [======================> ] 1/2\r (no-eol) (esc)
loop [===============> ] 1/3\r (no-eol) (esc)
nested [ ] 0/2\r (no-eol) (esc)
nested [======================> ] 1/2\r (no-eol) (esc)
loop [===============================> ] 2/3\r (no-eol) (esc)
nested [ ] 0/2\r (no-eol) (esc)
nested [======================> ] 1/2\r (no-eol) (esc)
\r (no-eol) (esc)
Augie Fackler
progress: add a changedelay to prevent parallel topics from flapping (issue2698)...
r14838
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):
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 $ hg loop 3 --parallel
\r (no-eol) (esc)
loop [ ] 0/3\r (no-eol) (esc)
loop [===============> ] 1/3\r (no-eol) (esc)
loop [===============================> ] 2/3\r (no-eol) (esc)
\r (no-eol) (esc)
Matt Mackall
tests: unify test-progress
r12479 test refresh is taken in account
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 $ hg -y --config progress.refresh=100 loop 3
Matt Mackall
tests: unify test-progress
r12479
test format options 1
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 $ hg -y --config 'progress.format=number topic item+2' loop 2
\r (no-eol) (esc)
0/2 loop lo\r (no-eol) (esc)
1/2 loop lo\r (no-eol) (esc)
\r (no-eol) (esc)
Matt Mackall
tests: unify test-progress
r12479
test format options 2
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 $ hg -y --config 'progress.format=number item-3 bar' loop 2
\r (no-eol) (esc)
0/2 p.0 [ ]\r (no-eol) (esc)
1/2 p.1 [=======================> ]\r (no-eol) (esc)
\r (no-eol) (esc)
Matt Mackall
tests: unify test-progress
r12479
test format options and indeterminate progress
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 $ hg -y --config 'progress.format=number item bar' loop -- -2
\r (no-eol) (esc)
0 loop.0 [ <=> ]\r (no-eol) (esc)
1 loop.1 [ <=> ]\r (no-eol) (esc)
\r (no-eol) (esc)
Matt Mackall
tests: unify test-progress
r12479
make sure things don't fall over if count > total
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 $ hg -y loop --total 4 6
\r (no-eol) (esc)
loop [ ] 0/4\r (no-eol) (esc)
loop [===========> ] 1/4\r (no-eol) (esc)
loop [=======================> ] 2/4\r (no-eol) (esc)
loop [===================================> ] 3/4\r (no-eol) (esc)
loop [===============================================>] 4/4\r (no-eol) (esc)
loop [ <=> ] 5/4\r (no-eol) (esc)
\r (no-eol) (esc)
Matt Mackall
tests: unify test-progress
r12479
test immediate progress completion
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 $ hg -y loop 0
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
Matt Mackall
check-code: fix issues with finding patterns in unified tests, fix tests...
r15372 $ cp $HGRCPATH.orig $HGRCPATH
$ echo "[extensions]" >> $HGRCPATH
Augie Fackler
test-progress: test completion estimates and progress bar delay
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
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 $ hg -y loop 8
\r (no-eol) (esc)
loop [=========> ] 2/8 1m07s\r (no-eol) (esc)
loop [===============> ] 3/8 56s\r (no-eol) (esc)
loop [=====================> ] 4/8 45s\r (no-eol) (esc)
loop [==========================> ] 5/8 34s\r (no-eol) (esc)
loop [================================> ] 6/8 23s\r (no-eol) (esc)
loop [=====================================> ] 7/8 12s\r (no-eol) (esc)
\r (no-eol) (esc)
Augie Fackler
test-progress: test completion estimates and progress bar delay
r13145
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 $ MOCKTIME=10000 hg -y loop 4
\r (no-eol) (esc)
loop [ ] 0/4\r (no-eol) (esc)
loop [=========> ] 1/4 8h21m\r (no-eol) (esc)
loop [====================> ] 2/4 5h34m\r (no-eol) (esc)
loop [==============================> ] 3/4 2h47m\r (no-eol) (esc)
\r (no-eol) (esc)
Augie Fackler
test-progress: test completion estimates and progress bar delay
r13145
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 $ MOCKTIME=1000000 hg -y loop 4
\r (no-eol) (esc)
loop [ ] 0/4\r (no-eol) (esc)
loop [=========> ] 1/4 5w00d\r (no-eol) (esc)
loop [====================> ] 2/4 3w03d\r (no-eol) (esc)
loop [=============================> ] 3/4 11d14h\r (no-eol) (esc)
\r (no-eol) (esc)
timeless
progress: handle days, weeks and years...
r13236
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 $ MOCKTIME=14000000 hg -y loop 4
\r (no-eol) (esc)
loop [ ] 0/4\r (no-eol) (esc)
loop [=========> ] 1/4 1y18w\r (no-eol) (esc)
loop [===================> ] 2/4 46w03d\r (no-eol) (esc)
loop [=============================> ] 3/4 23w02d\r (no-eol) (esc)
\r (no-eol) (esc)
timeless
progress: handle days, weeks and years...
r13236
Augie Fackler
progress: don't compute estimate without a total...
r13154 Time estimates should not fail when there's no end point:
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 $ hg -y loop -- -4
\r (no-eol) (esc)
Durham Goode
blackbox: fix recording exit codes (issue3938)...
r19229 loop [ <=> ] 2\r (no-eol) (esc)
loop [ <=> ] 3\r (no-eol) (esc)
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 \r (no-eol) (esc)