##// END OF EJS Templates
tests: conditionalize path output for in-memory pyoxidizer resources
tests: conditionalize path output for in-memory pyoxidizer resources

File last commit:

r50721:c84844cd default
r50730:4836705a stable
Show More
test-commandserver.t
1173 lines | 36.3 KiB | text/troff | Tads3Lexer
/ tests / test-commandserver.t
tests: blacklist a handful of test with `rhg` or `chg`...
r48387 #require no-rhg no-chg
XXX-RHG this test hangs if `hg` is really `rhg`. This was hidden by the use of
`alias hg=rhg` by run-tests.py. With such alias removed, this test is revealed
buggy. This need to be resolved sooner than later.
XXX-CHG this test hangs if `hg` is really `chg`. This was hidden by the use of
`alias hg=chg` by run-tests.py. With such alias removed, this test is revealed
buggy. This need to be resolved sooner than later.
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 #if windows
$ PYTHONPATH="$TESTDIR/../contrib;$PYTHONPATH"
#else
$ PYTHONPATH="$TESTDIR/../contrib:$PYTHONPATH"
#endif
$ export PYTHONPATH
Yuya Nishihara
ui: separate option to show prompt echo, enabled only in tests (issue4417)...
r23053 typical client does not want echo-back messages, so test without it:
$ grep -v '^promptecho ' < $HGRCPATH >> $HGRCPATH.new
$ mv $HGRCPATH.new $HGRCPATH
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 $ hg init repo
$ cd repo
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> import os
>>> import sys
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 >>> from hgclient import bprint, check, readchannel, runcommand
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 >>> @check
... def hellomessage(server):
... ch, data = readchannel(server)
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 ... bprint(b'%c, %r' % (ch, data))
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ... # run an arbitrary command to make sure the next thing the server
... # sends isn't part of the hello message
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'id'])
Yuya Nishihara
cmdserver: include pid of server handling requests in hello message...
r23036 o, 'capabilities: getencoding runcommand\nencoding: *\npid: *' (glob)
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand id
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 000000000000 tip
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
>>> from hgclient import check
>>> @check
... def unknowncommand(server):
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... server.stdin.write(b'unknowncommand\n')
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 abort: unknown command unknowncommand
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> from hgclient import check, readchannel, runcommand
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 >>> @check
... def checkruncommand(server):
... # hello block
... readchannel(server)
...
... # no args
... runcommand(server, [])
...
... # global options
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'id', b'--quiet'])
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ...
... # make sure global options don't stick through requests
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'id'])
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ...
... # --config
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'id', b'--config', b'ui.quiet=True'])
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ...
... # make sure --config doesn't stick
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'id'])
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ...
... # negative return code should be masked
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'id', b'-runknown'])
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 Mercurial Distributed SCM
basic commands:
add add the specified files on the next commit
annotate show changeset information by line for each file
clone make a copy of an existing repository
commit commit the specified files or all outstanding changes
diff diff repository (or selected files)
export dump the header and diffs for one or more changesets
forget forget the specified files on the next commit
init create a new repository in the given directory
log show revision history of entire repository or files
anatoly techtonik
merge: be precise about what merged into what in short desc
r23400 merge merge another revision into working directory
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 pull pull changes from the specified source
push push changes to the specified destination
remove remove the specified files on the next commit
serve start stand-alone webserver
status show changed files in the working directory
summary summarize working directory state
update update working directory (or switch revisions)
timeless
help: use single quotes in use warning
r29974 (use 'hg help' for the full list of commands or 'hg -v' for details)
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand id --quiet
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 000000000000
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand id
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 000000000000 tip
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand id --config ui.quiet=True
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 000000000000
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand id
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 000000000000 tip
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand id -runknown
Martin von Zweigbergk
errors: remove trailing "!" from some error messages for consistency...
r46518 abort: unknown revision 'unknown'
Martin von Zweigbergk
errors: raise InputError from revsingle() iff revset provided by the user...
r48930 [10]
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 >>> from hgclient import bprint, check, readchannel
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 >>> @check
... def inputeof(server):
... readchannel(server)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... server.stdin.write(b'runcommand\n')
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ... # close stdin while server is waiting for input
... server.stdin.close()
...
... # server exits with 1 if the pipe closed while reading the command
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 ... bprint(b'server exit code =', b'%d' % server.wait())
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 server exit code = 1
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> from hgclient import check, readchannel, runcommand, stringio
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 >>> @check
... def serverinput(server):
... readchannel(server)
...
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... patch = b"""
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ... # HG changeset patch
... # User test
... # Date 0 0
... # Node ID c103a3dec114d882c98382d684d8af798d09d857
... # Parent 0000000000000000000000000000000000000000
... 1
...
... diff -r 000000000000 -r c103a3dec114 a
... --- /dev/null Thu Jan 01 00:00:00 1970 +0000
... +++ b/a Thu Jan 01 00:00:00 1970 +0000
... @@ -0,0 +1,1 @@
... +1
... """
...
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'import', b'-'], input=stringio(patch))
... runcommand(server, [b'log'])
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand import -
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 applying patch from stdin
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand log
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 changeset: 0:eff892de26ec
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 1
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
Yuya Nishihara
dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options...
r35180 check strict parsing of early options:
>>> import os
>>> from hgclient import check, readchannel, runcommand
>>> os.environ['HGPLAIN'] = '+strictflags'
>>> @check
... def cwd(server):
... readchannel(server)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'log', b'-b', b'--config=alias.log=!echo pwned',
... b'default'])
Yuya Nishihara
dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options...
r35180 *** runcommand log -b --config=alias.log=!echo pwned default
Martin von Zweigbergk
errors: remove trailing "!" from some error messages for consistency...
r46518 abort: unknown revision '--config=alias.log=!echo pwned'
Martin von Zweigbergk
errors: use detailed exit code for RepoLookupError...
r49191 [10]
Yuya Nishihara
dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options...
r35180
Yuya Nishihara
histedit: use ui.fin to read commands from stdin...
r30262 check that "histedit --commands=-" can read rules from the input channel:
Yuya Nishihara
py3: import StringIO from test utility to test-commandserver.t
r40392 >>> from hgclient import check, readchannel, runcommand, stringio
Yuya Nishihara
histedit: use ui.fin to read commands from stdin...
r30262 >>> @check
... def serverinput(server):
... readchannel(server)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... rules = b'pick eff892de26ec\n'
... runcommand(server, [b'histedit', b'0', b'--commands=-',
... b'--config', b'extensions.histedit='],
Yuya Nishihara
py3: import StringIO from test utility to test-commandserver.t
r40392 ... input=stringio(rules))
Yuya Nishihara
histedit: use ui.fin to read commands from stdin...
r30262 *** runcommand histedit 0 --commands=- --config extensions.histedit=
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 check that --cwd doesn't persist between requests:
$ mkdir foo
$ touch foo/bar
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> from hgclient import check, readchannel, runcommand
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 >>> @check
... def cwd(server):
... readchannel(server)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'--cwd', b'foo', b'st', b'bar'])
... runcommand(server, [b'st', b'foo/bar'])
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand --cwd foo st bar
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 ? bar
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand st foo/bar
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 ? foo/bar
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
$ rm foo/bar
check that local configs for the cached repo aren't inherited when -R is used:
$ cat <<EOF >> .hg/hgrc
> [ui]
> foo = bar
> EOF
Gregory Szorc
tests: conditionalize test-commandserver.t based on extra extensions...
r37445 #if no-extraextensions
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> from hgclient import check, readchannel, runcommand, sep
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 >>> @check
... def localhgrc(server):
... readchannel(server)
...
... # the cached repo local hgrc contains ui.foo=bar, so showconfig should
... # show it
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'showconfig'], outfilter=sep)
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ...
... # but not for this repo
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'init', b'foo'])
... runcommand(server, [b'-R', b'foo', b'showconfig', b'ui', b'defaults'])
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand showconfig
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 bundle.mainreporoot=$TESTTMP/repo
run-tests: use a small timeout for chg instance...
r48576 chgserver.idletimeout=60
Pierre-Yves David
devel: rename 'all' to 'all-warnings' (BC)...
r25290 devel.all-warnings=true
devel: activate default-date in tests...
r32410 devel.default-date=0 0
FUJIWARA Katsunori
tests: add extra output for fsmonitor at showconfig
r33426 extensions.fsmonitor= (fsmonitor !)
dirstate-v2: rename the configuration to enable the format...
r49523 format.use-dirstate-v2=1 (dirstate-v2 !)
Matt Harbison
run-tests: set a default largefiles usercache in the default hgrc file...
r23388 largefiles.usercache=$TESTTMP/.cache/largefiles
Matt Harbison
lfs: introduce a user level cache for lfs files...
r35281 lfs.usercache=$TESTTMP/.cache/lfs
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 ui.slash=True
ui.interactive=False
Martin von Zweigbergk
errors: add config that lets user get more detailed exit codes...
r46430 ui.detailed-exit-code=True
Boris Feld
run-tests: define the default merge tool through configuration...
r40506 ui.merge=internal:merge
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 ui.mergemarkers=detailed
Valentin Gatien-Baron
tests: setup dummyssh as the default ssh...
r48731 ui.ssh=* (glob)
run-tests: allow some slack about 'waiting on lock' message...
r46636 ui.timeout.warn=15
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 ui.foo=bar
ui.nontty=true
Jun Wu
runtests: set web.address to localhost...
r31009 web.address=localhost
Jun Wu
runtests: always set web.ipv6...
r31010 web\.ipv6=(?:True|False) (re)
Gregory Szorc
hgweb: allow defining Server response header for HTTP server...
r37027 web.server-header=testing stub value
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand init foo
*** runcommand -R foo showconfig ui defaults
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 ui.slash=True
ui.interactive=False
Martin von Zweigbergk
errors: add config that lets user get more detailed exit codes...
r46430 ui.detailed-exit-code=True
Boris Feld
run-tests: define the default merge tool through configuration...
r40506 ui.merge=internal:merge
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 ui.mergemarkers=detailed
Valentin Gatien-Baron
tests: setup dummyssh as the default ssh...
r48731 ui.ssh=* (glob)
run-tests: allow some slack about 'waiting on lock' message...
r46636 ui.timeout.warn=15
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 ui.nontty=true
Gregory Szorc
tests: conditionalize test-commandserver.t based on extra extensions...
r37445 #endif
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
$ rm -R foo
#if windows
$ PYTHONPATH="$TESTTMP/repo;$PYTHONPATH"
#else
$ PYTHONPATH="$TESTTMP/repo:$PYTHONPATH"
#endif
$ cat <<EOF > hook.py
> import sys
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 > from hgclient import bprint
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 > def hook(**args):
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 > bprint(b'hook talking')
> bprint(b'now try to read something: %r' % sys.stdin.read())
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 > EOF
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> from hgclient import check, readchannel, runcommand, stringio
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 >>> @check
... def hookoutput(server):
... readchannel(server)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'--config',
... b'hooks.pre-identify=python:hook.hook',
... b'id'],
... input=stringio(b'some input'))
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand --config hooks.pre-identify=python:hook.hook id
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 eff892de26ec tip
Yuya Nishihara
procutil: redirect ui.fout to stderr while stdio is protected...
r37237 hook talking
now try to read something: ''
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
Boris Feld
pypy: fix failing test files with Pypy5.6.0...
r33609 Clean hook cached version
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 $ rm hook.py*
Boris Feld
pypy: fix failing test files with Pypy5.6.0...
r33609 $ rm -Rf __pycache__
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
$ echo a >> a
>>> import os
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> from hgclient import check, readchannel, runcommand
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 >>> @check
... def outsidechanges(server):
... readchannel(server)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'status'])
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ... os.system('hg ci -Am2')
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'tip'])
... runcommand(server, [b'status'])
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand status
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 M a
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand tip
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 changeset: 1:d3a0a68be6de
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 2
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand status
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
>>> import os
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 >>> from hgclient import bprint, check, readchannel, runcommand
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 >>> @check
... def bookmarks(server):
... readchannel(server)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'bookmarks'])
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ...
... # changes .hg/bookmarks
... os.system('hg bookmark -i bm1')
... os.system('hg bookmark -i bm2')
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'bookmarks'])
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ...
... # changes .hg/bookmarks.current
... os.system('hg upd bm1 -q')
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'bookmarks'])
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ...
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'bookmarks', b'bm3'])
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ... f = open('a', 'ab')
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... f.write(b'a\n') and None
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ... f.close()
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'commit', b'-Amm'])
... runcommand(server, [b'bookmarks'])
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 ... bprint(b'')
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand bookmarks
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 no bookmarks set
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand bookmarks
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 bm1 1:d3a0a68be6de
bm2 1:d3a0a68be6de
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand bookmarks
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 * bm1 1:d3a0a68be6de
bm2 1:d3a0a68be6de
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand bookmarks bm3
*** runcommand commit -Amm
*** runcommand bookmarks
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 bm1 1:d3a0a68be6de
bm2 1:d3a0a68be6de
* bm3 2:aef17e88f5f0
Augie Fackler
tests: add blank output lines to test-commandserver...
r33922
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
>>> import os
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> from hgclient import check, readchannel, runcommand
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 >>> @check
... def tagscache(server):
... readchannel(server)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'id', b'-t', b'-r', b'0'])
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ... os.system('hg tag -r 0 foo')
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'id', b'-t', b'-r', b'0'])
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand id -t -r 0
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand id -t -r 0
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 foo
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
>>> import os
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> from hgclient import check, readchannel, runcommand
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 >>> @check
... def setphase(server):
... readchannel(server)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'phase', b'-r', b'.'])
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ... os.system('hg phase -r . -p')
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'phase', b'-r', b'.'])
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand phase -r .
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 3: draft
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand phase -r .
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 3: public
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
$ echo a >> a
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 >>> from hgclient import bprint, check, readchannel, runcommand
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 >>> @check
... def rollback(server):
... readchannel(server)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'phase', b'-r', b'.', b'-p'])
... runcommand(server, [b'commit', b'-Am.'])
... runcommand(server, [b'rollback'])
... runcommand(server, [b'phase', b'-r', b'.'])
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 ... bprint(b'')
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand phase -r . -p
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 no phases changed
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand commit -Am.
*** runcommand rollback
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 repository tip rolled back to revision 3 (undo commit)
working directory now based on revision 3
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand phase -r .
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 3: public
Augie Fackler
tests: add blank output lines to test-commandserver...
r33922
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
>>> import os
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> from hgclient import check, readchannel, runcommand
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 >>> @check
... def branch(server):
... readchannel(server)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'branch'])
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ... os.system('hg branch foo')
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'branch'])
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ... os.system('hg branch default')
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand branch
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 default
marked working directory as branch foo
(branches are permanent and global, did you want a bookmark?)
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand branch
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 foo
marked working directory as branch default
(branches are permanent and global, did you want a bookmark?)
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
$ touch .hgignore
>>> import os
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 >>> from hgclient import bprint, check, readchannel, runcommand
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 >>> @check
... def hgignore(server):
... readchannel(server)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'commit', b'-Am.'])
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ... f = open('ignored-file', 'ab')
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... f.write(b'') and None
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ... f.close()
... f = open('.hgignore', 'ab')
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... f.write(b'ignored-file')
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ... f.close()
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'status', b'-i', b'-u'])
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 ... bprint(b'')
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand commit -Am.
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 adding .hgignore
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand status -i -u
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 I ignored-file
Augie Fackler
tests: add blank output lines to test-commandserver...
r33922
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
Yuya Nishihara
localrepo: recreate phasecache if changelog was modified (issue4855)...
r26405 cache of non-public revisions should be invalidated on repository change
(issue4855):
>>> import os
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 >>> from hgclient import bprint, check, readchannel, runcommand
Yuya Nishihara
localrepo: recreate phasecache if changelog was modified (issue4855)...
r26405 >>> @check
... def phasesetscacheaftercommit(server):
... readchannel(server)
... # load _phasecache._phaserevs and _phasesets
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'log', b'-qr', b'draft()'])
Yuya Nishihara
localrepo: recreate phasecache if changelog was modified (issue4855)...
r26405 ... # create draft commits by another process
Pulkit Goyal
py3: use range instead of xrange in tests/test-commandserver.t...
r36303 ... for i in range(5, 7):
Matt Harbison
test-commandserver: generate files with a fixed EOL for test stability...
r26431 ... f = open('a', 'ab')
... f.seek(0, os.SEEK_END)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... f.write(b'a\n') and None
Matt Harbison
test-commandserver: generate files with a fixed EOL for test stability...
r26431 ... f.close()
Yuya Nishihara
localrepo: recreate phasecache if changelog was modified (issue4855)...
r26405 ... os.system('hg commit -Aqm%d' % i)
... # new commits should be listed as draft revisions
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'log', b'-qr', b'draft()'])
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 ... bprint(b'')
Yuya Nishihara
localrepo: recreate phasecache if changelog was modified (issue4855)...
r26405 *** runcommand log -qr draft()
4:7966c8e3734d
*** runcommand log -qr draft()
4:7966c8e3734d
5:41f6602d1c4f
6:10501e202c35
Augie Fackler
tests: add blank output lines to test-commandserver...
r33922
Yuya Nishihara
localrepo: recreate phasecache if changelog was modified (issue4855)...
r26405
>>> import os
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 >>> from hgclient import bprint, check, readchannel, runcommand
Yuya Nishihara
localrepo: recreate phasecache if changelog was modified (issue4855)...
r26405 >>> @check
... def phasesetscacheafterstrip(server):
... readchannel(server)
... # load _phasecache._phaserevs and _phasesets
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'log', b'-qr', b'draft()'])
Yuya Nishihara
localrepo: recreate phasecache if changelog was modified (issue4855)...
r26405 ... # strip cached revisions by another process
... os.system('hg --config extensions.strip= strip -q 5')
... # shouldn't abort by "unknown revision '6'"
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'log', b'-qr', b'draft()'])
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 ... bprint(b'')
Yuya Nishihara
localrepo: recreate phasecache if changelog was modified (issue4855)...
r26405 *** runcommand log -qr draft()
4:7966c8e3734d
5:41f6602d1c4f
6:10501e202c35
*** runcommand log -qr draft()
4:7966c8e3734d
Augie Fackler
tests: add blank output lines to test-commandserver...
r33922
Yuya Nishihara
localrepo: recreate phasecache if changelog was modified (issue4855)...
r26405
cache of phase roots should be invalidated on strip (issue3827):
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 >>> import os
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> from hgclient import check, readchannel, runcommand, sep
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 >>> @check
... def phasecacheafterstrip(server):
... readchannel(server)
...
... # create new head, 5:731265503d86
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'update', b'-C', b'0'])
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ... f = open('a', 'ab')
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... f.write(b'a\n') and None
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ... f.close()
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'commit', b'-Am.', b'a'])
... runcommand(server, [b'log', b'-Gq'])
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ...
... # make it public; draft marker moves to 4:7966c8e3734d
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'phase', b'-p', b'.'])
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ... # load _phasecache.phaseroots
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'phase', b'.'], outfilter=sep)
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ...
... # strip 1::4 outside server
... os.system('hg -q --config extensions.mq= strip 1')
...
... # shouldn't raise "7966c8e3734d: no node!"
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'branches'])
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand update -C 0
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
(leaving bookmark bm3)
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand commit -Am. a
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 created new head
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand log -Gq
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 @ 5:731265503d86
|
| o 4:7966c8e3734d
| |
| o 3:b9b85890c400
| |
| o 2:aef17e88f5f0
| |
| o 1:d3a0a68be6de
|/
o 0:eff892de26ec
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand phase -p .
*** runcommand phase .
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 5: public
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand branches
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 default 1:731265503d86
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
Yuya Nishihara
localrepo: refresh filecache stats only if transaction finished successfully...
r26251 in-memory cache must be reloaded if transaction is aborted. otherwise
changelog and manifest would have invalid node:
$ echo a >> a
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> from hgclient import check, readchannel, runcommand
Yuya Nishihara
localrepo: refresh filecache stats only if transaction finished successfully...
r26251 >>> @check
... def txabort(server):
... readchannel(server)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'commit', b'--config', b'hooks.pretxncommit=false',
... b'-mfoo'])
... runcommand(server, [b'verify'])
Yuya Nishihara
localrepo: refresh filecache stats only if transaction finished successfully...
r26251 *** runcommand commit --config hooks.pretxncommit=false -mfoo
transaction abort!
rollback completed
abort: pretxncommit hook exited with status 1
Martin von Zweigbergk
errors: use exit code 40 for when a hook fails...
r47145 [40]
Yuya Nishihara
localrepo: refresh filecache stats only if transaction finished successfully...
r26251 *** runcommand verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 2 changesets with 2 changes to 1 files
Yuya Nishihara
localrepo: refresh filecache stats only if transaction finished successfully...
r26251 $ hg revert --no-backup -aq
Durham Goode
obsolete: update tests to use obsolete options...
r22955 $ cat >> .hg/hgrc << EOF
> [experimental]
Boris Feld
config: use 'experimental.evolution.create-markers'...
r34867 > evolution.createmarkers=True
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 > EOF
>>> import os
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> from hgclient import check, readchannel, runcommand
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 >>> @check
... def obsolete(server):
... readchannel(server)
...
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'up', b'null'])
... runcommand(server, [b'phase', b'-df', b'tip'])
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ... cmd = 'hg debugobsolete `hg log -r tip --template {node}`'
... if os.name == 'nt':
... cmd = 'sh -c "%s"' % cmd # run in sh, not cmd.exe
... os.system(cmd)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'log', b'--hidden'])
... runcommand(server, [b'log'])
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand up null
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand phase -df tip
debugobsolete: also issue the "new obsmarkers" messsage...
r43163 1 new obsolescence markers
Boris Feld
debugobsolete: also report the number of obsoleted changesets...
r33542 obsoleted 1 changesets
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand log --hidden
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 changeset: 1:731265503d86
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
Boris Feld
obsfate: rename obsfate into obsolete in changeset_printer...
r34901 obsolete: pruned
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 summary: .
changeset: 0:eff892de26ec
bookmark: bm1
bookmark: bm2
bookmark: bm3
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 1
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand log
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 changeset: 0:eff892de26ec
bookmark: bm1
bookmark: bm2
bookmark: bm3
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 1
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
$ cat <<EOF >> .hg/hgrc
> [extensions]
> mq =
> EOF
>>> import os
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> from hgclient import check, readchannel, runcommand
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 >>> @check
... def mqoutsidechanges(server):
... readchannel(server)
...
... # load repo.mq
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'qapplied'])
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ... os.system('hg qnew 0.diff')
... # repo.mq should be invalidated
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'qapplied'])
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ...
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'qpop', b'--all'])
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ... os.system('hg qqueue --create foo')
... # repo.mq should be recreated to point to new queue
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'qqueue', b'--active'])
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand qapplied
*** runcommand qapplied
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 0.diff
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand qpop --all
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 popping 0.diff
patch queue now empty
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand qqueue --active
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 foo
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
Yuya Nishihara
test-commandserver: clean up quoting and location of dbgui extension...
r40627 $ cat <<'EOF' > ../dbgui.py
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 > import os
> import sys
Yuya Nishihara
registrar: move cmdutil.command to registrar module (API)...
r32337 > from mercurial import commands, registrar
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 > cmdtable = {}
Yuya Nishihara
registrar: move cmdutil.command to registrar module (API)...
r32337 > command = registrar.command(cmdtable)
Pulkit Goyal
py3: make sure commands name are bytes in tests
r33097 > @command(b"debuggetpass", norepo=True)
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 > def debuggetpass(ui):
Yuya Nishihara
test-commandserver: clean up quoting and location of dbgui extension...
r40627 > ui.write(b"%s\n" % ui.getpass())
Pulkit Goyal
py3: make sure commands name are bytes in tests
r33097 > @command(b"debugprompt", norepo=True)
Yuya Nishihara
ui: disable echo back of prompt input if ui is set to non-tty purposely...
r22783 > def debugprompt(ui):
Yuya Nishihara
test-commandserver: clean up quoting and location of dbgui extension...
r40627 > ui.write(b"%s\n" % ui.prompt(b"prompt:"))
Yuya Nishihara
commandserver: attach prompt default and choices to message...
r40628 > @command(b"debugpromptchoice", norepo=True)
> def debugpromptchoice(ui):
> msg = b"promptchoice (y/n)? $$ &Yes $$ &No"
> ui.write(b"%d\n" % ui.promptchoice(msg))
Pulkit Goyal
py3: make sure commands name are bytes in tests
r33097 > @command(b"debugreadstdin", norepo=True)
Yuya Nishihara
cmdserver: protect pipe server streams against corruption caused by direct io...
r23324 > def debugreadstdin(ui):
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 > ui.write(b"read: %r\n" % sys.stdin.read(1))
Pulkit Goyal
py3: make sure commands name are bytes in tests
r33097 > @command(b"debugwritestdout", norepo=True)
Yuya Nishihara
cmdserver: protect pipe server streams against corruption caused by direct io...
r23324 > def debugwritestdout(ui):
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 > os.write(1, b"low-level stdout fd and\n")
Yuya Nishihara
procutil: redirect ui.fout to stderr while stdio is protected...
r37237 > sys.stdout.write("stdout should be redirected to stderr\n")
Yuya Nishihara
cmdserver: protect pipe server streams against corruption caused by direct io...
r23324 > sys.stdout.flush()
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 > EOF
$ cat <<EOF >> .hg/hgrc
> [extensions]
Yuya Nishihara
test-commandserver: clean up quoting and location of dbgui extension...
r40627 > dbgui = ../dbgui.py
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 > EOF
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> from hgclient import check, readchannel, runcommand, stringio
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 >>> @check
... def getpass(server):
... readchannel(server)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'debuggetpass', b'--config',
... b'ui.interactive=True'],
... input=stringio(b'1234\n'))
... runcommand(server, [b'debuggetpass', b'--config',
... b'ui.interactive=True'],
... input=stringio(b'\n'))
... runcommand(server, [b'debuggetpass', b'--config',
... b'ui.interactive=True'],
... input=stringio(b''))
... runcommand(server, [b'debugprompt', b'--config',
... b'ui.interactive=True'],
... input=stringio(b'5678\n'))
Yuya Nishihara
py3: fix EOL detection in commandserver.channeledinput...
r44857 ... runcommand(server, [b'debugprompt', b'--config',
... b'ui.interactive=True'],
... input=stringio(b'\nremainder\nshould\nnot\nbe\nread\n'))
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'debugreadstdin'])
... runcommand(server, [b'debugwritestdout'])
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand debuggetpass --config ui.interactive=True
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 password: 1234
Yuya Nishihara
ui: check EOF of getpass() response read from command-server channel...
r30814 *** runcommand debuggetpass --config ui.interactive=True
password:
*** runcommand debuggetpass --config ui.interactive=True
password: abort: response expected
[255]
Yuya Nishihara
ui: disable echo back of prompt input if ui is set to non-tty purposely...
r22783 *** runcommand debugprompt --config ui.interactive=True
prompt: 5678
Yuya Nishihara
py3: fix EOL detection in commandserver.channeledinput...
r44857 *** runcommand debugprompt --config ui.interactive=True
prompt: y
Yuya Nishihara
cmdserver: protect pipe server streams against corruption caused by direct io...
r23324 *** runcommand debugreadstdin
read: ''
*** runcommand debugwritestdout
Yuya Nishihara
procutil: redirect ui.fout to stderr while stdio is protected...
r37237 low-level stdout fd and
stdout should be redirected to stderr
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
Yuya Nishihara
cmdserver: use given streams as pipe channels like other commands...
r23322 run commandserver in commandserver, which is silly but should work:
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 >>> from hgclient import bprint, check, readchannel, runcommand, stringio
Yuya Nishihara
cmdserver: use given streams as pipe channels like other commands...
r23322 >>> @check
... def nested(server):
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 ... bprint(b'%c, %r' % readchannel(server))
Yuya Nishihara
cmdserver: use given streams as pipe channels like other commands...
r23322 ... class nestedserver(object):
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... stdin = stringio(b'getencoding\n')
timeless
test-commandserver: handle cStringIO.StringIO/io.StringIO divergence
r28836 ... stdout = stringio()
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'serve', b'--cmdserver', b'pipe'],
Yuya Nishihara
cmdserver: use given streams as pipe channels like other commands...
r23322 ... output=nestedserver.stdout, input=nestedserver.stdin)
... nestedserver.stdout.seek(0)
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 ... bprint(b'%c, %r' % readchannel(nestedserver)) # hello
... bprint(b'%c, %r' % readchannel(nestedserver)) # getencoding
Yuya Nishihara
cmdserver: use given streams as pipe channels like other commands...
r23322 o, 'capabilities: getencoding runcommand\nencoding: *\npid: *' (glob)
*** runcommand serve --cmdserver pipe
o, 'capabilities: getencoding runcommand\nencoding: *\npid: *' (glob)
r, '*' (glob)
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
start without repository:
$ cd ..
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 >>> from hgclient import bprint, check, readchannel, runcommand
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 >>> @check
... def hellomessage(server):
... ch, data = readchannel(server)
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 ... bprint(b'%c, %r' % (ch, data))
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 ... # run an arbitrary command to make sure the next thing the server
... # sends isn't part of the hello message
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'id'])
Yuya Nishihara
cmdserver: include pid of server handling requests in hello message...
r23036 o, 'capabilities: getencoding runcommand\nencoding: *\npid: *' (glob)
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand id
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 abort: there is no Mercurial repository here (.hg not found)
Martin von Zweigbergk
errors: introduce InputError and use it from commands and cmdutil...
r46431 [10]
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> from hgclient import check, readchannel, runcommand
Yuya Nishihara
test-commandserver: port test functions from .py to .t...
r22568 >>> @check
... def startwithoutrepo(server):
... readchannel(server)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'init', b'repo2'])
... runcommand(server, [b'id', b'-R', b'repo2'])
Yuya Nishihara
test-commandserver: make runcommand message bolder...
r22572 *** runcommand init repo2
*** runcommand id -R repo2
Yuya Nishihara
test-commandserver: add stub for .t test by copying .out with 2-space indent...
r22567 000000000000 tip
Yuya Nishihara
cmdserver: add service that listens on unix domain socket and forks process...
r22994
Yuya Nishihara
dispatch: error out on invalid -R path even if optionalrepo (issue4805) (BC)...
r26142 don't fall back to cwd if invalid -R path is specified (issue4805):
$ cd repo
$ hg serve --cmdserver pipe -R ../nonexistent
Martin von Zweigbergk
errors: remove trailing "!" from some error messages for consistency...
r46518 abort: repository ../nonexistent not found
Yuya Nishihara
dispatch: error out on invalid -R path even if optionalrepo (issue4805) (BC)...
r26142 [255]
$ cd ..
Yuya Nishihara
cmdserver: add option to not exit from message loop on SIGINT...
r45602 #if no-windows
option to not shutdown on SIGINT:
$ cat <<'EOF' > dbgint.py
> import os
> import signal
> import time
> from mercurial import commands, registrar
> cmdtable = {}
> command = registrar.command(cmdtable)
> @command(b"debugsleep", norepo=True)
> def debugsleep(ui):
> time.sleep(1)
> @command(b"debugsuicide", norepo=True)
> def debugsuicide(ui):
> os.kill(os.getpid(), signal.SIGINT)
> time.sleep(1)
> EOF
>>> import signal
>>> import time
>>> from hgclient import checkwith, readchannel, runcommand
>>> @checkwith(extraargs=[b'--config', b'cmdserver.shutdown-on-interrupt=False',
... b'--config', b'extensions.dbgint=dbgint.py'])
... def nointr(server):
... readchannel(server)
... server.send_signal(signal.SIGINT) # server won't be terminated
... time.sleep(1)
... runcommand(server, [b'debugsleep'])
... server.send_signal(signal.SIGINT) # server won't be terminated
... runcommand(server, [b'debugsleep'])
... runcommand(server, [b'debugsuicide']) # command can be interrupted
... server.send_signal(signal.SIGTERM) # server will be terminated
... time.sleep(1)
*** runcommand debugsleep
*** runcommand debugsleep
*** runcommand debugsuicide
interrupted!
killed!
Raphaël Gomès
backout: backed out changeset 6edc8800dbc3...
r49071 [255]
Yuya Nishihara
cmdserver: add option to not exit from message loop on SIGINT...
r45602
#endif
Yuya Nishihara
commandserver: add experimental option to use separate message channel...
r40625 structured message channel:
$ cat <<'EOF' >> repo2/.hg/hgrc
> [ui]
> # server --config should precede repository option
> message-output = stdio
> EOF
>>> from hgclient import bprint, checkwith, readchannel, runcommand
>>> @checkwith(extraargs=[b'--config', b'ui.message-output=channel',
... b'--config', b'cmdserver.message-encodings=foo cbor'])
... def verify(server):
... _ch, data = readchannel(server)
... bprint(data)
... runcommand(server, [b'-R', b'repo2', b'verify'])
capabilities: getencoding runcommand
encoding: ascii
message-encoding: cbor
pid: * (glob)
Matt Harbison
tests: stabilize test-commandserver.t on Windows...
r40689 pgid: * (glob) (no-windows !)
Yuya Nishihara
commandserver: add experimental option to use separate message channel...
r40625 *** runcommand -R repo2 verify
Yuya Nishihara
ui: extract helpers to write message with type or label...
r40626 message: '\xa2DdataTchecking changesets\nDtypeFstatus'
Yuya Nishihara
commandserver: send raw progress information to message channel...
r40630 message: '\xa6Ditem@Cpos\xf6EtopicHcheckingEtotal\xf6DtypeHprogressDunit@'
Yuya Nishihara
ui: extract helpers to write message with type or label...
r40626 message: '\xa2DdataSchecking manifests\nDtypeFstatus'
Yuya Nishihara
commandserver: send raw progress information to message channel...
r40630 message: '\xa6Ditem@Cpos\xf6EtopicHcheckingEtotal\xf6DtypeHprogressDunit@'
Yuya Nishihara
ui: extract helpers to write message with type or label...
r40626 message: '\xa2DdataX0crosschecking files in changesets and manifests\nDtypeFstatus'
Yuya Nishihara
commandserver: send raw progress information to message channel...
r40630 message: '\xa6Ditem@Cpos\xf6EtopicMcrosscheckingEtotal\xf6DtypeHprogressDunit@'
Yuya Nishihara
ui: extract helpers to write message with type or label...
r40626 message: '\xa2DdataOchecking files\nDtypeFstatus'
Yuya Nishihara
commandserver: send raw progress information to message channel...
r40630 message: '\xa6Ditem@Cpos\xf6EtopicHcheckingEtotal\xf6DtypeHprogressDunit@'
Yuya Nishihara
ui: extract helpers to write message with type or label...
r40626 message: '\xa2DdataX/checked 0 changesets with 0 changes to 0 files\nDtypeFstatus'
Yuya Nishihara
commandserver: add experimental option to use separate message channel...
r40625
Yuya Nishihara
commandserver: attach prompt default and choices to message...
r40628 >>> from hgclient import checkwith, readchannel, runcommand, stringio
>>> @checkwith(extraargs=[b'--config', b'ui.message-output=channel',
... b'--config', b'cmdserver.message-encodings=cbor',
... b'--config', b'extensions.dbgui=dbgui.py'])
... def prompt(server):
... readchannel(server)
... interactive = [b'--config', b'ui.interactive=True']
Yuya Nishihara
commandserver: make getpass() request distinct from normal prompt...
r40629 ... runcommand(server, [b'debuggetpass'] + interactive,
... input=stringio(b'1234\n'))
Yuya Nishihara
commandserver: attach prompt default and choices to message...
r40628 ... runcommand(server, [b'debugprompt'] + interactive,
... input=stringio(b'5678\n'))
... runcommand(server, [b'debugpromptchoice'] + interactive,
... input=stringio(b'n\n'))
Yuya Nishihara
commandserver: make getpass() request distinct from normal prompt...
r40629 *** runcommand debuggetpass --config ui.interactive=True
message: '\xa3DdataJpassword: Hpassword\xf5DtypeFprompt'
1234
Yuya Nishihara
commandserver: attach prompt default and choices to message...
r40628 *** runcommand debugprompt --config ui.interactive=True
message: '\xa3DdataGprompt:GdefaultAyDtypeFprompt'
5678
*** runcommand debugpromptchoice --config ui.interactive=True
message: '\xa4Gchoices\x82\x82AyCYes\x82AnBNoDdataTpromptchoice (y/n)? GdefaultAyDtypeFprompt'
1
Yuya Nishihara
commandserver: add experimental option to use separate message channel...
r40625 bad message encoding:
$ hg serve --cmdserver pipe --config ui.message-output=channel
abort: no supported message encodings:
[255]
$ hg serve --cmdserver pipe --config ui.message-output=channel \
> --config cmdserver.message-encodings='foo bar'
abort: no supported message encodings: foo bar
[255]
Yuya Nishihara
cmdserver: add service that listens on unix domain socket and forks process...
r22994 unix domain socket:
$ cd repo
$ hg update -q
Matt Mackall
tests: don't try to test unix sockets on vfat
r23095 #if unix-socket unix-permissions
Yuya Nishihara
cmdserver: add service that listens on unix domain socket and forks process...
r22994
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 >>> from hgclient import bprint, check, readchannel, runcommand, stringio, unixserver
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 >>> server = unixserver(b'.hg/server.sock', b'.hg/server.log')
Yuya Nishihara
cmdserver: add service that listens on unix domain socket and forks process...
r22994 >>> def hellomessage(conn):
... ch, data = readchannel(conn)
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 ... bprint(b'%c, %r' % (ch, data))
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(conn, [b'id'])
Yuya Nishihara
cmdserver: add service that listens on unix domain socket and forks process...
r22994 >>> check(hellomessage, server.connect)
Yuya Nishihara
cmdserver: include pid of server handling requests in hello message...
r23036 o, 'capabilities: getencoding runcommand\nencoding: *\npid: *' (glob)
Yuya Nishihara
cmdserver: add service that listens on unix domain socket and forks process...
r22994 *** runcommand id
eff892de26ec tip bm1/bm2/bm3
>>> def unknowncommand(conn):
... readchannel(conn)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... conn.stdin.write(b'unknowncommand\n')
Yuya Nishihara
cmdserver: add service that listens on unix domain socket and forks process...
r22994 >>> check(unknowncommand, server.connect) # error sent to server.log
>>> def serverinput(conn):
... readchannel(conn)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... patch = b"""
Yuya Nishihara
cmdserver: add service that listens on unix domain socket and forks process...
r22994 ... # HG changeset patch
... # User test
... # Date 0 0
... 2
...
... diff -r eff892de26ec -r 1ed24be7e7a0 a
... --- a/a
... +++ b/a
... @@ -1,1 +1,2 @@
... 1
... +2
... """
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(conn, [b'import', b'-'], input=stringio(patch))
... runcommand(conn, [b'log', b'-rtip', b'-q'])
Yuya Nishihara
cmdserver: add service that listens on unix domain socket and forks process...
r22994 >>> check(serverinput, server.connect)
*** runcommand import -
applying patch from stdin
*** runcommand log -rtip -q
2:1ed24be7e7a0
>>> server.shutdown()
$ cat .hg/server.log
listening at .hg/server.sock
abort: unknown command unknowncommand
killed!
Yuya Nishihara
cmdserver: write early exception to 'e' channel in 'unix' mode...
r28511 $ rm .hg/server.log
if server crashed before hello, traceback will be sent to 'e' channel as
last ditch:
Yuya Nishihara
test-commandserver: change way of triggering early crash...
r40857 $ cat <<'EOF' > ../earlycrasher.py
> from mercurial import commandserver, extensions
Yuya Nishihara
commandserver: pass around option to hook repo instance creation...
r40911 > def _serverequest(orig, ui, repo, conn, createcmdserver, prereposetups):
Yuya Nishihara
test-commandserver: change way of triggering early crash...
r40857 > def createcmdserver(*args, **kwargs):
> raise Exception('crash')
Yuya Nishihara
commandserver: pass around option to hook repo instance creation...
r40911 > return orig(ui, repo, conn, createcmdserver, prereposetups)
Yuya Nishihara
test-commandserver: change way of triggering early crash...
r40857 > def extsetup(ui):
> extensions.wrapfunction(commandserver, b'_serverequest', _serverequest)
> EOF
Yuya Nishihara
cmdserver: write early exception to 'e' channel in 'unix' mode...
r28511 $ cat <<EOF >> .hg/hgrc
Yuya Nishihara
test-commandserver: change way of triggering early crash...
r40857 > [extensions]
> earlycrasher = ../earlycrasher.py
Yuya Nishihara
cmdserver: write early exception to 'e' channel in 'unix' mode...
r28511 > EOF
Yuya Nishihara
py3: use bprint() helper in test-commandserver.t
r40391 >>> from hgclient import bprint, check, readchannel, unixserver
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 >>> server = unixserver(b'.hg/server.sock', b'.hg/server.log')
Yuya Nishihara
cmdserver: write early exception to 'e' channel in 'unix' mode...
r28511 >>> def earlycrash(conn):
... while True:
... try:
... ch, data = readchannel(conn)
Yuya Nishihara
py3: don't use traceback.print_exc() in commandserver.py...
r40397 ... for l in data.splitlines(True):
... if not l.startswith(b' '):
... bprint(b'%c, %r' % (ch, l))
Yuya Nishihara
cmdserver: write early exception to 'e' channel in 'unix' mode...
r28511 ... except EOFError:
... break
>>> check(earlycrash, server.connect)
e, 'Traceback (most recent call last):\n'
Yuya Nishihara
test-commandserver: change way of triggering early crash...
r40857 e, 'Exception: crash\n'
Yuya Nishihara
cmdserver: write early exception to 'e' channel in 'unix' mode...
r28511 >>> server.shutdown()
$ cat .hg/server.log | grep -v '^ '
listening at .hg/server.sock
Traceback (most recent call last):
Yuya Nishihara
test-commandserver: change way of triggering early crash...
r40857 Exception: crash
Yuya Nishihara
cmdserver: write early exception to 'e' channel in 'unix' mode...
r28511 killed!
Matt Mackall
tests: don't try to test unix sockets on vfat
r23095 #endif
#if no-unix-socket
Yuya Nishihara
cmdserver: add service that listens on unix domain socket and forks process...
r22994
$ hg serve --cmdserver unix -a .hg/server.sock
abort: unsupported platform
[255]
#endif
FUJIWARA Katsunori
repoview: discard filtered changelog if index isn't shared with unfiltered...
r28265
$ cd ..
Test that accessing to invalid changelog cache is avoided at
subsequent operations even if repo object is reused even after failure
of transaction (see 0a7610758c42 also)
"hg log" after failure of transaction is needed to detect invalid
cache in repoview: this can't detect by "hg verify" only.
Combination of "finalization" and "empty-ness of changelog" (2 x 2 =
4) are tested, because '00changelog.i' are differently changed in each
cases.
$ cat > $TESTTMP/failafterfinalize.py <<EOF
> # extension to abort transaction after finalization forcibly
> from mercurial import commands, error, extensions, lock as lockmod
Boris Feld
configitems: register the test 'failafterfinalize.fail' config
r34766 > from mercurial import registrar
> cmdtable = {}
> command = registrar.command(cmdtable)
> configtable = {}
> configitem = registrar.configitem(configtable)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 > configitem(b'failafterfinalize', b'fail',
Boris Feld
configitems: register the test 'failafterfinalize.fail' config
r34766 > default=None,
> )
FUJIWARA Katsunori
repoview: discard filtered changelog if index isn't shared with unfiltered...
r28265 > def fail(tr):
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 > raise error.Abort(b'fail after finalization')
FUJIWARA Katsunori
repoview: discard filtered changelog if index isn't shared with unfiltered...
r28265 > def reposetup(ui, repo):
> class failrepo(repo.__class__):
Valentin Gatien-Baron
convert: add a config option to help doing identity hg->hg conversion...
r42839 > def commitctx(self, ctx, error=False, origctx=None):
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 > if self.ui.configbool(b'failafterfinalize', b'fail'):
FUJIWARA Katsunori
repoview: discard filtered changelog if index isn't shared with unfiltered...
r28265 > # 'sorted()' by ASCII code on category names causes
> # invoking 'fail' after finalization of changelog
> # using "'cl-%i' % id(self)" as category name
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 > self.currenttransaction().addfinalize(b'zzzzzzzz', fail)
Valentin Gatien-Baron
convert: add a config option to help doing identity hg->hg conversion...
r42839 > return super(failrepo, self).commitctx(ctx, error, origctx)
FUJIWARA Katsunori
repoview: discard filtered changelog if index isn't shared with unfiltered...
r28265 > repo.__class__ = failrepo
> EOF
$ hg init repo3
$ cd repo3
$ cat <<EOF >> $HGRCPATH
Martin von Zweigbergk
config: add a new [command-templates] section for templates defined by hg...
r46350 > [command-templates]
> log = {rev} {desc|firstline} ({files})\n
FUJIWARA Katsunori
repoview: discard filtered changelog if index isn't shared with unfiltered...
r28265 >
> [extensions]
> failafterfinalize = $TESTTMP/failafterfinalize.py
> EOF
- test failure with "empty changelog"
$ echo foo > foo
$ hg add foo
Mads Kiilerich
spelling: fixes of non-dictionary words
r30332 (failure before finalization)
FUJIWARA Katsunori
repoview: discard filtered changelog if index isn't shared with unfiltered...
r28265
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> from hgclient import check, readchannel, runcommand
FUJIWARA Katsunori
repoview: discard filtered changelog if index isn't shared with unfiltered...
r28265 >>> @check
... def abort(server):
... readchannel(server)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'commit',
... b'--config', b'hooks.pretxncommit=false',
... b'-mfoo'])
... runcommand(server, [b'log'])
... runcommand(server, [b'verify', b'-q'])
FUJIWARA Katsunori
repoview: discard filtered changelog if index isn't shared with unfiltered...
r28265 *** runcommand commit --config hooks.pretxncommit=false -mfoo
transaction abort!
rollback completed
abort: pretxncommit hook exited with status 1
Martin von Zweigbergk
errors: use exit code 40 for when a hook fails...
r47145 [40]
FUJIWARA Katsunori
repoview: discard filtered changelog if index isn't shared with unfiltered...
r28265 *** runcommand log
*** runcommand verify -q
Mads Kiilerich
spelling: fixes of non-dictionary words
r30332 (failure after finalization)
FUJIWARA Katsunori
repoview: discard filtered changelog if index isn't shared with unfiltered...
r28265
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> from hgclient import check, readchannel, runcommand
FUJIWARA Katsunori
repoview: discard filtered changelog if index isn't shared with unfiltered...
r28265 >>> @check
... def abort(server):
... readchannel(server)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'commit',
... b'--config', b'failafterfinalize.fail=true',
... b'-mfoo'])
... runcommand(server, [b'log'])
... runcommand(server, [b'verify', b'-q'])
FUJIWARA Katsunori
repoview: discard filtered changelog if index isn't shared with unfiltered...
r28265 *** runcommand commit --config failafterfinalize.fail=true -mfoo
transaction abort!
rollback completed
abort: fail after finalization
[255]
*** runcommand log
*** runcommand verify -q
- test failure with "not-empty changelog"
$ echo bar > bar
$ hg add bar
$ hg commit -mbar bar
(failure before finalization)
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> from hgclient import check, readchannel, runcommand
FUJIWARA Katsunori
repoview: discard filtered changelog if index isn't shared with unfiltered...
r28265 >>> @check
... def abort(server):
... readchannel(server)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'commit',
... b'--config', b'hooks.pretxncommit=false',
... b'-mfoo', b'foo'])
... runcommand(server, [b'log'])
... runcommand(server, [b'verify', b'-q'])
FUJIWARA Katsunori
repoview: discard filtered changelog if index isn't shared with unfiltered...
r28265 *** runcommand commit --config hooks.pretxncommit=false -mfoo foo
transaction abort!
rollback completed
abort: pretxncommit hook exited with status 1
Martin von Zweigbergk
errors: use exit code 40 for when a hook fails...
r47145 [40]
FUJIWARA Katsunori
repoview: discard filtered changelog if index isn't shared with unfiltered...
r28265 *** runcommand log
0 bar (bar)
*** runcommand verify -q
(failure after finalization)
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> from hgclient import check, readchannel, runcommand
FUJIWARA Katsunori
repoview: discard filtered changelog if index isn't shared with unfiltered...
r28265 >>> @check
... def abort(server):
... readchannel(server)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'commit',
... b'--config', b'failafterfinalize.fail=true',
... b'-mfoo', b'foo'])
... runcommand(server, [b'log'])
... runcommand(server, [b'verify', b'-q'])
FUJIWARA Katsunori
repoview: discard filtered changelog if index isn't shared with unfiltered...
r28265 *** runcommand commit --config failafterfinalize.fail=true -mfoo foo
transaction abort!
rollback completed
abort: fail after finalization
[255]
*** runcommand log
0 bar (bar)
*** runcommand verify -q
Yuya Nishihara
tests: show cache of audited paths is never invalidated
r33721
$ cd ..
Test symlink traversal over cached audited paths:
-------------------------------------------------
#if symlink
set up symlink hell
$ mkdir merge-symlink-out
$ hg init merge-symlink
$ cd merge-symlink
$ touch base
$ hg commit -qAm base
$ ln -s ../merge-symlink-out a
$ hg commit -qAm 'symlink a -> ../merge-symlink-out'
$ hg up -q 0
$ mkdir a
$ touch a/poisoned
$ hg commit -qAm 'file a/poisoned'
$ hg log -G -T '{rev}: {desc}\n'
@ 2: file a/poisoned
|
| o 1: symlink a -> ../merge-symlink-out
|/
o 0: base
try trivial merge after update: cache of audited paths should be discarded,
and the merge should fail (issue5628)
$ hg up -q null
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> from hgclient import check, readchannel, runcommand
Yuya Nishihara
tests: show cache of audited paths is never invalidated
r33721 >>> @check
... def merge(server):
... readchannel(server)
... # audit a/poisoned as a good path
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'up', b'-qC', b'2'])
... runcommand(server, [b'up', b'-qC', b'1'])
Yuya Nishihara
tests: show cache of audited paths is never invalidated
r33721 ... # here a is a symlink, so a/poisoned is bad
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'merge', b'2'])
Yuya Nishihara
tests: show cache of audited paths is never invalidated
r33721 *** runcommand up -qC 2
*** runcommand up -qC 1
*** runcommand merge 2
Siddharth Agarwal
merge: disable path conflict checking by default (issue5716)...
r34943 abort: path 'a/poisoned' traverses symbolic link 'a'
[255]
Yuya Nishihara
tests: show cache of audited paths is never invalidated
r33721 $ ls ../merge-symlink-out
cache of repo.auditor should be discarded, so matcher would never traverse
symlinks:
$ hg up -qC 0
$ touch ../merge-symlink-out/poisoned
Augie Fackler
tests: update test-commandserver to pass our import checker
r33923 >>> from hgclient import check, readchannel, runcommand
Yuya Nishihara
tests: show cache of audited paths is never invalidated
r33721 >>> @check
... def files(server):
... readchannel(server)
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'up', b'-qC', b'2'])
Yuya Nishihara
tests: show cache of audited paths is never invalidated
r33721 ... # audit a/poisoned as a good path
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'files', b'a/poisoned'])
... runcommand(server, [b'up', b'-qC', b'0'])
... runcommand(server, [b'up', b'-qC', b'1'])
Yuya Nishihara
tests: show cache of audited paths is never invalidated
r33721 ... # here 'a' is a symlink, so a/poisoned should be warned
Yuya Nishihara
py3: byte-stringify most literals in test-commandserver.t...
r40390 ... runcommand(server, [b'files', b'a/poisoned'])
Yuya Nishihara
tests: show cache of audited paths is never invalidated
r33721 *** runcommand up -qC 2
*** runcommand files a/poisoned
a/poisoned
*** runcommand up -qC 0
*** runcommand up -qC 1
*** runcommand files a/poisoned
Yuya Nishihara
pathauditor: disable cache of audited paths by default (issue5628)...
r33722 abort: path 'a/poisoned' traverses symbolic link 'a'
[255]
Yuya Nishihara
tests: show cache of audited paths is never invalidated
r33721
$ cd ..
#endif