##// END OF EJS Templates
rebase: choose default destination the same way as 'hg merge' (BC)...
rebase: choose default destination the same way as 'hg merge' (BC) This changeset finally make 'hg rebase' choose its default destination using the same logic as 'hg merge'. The previous default was "tipmost changeset on the current branch", the new default is "the other head if there is only one". This change has multiple consequences: - Multiple tests which were not rebasing anything (rebasing from tipmost head) are now rebasing on the other "lower" branch. This is the expected new behavior. - A test is now explicitly aborting when there is too many heads on the branch. This is the expected behavior. - We gained a better detection of the "nothing to rebase" case while performing 'hg pull --rebase' so the message have been updated. Making clearer than an update was performed and why. This is beneficial side-effect. - Rebasing from an active bookmark will behave the same as 'hg merge' from a bookmark.

File last commit:

r28171:2d20d1d2 default
r28189:fac3a24b default
Show More
test-progress.t
346 lines | 13.1 KiB | text/troff | Tads3Lexer
Matt Mackall
tests: unify test-progress
r12479
$ cat > loop.py <<EOF
Gregory Szorc
tests: declare commands using decorator
r21254 > from mercurial import cmdutil, commands
Augie Fackler
progress: stop getting stuck in a nested topic during a long inner step...
r19619 > import time
Gregory Szorc
tests: declare commands using decorator
r21254 >
> cmdtable = {}
> command = cmdutil.command(cmdtable)
>
Augie Fackler
progress: stop getting stuck in a nested topic during a long inner step...
r19619 > 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 >
Gregory Szorc
tests: declare commands using decorator
r21254 > @command('loop',
> [('', 'total', '', 'override for total'),
> ('', 'nested', False, 'show nested results'),
> ('', 'parallel', False, 'show parallel sets of results')],
Gregory Szorc
tests: define norepo in command decorator
r21773 > 'hg loop LOOPS',
> norepo=True)
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):
FUJIWARA Katsunori
progress: use 'encoding.trim' to trim items in output line correctly...
r21862 > ui.progress(topiclabel, i, getloopitem(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)
FUJIWARA Katsunori
progress: use 'encoding.trim' to trim output line correctly...
r21859 > ui.progress(topiclabel, None, 'loop.done', 'loopnum', total)
>
> topiclabel = 'loop'
FUJIWARA Katsunori
progress: use 'encoding.trim' to trim items in output line correctly...
r21862 > def getloopitem(i):
> return 'loop.%d' % i
Matt Mackall
tests: unify test-progress
r12479 >
> 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)
Augie Fackler
progress: respect ui.quiet (issue4726)...
r25581 no progress with --quiet
$ hg -y loop 3 --quiet
Augie Fackler
progress: add a changedelay to prevent parallel topics from flapping (issue2698)...
r14838
Matt Anderson
progress: display progress bar when HGPLAINEXCEPT contains "progress"...
r28171 test plain mode exception
$ HGPLAINEXCEPT=progress hg -y loop 1
\r (no-eol) (esc)
loop [ ] 0/1\r (no-eol) (esc)
\r (no-eol) (esc)
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)
FUJIWARA Katsunori
progress: use 'encoding.trim' to trim output line correctly...
r21859
test line trimming by '[progress] width', when progress topic contains
multi-byte characters, of which length of byte sequence and columns in
display are different from each other.
$ cp $HGRCPATH.orig $HGRCPATH
$ cat >> $HGRCPATH <<EOF
> [extensions]
> progress=
> loop=`pwd`/loop.py
> [progress]
> assume-tty = 1
> delay = 0
> refresh = 0
> EOF
$ rm -f loop.pyc
$ cat >> loop.py <<EOF
> # use non-ascii characters as topic label of progress
> # 2 x 4 = 8 columns, but 3 x 4 = 12 bytes
> topiclabel = u'\u3042\u3044\u3046\u3048'.encode('utf-8')
> EOF
$ cat >> $HGRCPATH <<EOF
> [progress]
> format = topic number
> width= 12
> EOF
$ hg --encoding utf-8 -y loop --total 3 3
\r (no-eol) (esc)
\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88 0/3\r (no-eol) (esc)
\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88 1/3\r (no-eol) (esc)
\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88 2/3\r (no-eol) (esc)
\r (no-eol) (esc)
FUJIWARA Katsunori
progress: use 'encoding.colwidth' to get column width of output line correctly...
r21860
test calculation of bar width, when progress topic contains multi-byte
characters, of which length of byte sequence and columns in display
are different from each other.
$ cat >> $HGRCPATH <<EOF
> [progress]
> format = topic bar
> width= 21
> # progwidth should be 9 (= 21 - (8+1) - 3)
> EOF
$ hg --encoding utf-8 -y loop --total 3 3
\r (no-eol) (esc)
\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88 [ ]\r (no-eol) (esc)
\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88 [==> ]\r (no-eol) (esc)
\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88 [=====> ]\r (no-eol) (esc)
\r (no-eol) (esc)
FUJIWARA Katsunori
progress: use 'encoding.trim' to trim items in output line correctly...
r21862
Mads Kiilerich
spelling: fixes from proofreading of spell checker issues
r23139 test trimming progress items, when they contain multi-byte characters,
FUJIWARA Katsunori
progress: use 'encoding.trim' to trim items in output line correctly...
r21862 of which length of byte sequence and columns in display are different
from each other.
$ rm -f loop.pyc
$ cat >> loop.py <<EOF
> # use non-ascii characters as loop items of progress
> loopitems = [
FUJIWARA Katsunori
progress: use 'encoding.colwidth' to get column width of items correctly...
r21863 > u'\u3042\u3044'.encode('utf-8'), # 2 x 2 = 4 columns
FUJIWARA Katsunori
progress: use 'encoding.trim' to trim items in output line correctly...
r21862 > u'\u3042\u3044\u3046'.encode('utf-8'), # 2 x 3 = 6 columns
> u'\u3042\u3044\u3046\u3048'.encode('utf-8'), # 2 x 4 = 8 columns
> ]
> def getloopitem(i):
> return loopitems[i % len(loopitems)]
> EOF
$ cat >> $HGRCPATH <<EOF
> [progress]
> # trim at tail side
> format = item+6
> EOF
FUJIWARA Katsunori
progress: use 'encoding.colwidth' to get column width of items correctly...
r21863 $ hg --encoding utf-8 -y loop --total 3 3
FUJIWARA Katsunori
progress: use 'encoding.trim' to trim items in output line correctly...
r21862 \r (no-eol) (esc)
FUJIWARA Katsunori
progress: use 'encoding.colwidth' to get column width of items correctly...
r21863 \xe3\x81\x82\xe3\x81\x84 \r (no-eol) (esc)
FUJIWARA Katsunori
progress: use 'encoding.trim' to trim items in output line correctly...
r21862 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\r (no-eol) (esc)
\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\r (no-eol) (esc)
\r (no-eol) (esc)
$ cat >> $HGRCPATH <<EOF
> [progress]
> # trim at left side
> format = item-6
> EOF
FUJIWARA Katsunori
progress: use 'encoding.colwidth' to get column width of items correctly...
r21863 $ hg --encoding utf-8 -y loop --total 3 3
FUJIWARA Katsunori
progress: use 'encoding.trim' to trim items in output line correctly...
r21862 \r (no-eol) (esc)
FUJIWARA Katsunori
progress: use 'encoding.colwidth' to get column width of items correctly...
r21863 \xe3\x81\x82\xe3\x81\x84 \r (no-eol) (esc)
FUJIWARA Katsunori
progress: use 'encoding.trim' to trim items in output line correctly...
r21862 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\r (no-eol) (esc)
\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\r (no-eol) (esc)
\r (no-eol) (esc)