##// END OF EJS Templates
debian: switch to using debhelper and dh_python2 to build debs...
debian: switch to using debhelper and dh_python2 to build debs This is a much larger commit than I'd like, but I honestly don't see a good way to break it up and leave things working. Summary: We now use debian/rules with debhelper to build our debs. This is much more standard, and means we use dh_python2 to do things like handle leaving .pyc files out of the built debs. The resulting package is split into mercurial and mercurial-common, with the former being the hg stub and all the native .sos, and the latter being basically everything else. builddeb and dockerdeb are updated to use the new system. The old way (using dpkg by hand) breaks with the above changes because debian/control no longer contains a version string (that's now guessed from the phony changelog.) Tests are updated to assert that the right files end up in the right debs.

File last commit:

r25581:79c75459 default
r26148:7f49efca default
Show More
test-progress.t
340 lines | 12.9 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
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)