tests/test-commandserver.t
author Simon Sapin <simon.sapin@octobus.net>
Wed, 19 May 2021 13:15:00 +0200
changeset 47341 69530e5d4fe5
parent 47290 40b51c28b242
child 47587 be496e3489b9
permissions -rw-r--r--
dirstate-tree: Add `NodeRef` and `ChildNodesRef` enums They are used instead of `&Node` and `&ChildNodes` respectively. The `ChildNodes` type alias also becomes a similar enum. For now they only have one variant each, to be extended later. Adding enums now forces various use sites go through new methods instead of manipulating the underlying data structure directly. Differential Revision: https://phab.mercurial-scm.org/D10747
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
     1
#if windows
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
     2
  $ PYTHONPATH="$TESTDIR/../contrib;$PYTHONPATH"
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
     3
#else
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
     4
  $ PYTHONPATH="$TESTDIR/../contrib:$PYTHONPATH"
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
     5
#endif
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
     6
  $ export PYTHONPATH
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
     7
23053
5ba11ab48fcf ui: separate option to show prompt echo, enabled only in tests (issue4417)
Yuya Nishihara <yuya@tcha.org>
parents: 23036
diff changeset
     8
typical client does not want echo-back messages, so test without it:
5ba11ab48fcf ui: separate option to show prompt echo, enabled only in tests (issue4417)
Yuya Nishihara <yuya@tcha.org>
parents: 23036
diff changeset
     9
5ba11ab48fcf ui: separate option to show prompt echo, enabled only in tests (issue4417)
Yuya Nishihara <yuya@tcha.org>
parents: 23036
diff changeset
    10
  $ grep -v '^promptecho ' < $HGRCPATH >> $HGRCPATH.new
5ba11ab48fcf ui: separate option to show prompt echo, enabled only in tests (issue4417)
Yuya Nishihara <yuya@tcha.org>
parents: 23036
diff changeset
    11
  $ mv $HGRCPATH.new $HGRCPATH
5ba11ab48fcf ui: separate option to show prompt echo, enabled only in tests (issue4417)
Yuya Nishihara <yuya@tcha.org>
parents: 23036
diff changeset
    12
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    13
  $ hg init repo
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    14
  $ cd repo
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    15
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
    16
  >>> from __future__ import absolute_import
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
    17
  >>> import os
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
    18
  >>> import sys
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
    19
  >>> from hgclient import bprint, check, readchannel, runcommand
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    20
  >>> @check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    21
  ... def hellomessage(server):
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    22
  ...     ch, data = readchannel(server)
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
    23
  ...     bprint(b'%c, %r' % (ch, data))
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    24
  ...     # run an arbitrary command to make sure the next thing the server
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    25
  ...     # sends isn't part of the hello message
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
    26
  ...     runcommand(server, [b'id'])
23036
19f5273c9f3e cmdserver: include pid of server handling requests in hello message
Yuya Nishihara <yuya@tcha.org>
parents: 22994
diff changeset
    27
  o, 'capabilities: getencoding runcommand\nencoding: *\npid: *' (glob)
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
    28
  *** runcommand id
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    29
  000000000000 tip
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    30
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    31
  >>> from hgclient import check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    32
  >>> @check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    33
  ... def unknowncommand(server):
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
    34
  ...     server.stdin.write(b'unknowncommand\n')
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    35
  abort: unknown command unknowncommand
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    36
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
    37
  >>> from hgclient import check, readchannel, runcommand
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    38
  >>> @check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    39
  ... def checkruncommand(server):
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    40
  ...     # hello block
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    41
  ...     readchannel(server)
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    42
  ... 
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    43
  ...     # no args
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    44
  ...     runcommand(server, [])
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    45
  ... 
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    46
  ...     # global options
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
    47
  ...     runcommand(server, [b'id', b'--quiet'])
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    48
  ... 
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    49
  ...     # make sure global options don't stick through requests
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
    50
  ...     runcommand(server, [b'id'])
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    51
  ... 
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    52
  ...     # --config
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
    53
  ...     runcommand(server, [b'id', b'--config', b'ui.quiet=True'])
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    54
  ... 
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    55
  ...     # make sure --config doesn't stick
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
    56
  ...     runcommand(server, [b'id'])
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    57
  ... 
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    58
  ...     # negative return code should be masked
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
    59
  ...     runcommand(server, [b'id', b'-runknown'])
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
    60
  *** runcommand 
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    61
  Mercurial Distributed SCM
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    62
  
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    63
  basic commands:
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    64
  
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    65
   add           add the specified files on the next commit
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    66
   annotate      show changeset information by line for each file
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    67
   clone         make a copy of an existing repository
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    68
   commit        commit the specified files or all outstanding changes
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    69
   diff          diff repository (or selected files)
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    70
   export        dump the header and diffs for one or more changesets
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    71
   forget        forget the specified files on the next commit
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    72
   init          create a new repository in the given directory
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    73
   log           show revision history of entire repository or files
23400
3bd577a3283e merge: be precise about what merged into what in short desc
anatoly techtonik <techtonik@gmail.com>
parents: 23095
diff changeset
    74
   merge         merge another revision into working directory
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    75
   pull          pull changes from the specified source
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    76
   push          push changes to the specified destination
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    77
   remove        remove the specified files on the next commit
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    78
   serve         start stand-alone webserver
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    79
   status        show changed files in the working directory
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    80
   summary       summarize working directory state
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    81
   update        update working directory (or switch revisions)
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    82
  
29978
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29485
diff changeset
    83
  (use 'hg help' for the full list of commands or 'hg -v' for details)
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
    84
  *** runcommand id --quiet
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    85
  000000000000
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
    86
  *** runcommand id
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    87
  000000000000 tip
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
    88
  *** runcommand id --config ui.quiet=True
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    89
  000000000000
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
    90
  *** runcommand id
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    91
  000000000000 tip
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
    92
  *** runcommand id -runknown
45921
95c4cca641f6 errors: remove trailing "!" from some error messages for consistency
Martin von Zweigbergk <martinvonz@google.com>
parents: 45846
diff changeset
    93
  abort: unknown revision 'unknown'
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    94
   [255]
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    95
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
    96
  >>> from hgclient import bprint, check, readchannel
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    97
  >>> @check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    98
  ... def inputeof(server):
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
    99
  ...     readchannel(server)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   100
  ...     server.stdin.write(b'runcommand\n')
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   101
  ...     # close stdin while server is waiting for input
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   102
  ...     server.stdin.close()
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   103
  ... 
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   104
  ...     # server exits with 1 if the pipe closed while reading the command
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   105
  ...     bprint(b'server exit code =', b'%d' % server.wait())
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   106
  server exit code = 1
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   107
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
   108
  >>> from hgclient import check, readchannel, runcommand, stringio
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   109
  >>> @check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   110
  ... def serverinput(server):
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   111
  ...     readchannel(server)
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   112
  ... 
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   113
  ...     patch = b"""
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   114
  ... # HG changeset patch
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   115
  ... # User test
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   116
  ... # Date 0 0
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   117
  ... # Node ID c103a3dec114d882c98382d684d8af798d09d857
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   118
  ... # Parent  0000000000000000000000000000000000000000
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   119
  ... 1
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   120
  ... 
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   121
  ... diff -r 000000000000 -r c103a3dec114 a
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   122
  ... --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   123
  ... +++ b/a	Thu Jan 01 00:00:00 1970 +0000
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   124
  ... @@ -0,0 +1,1 @@
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   125
  ... +1
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   126
  ... """
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   127
  ... 
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   128
  ...     runcommand(server, [b'import', b'-'], input=stringio(patch))
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   129
  ...     runcommand(server, [b'log'])
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   130
  *** runcommand import -
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   131
  applying patch from stdin
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   132
  *** runcommand log
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   133
  changeset:   0:eff892de26ec
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   134
  tag:         tip
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   135
  user:        test
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   136
  date:        Thu Jan 01 00:00:00 1970 +0000
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   137
  summary:     1
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   138
  
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   139
34996
c9740b69b9b7 dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options
Yuya Nishihara <yuya@tcha.org>
parents: 34942
diff changeset
   140
check strict parsing of early options:
c9740b69b9b7 dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options
Yuya Nishihara <yuya@tcha.org>
parents: 34942
diff changeset
   141
c9740b69b9b7 dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options
Yuya Nishihara <yuya@tcha.org>
parents: 34942
diff changeset
   142
  >>> import os
c9740b69b9b7 dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options
Yuya Nishihara <yuya@tcha.org>
parents: 34942
diff changeset
   143
  >>> from hgclient import check, readchannel, runcommand
c9740b69b9b7 dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options
Yuya Nishihara <yuya@tcha.org>
parents: 34942
diff changeset
   144
  >>> os.environ['HGPLAIN'] = '+strictflags'
c9740b69b9b7 dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options
Yuya Nishihara <yuya@tcha.org>
parents: 34942
diff changeset
   145
  >>> @check
c9740b69b9b7 dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options
Yuya Nishihara <yuya@tcha.org>
parents: 34942
diff changeset
   146
  ... def cwd(server):
c9740b69b9b7 dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options
Yuya Nishihara <yuya@tcha.org>
parents: 34942
diff changeset
   147
  ...     readchannel(server)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   148
  ...     runcommand(server, [b'log', b'-b', b'--config=alias.log=!echo pwned',
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   149
  ...                         b'default'])
34996
c9740b69b9b7 dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options
Yuya Nishihara <yuya@tcha.org>
parents: 34942
diff changeset
   150
  *** runcommand log -b --config=alias.log=!echo pwned default
45921
95c4cca641f6 errors: remove trailing "!" from some error messages for consistency
Martin von Zweigbergk <martinvonz@google.com>
parents: 45846
diff changeset
   151
  abort: unknown revision '--config=alias.log=!echo pwned'
34996
c9740b69b9b7 dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options
Yuya Nishihara <yuya@tcha.org>
parents: 34942
diff changeset
   152
   [255]
c9740b69b9b7 dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options
Yuya Nishihara <yuya@tcha.org>
parents: 34942
diff changeset
   153
30276
bc5d0e6fd9f3 histedit: use ui.fin to read commands from stdin
Yuya Nishihara <yuya@tcha.org>
parents: 29978
diff changeset
   154
check that "histedit --commands=-" can read rules from the input channel:
bc5d0e6fd9f3 histedit: use ui.fin to read commands from stdin
Yuya Nishihara <yuya@tcha.org>
parents: 29978
diff changeset
   155
40356
756e9b1084fd py3: import StringIO from test utility to test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40355
diff changeset
   156
  >>> from hgclient import check, readchannel, runcommand, stringio
30276
bc5d0e6fd9f3 histedit: use ui.fin to read commands from stdin
Yuya Nishihara <yuya@tcha.org>
parents: 29978
diff changeset
   157
  >>> @check
bc5d0e6fd9f3 histedit: use ui.fin to read commands from stdin
Yuya Nishihara <yuya@tcha.org>
parents: 29978
diff changeset
   158
  ... def serverinput(server):
bc5d0e6fd9f3 histedit: use ui.fin to read commands from stdin
Yuya Nishihara <yuya@tcha.org>
parents: 29978
diff changeset
   159
  ...     readchannel(server)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   160
  ...     rules = b'pick eff892de26ec\n'
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   161
  ...     runcommand(server, [b'histedit', b'0', b'--commands=-',
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   162
  ...                         b'--config', b'extensions.histedit='],
40356
756e9b1084fd py3: import StringIO from test utility to test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40355
diff changeset
   163
  ...                input=stringio(rules))
30276
bc5d0e6fd9f3 histedit: use ui.fin to read commands from stdin
Yuya Nishihara <yuya@tcha.org>
parents: 29978
diff changeset
   164
  *** runcommand histedit 0 --commands=- --config extensions.histedit=
bc5d0e6fd9f3 histedit: use ui.fin to read commands from stdin
Yuya Nishihara <yuya@tcha.org>
parents: 29978
diff changeset
   165
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   166
check that --cwd doesn't persist between requests:
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   167
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   168
  $ mkdir foo
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   169
  $ touch foo/bar
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
   170
  >>> from hgclient import check, readchannel, runcommand
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   171
  >>> @check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   172
  ... def cwd(server):
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   173
  ...     readchannel(server)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   174
  ...     runcommand(server, [b'--cwd', b'foo', b'st', b'bar'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   175
  ...     runcommand(server, [b'st', b'foo/bar'])
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   176
  *** runcommand --cwd foo st bar
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   177
  ? bar
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   178
  *** runcommand st foo/bar
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   179
  ? foo/bar
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   180
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   181
  $ rm foo/bar
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   182
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   183
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   184
check that local configs for the cached repo aren't inherited when -R is used:
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   185
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   186
  $ cat <<EOF >> .hg/hgrc
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   187
  > [ui]
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   188
  > foo = bar
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   189
  > EOF
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   190
37427
6282c1965f8e tests: conditionalize test-commandserver.t based on extra extensions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37222
diff changeset
   191
#if no-extraextensions
6282c1965f8e tests: conditionalize test-commandserver.t based on extra extensions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37222
diff changeset
   192
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
   193
  >>> from hgclient import check, readchannel, runcommand, sep
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   194
  >>> @check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   195
  ... def localhgrc(server):
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   196
  ...     readchannel(server)
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   197
  ... 
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   198
  ...     # the cached repo local hgrc contains ui.foo=bar, so showconfig should
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   199
  ...     # show it
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   200
  ...     runcommand(server, [b'showconfig'], outfilter=sep)
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   201
  ... 
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   202
  ...     # but not for this repo
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   203
  ...     runcommand(server, [b'init', b'foo'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   204
  ...     runcommand(server, [b'-R', b'foo', b'showconfig', b'ui', b'defaults'])
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   205
  *** runcommand showconfig
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   206
  bundle.mainreporoot=$TESTTMP/repo
25290
8f88f768e24c devel: rename 'all' to 'all-warnings' (BC)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 24751
diff changeset
   207
  devel.all-warnings=true
32448
f94d7e3e46a0 devel: activate default-date in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32376
diff changeset
   208
  devel.default-date=0 0
33426
29653495cece tests: add extra output for fsmonitor at showconfig
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 33109
diff changeset
   209
  extensions.fsmonitor= (fsmonitor !)
47290
40b51c28b242 dirstate-v2: Update the expected output of some tests for new requirement
Simon Sapin <simon.sapin@octobus.net>
parents: 46485
diff changeset
   210
  format.exp-dirstate-v2=1 (dirstate-v2 !)
23388
42ed0780ec4b run-tests: set a default largefiles usercache in the default hgrc file
Matt Harbison <matt_harbison@yahoo.com>
parents: 23324
diff changeset
   211
  largefiles.usercache=$TESTTMP/.cache/largefiles
35289
8e72f9152c4d lfs: introduce a user level cache for lfs files
Matt Harbison <matt_harbison@yahoo.com>
parents: 34996
diff changeset
   212
  lfs.usercache=$TESTTMP/.cache/lfs
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   213
  ui.slash=True
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   214
  ui.interactive=False
45845
21733e8c924f errors: add config that lets user get more detailed exit codes
Martin von Zweigbergk <martinvonz@google.com>
parents: 45788
diff changeset
   215
  ui.detailed-exit-code=True
40522
d6b6f1b441cf run-tests: define the default merge tool through configuration
Boris Feld <boris.feld@octobus.net>
parents: 40362
diff changeset
   216
  ui.merge=internal:merge
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   217
  ui.mergemarkers=detailed
46030
f44b9c72f061 run-tests: allow some slack about 'waiting on lock' message
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45921
diff changeset
   218
  ui.timeout.warn=15
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   219
  ui.foo=bar
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   220
  ui.nontty=true
31029
161ab32b44a1 runtests: set web.address to localhost
Jun Wu <quark@fb.com>
parents: 31006
diff changeset
   221
  web.address=localhost
31030
09ec648cd2a9 runtests: always set web.ipv6
Jun Wu <quark@fb.com>
parents: 31029
diff changeset
   222
  web\.ipv6=(?:True|False) (re)
37012
5890e5872f36 hgweb: allow defining Server response header for HTTP server
Gregory Szorc <gregory.szorc@gmail.com>
parents: 36456
diff changeset
   223
  web.server-header=testing stub value
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   224
  *** runcommand init foo
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   225
  *** runcommand -R foo showconfig ui defaults
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   226
  ui.slash=True
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   227
  ui.interactive=False
45845
21733e8c924f errors: add config that lets user get more detailed exit codes
Martin von Zweigbergk <martinvonz@google.com>
parents: 45788
diff changeset
   228
  ui.detailed-exit-code=True
40522
d6b6f1b441cf run-tests: define the default merge tool through configuration
Boris Feld <boris.feld@octobus.net>
parents: 40362
diff changeset
   229
  ui.merge=internal:merge
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   230
  ui.mergemarkers=detailed
46030
f44b9c72f061 run-tests: allow some slack about 'waiting on lock' message
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45921
diff changeset
   231
  ui.timeout.warn=15
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   232
  ui.nontty=true
37427
6282c1965f8e tests: conditionalize test-commandserver.t based on extra extensions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37222
diff changeset
   233
#endif
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   234
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   235
  $ rm -R foo
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   236
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   237
#if windows
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   238
  $ PYTHONPATH="$TESTTMP/repo;$PYTHONPATH"
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   239
#else
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   240
  $ PYTHONPATH="$TESTTMP/repo:$PYTHONPATH"
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   241
#endif
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   242
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   243
  $ cat <<EOF > hook.py
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   244
  > import sys
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   245
  > from hgclient import bprint
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   246
  > def hook(**args):
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   247
  >     bprint(b'hook talking')
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   248
  >     bprint(b'now try to read something: %r' % sys.stdin.read())
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   249
  > EOF
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   250
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
   251
  >>> from hgclient import check, readchannel, runcommand, stringio
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   252
  >>> @check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   253
  ... def hookoutput(server):
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   254
  ...     readchannel(server)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   255
  ...     runcommand(server, [b'--config',
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   256
  ...                         b'hooks.pre-identify=python:hook.hook',
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   257
  ...                         b'id'],
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   258
  ...                input=stringio(b'some input'))
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   259
  *** runcommand --config hooks.pre-identify=python:hook.hook id
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   260
  eff892de26ec tip
37222
7f78de1c93aa procutil: redirect ui.fout to stderr while stdio is protected
Yuya Nishihara <yuya@tcha.org>
parents: 37012
diff changeset
   261
  hook talking
7f78de1c93aa procutil: redirect ui.fout to stderr while stdio is protected
Yuya Nishihara <yuya@tcha.org>
parents: 37012
diff changeset
   262
  now try to read something: ''
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   263
33607
6c142f279625 pypy: fix failing test files with Pypy5.6.0
Boris Feld <boris.feld@octobus.net>
parents: 33542
diff changeset
   264
Clean hook cached version
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   265
  $ rm hook.py*
33607
6c142f279625 pypy: fix failing test files with Pypy5.6.0
Boris Feld <boris.feld@octobus.net>
parents: 33542
diff changeset
   266
  $ rm -Rf __pycache__
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   267
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   268
  $ echo a >> a
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   269
  >>> import os
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
   270
  >>> from hgclient import check, readchannel, runcommand
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   271
  >>> @check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   272
  ... def outsidechanges(server):
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   273
  ...     readchannel(server)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   274
  ...     runcommand(server, [b'status'])
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   275
  ...     os.system('hg ci -Am2')
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   276
  ...     runcommand(server, [b'tip'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   277
  ...     runcommand(server, [b'status'])
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   278
  *** runcommand status
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   279
  M a
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   280
  *** runcommand tip
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   281
  changeset:   1:d3a0a68be6de
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   282
  tag:         tip
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   283
  user:        test
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   284
  date:        Thu Jan 01 00:00:00 1970 +0000
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   285
  summary:     2
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   286
  
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   287
  *** runcommand status
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   288
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   289
  >>> import os
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   290
  >>> from hgclient import bprint, check, readchannel, runcommand
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   291
  >>> @check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   292
  ... def bookmarks(server):
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   293
  ...     readchannel(server)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   294
  ...     runcommand(server, [b'bookmarks'])
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   295
  ... 
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   296
  ...     # changes .hg/bookmarks
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   297
  ...     os.system('hg bookmark -i bm1')
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   298
  ...     os.system('hg bookmark -i bm2')
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   299
  ...     runcommand(server, [b'bookmarks'])
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   300
  ... 
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   301
  ...     # changes .hg/bookmarks.current
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   302
  ...     os.system('hg upd bm1 -q')
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   303
  ...     runcommand(server, [b'bookmarks'])
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   304
  ... 
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   305
  ...     runcommand(server, [b'bookmarks', b'bm3'])
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   306
  ...     f = open('a', 'ab')
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   307
  ...     f.write(b'a\n') and None
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   308
  ...     f.close()
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   309
  ...     runcommand(server, [b'commit', b'-Amm'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   310
  ...     runcommand(server, [b'bookmarks'])
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   311
  ...     bprint(b'')
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   312
  *** runcommand bookmarks
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   313
  no bookmarks set
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   314
  *** runcommand bookmarks
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   315
     bm1                       1:d3a0a68be6de
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   316
     bm2                       1:d3a0a68be6de
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   317
  *** runcommand bookmarks
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   318
   * bm1                       1:d3a0a68be6de
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   319
     bm2                       1:d3a0a68be6de
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   320
  *** runcommand bookmarks bm3
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   321
  *** runcommand commit -Amm
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   322
  *** runcommand bookmarks
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   323
     bm1                       1:d3a0a68be6de
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   324
     bm2                       1:d3a0a68be6de
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   325
   * bm3                       2:aef17e88f5f0
33939
a4c1333b2eda tests: add blank output lines to test-commandserver
Augie Fackler <raf@durin42.com>
parents: 33794
diff changeset
   326
  
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   327
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   328
  >>> import os
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
   329
  >>> from hgclient import check, readchannel, runcommand
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   330
  >>> @check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   331
  ... def tagscache(server):
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   332
  ...     readchannel(server)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   333
  ...     runcommand(server, [b'id', b'-t', b'-r', b'0'])
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   334
  ...     os.system('hg tag -r 0 foo')
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   335
  ...     runcommand(server, [b'id', b'-t', b'-r', b'0'])
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   336
  *** runcommand id -t -r 0
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   337
  
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   338
  *** runcommand id -t -r 0
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   339
  foo
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   340
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   341
  >>> import os
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
   342
  >>> from hgclient import check, readchannel, runcommand
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   343
  >>> @check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   344
  ... def setphase(server):
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   345
  ...     readchannel(server)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   346
  ...     runcommand(server, [b'phase', b'-r', b'.'])
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   347
  ...     os.system('hg phase -r . -p')
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   348
  ...     runcommand(server, [b'phase', b'-r', b'.'])
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   349
  *** runcommand phase -r .
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   350
  3: draft
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   351
  *** runcommand phase -r .
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   352
  3: public
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   353
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   354
  $ echo a >> a
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   355
  >>> from hgclient import bprint, check, readchannel, runcommand
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   356
  >>> @check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   357
  ... def rollback(server):
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   358
  ...     readchannel(server)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   359
  ...     runcommand(server, [b'phase', b'-r', b'.', b'-p'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   360
  ...     runcommand(server, [b'commit', b'-Am.'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   361
  ...     runcommand(server, [b'rollback'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   362
  ...     runcommand(server, [b'phase', b'-r', b'.'])
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   363
  ...     bprint(b'')
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   364
  *** runcommand phase -r . -p
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   365
  no phases changed
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   366
  *** runcommand commit -Am.
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   367
  *** runcommand rollback
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   368
  repository tip rolled back to revision 3 (undo commit)
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   369
  working directory now based on revision 3
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   370
  *** runcommand phase -r .
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   371
  3: public
33939
a4c1333b2eda tests: add blank output lines to test-commandserver
Augie Fackler <raf@durin42.com>
parents: 33794
diff changeset
   372
  
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   373
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   374
  >>> import os
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
   375
  >>> from hgclient import check, readchannel, runcommand
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   376
  >>> @check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   377
  ... def branch(server):
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   378
  ...     readchannel(server)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   379
  ...     runcommand(server, [b'branch'])
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   380
  ...     os.system('hg branch foo')
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   381
  ...     runcommand(server, [b'branch'])
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   382
  ...     os.system('hg branch default')
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   383
  *** runcommand branch
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   384
  default
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   385
  marked working directory as branch foo
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   386
  (branches are permanent and global, did you want a bookmark?)
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   387
  *** runcommand branch
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   388
  foo
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   389
  marked working directory as branch default
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   390
  (branches are permanent and global, did you want a bookmark?)
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   391
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   392
  $ touch .hgignore
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   393
  >>> import os
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   394
  >>> from hgclient import bprint, check, readchannel, runcommand
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   395
  >>> @check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   396
  ... def hgignore(server):
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   397
  ...     readchannel(server)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   398
  ...     runcommand(server, [b'commit', b'-Am.'])
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   399
  ...     f = open('ignored-file', 'ab')
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   400
  ...     f.write(b'') and None
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   401
  ...     f.close()
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   402
  ...     f = open('.hgignore', 'ab')
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   403
  ...     f.write(b'ignored-file')
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   404
  ...     f.close()
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   405
  ...     runcommand(server, [b'status', b'-i', b'-u'])
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   406
  ...     bprint(b'')
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   407
  *** runcommand commit -Am.
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   408
  adding .hgignore
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   409
  *** runcommand status -i -u
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   410
  I ignored-file
33939
a4c1333b2eda tests: add blank output lines to test-commandserver
Augie Fackler <raf@durin42.com>
parents: 33794
diff changeset
   411
  
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   412
26405
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   413
cache of non-public revisions should be invalidated on repository change
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   414
(issue4855):
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   415
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   416
  >>> import os
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   417
  >>> from hgclient import bprint, check, readchannel, runcommand
26405
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   418
  >>> @check
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   419
  ... def phasesetscacheaftercommit(server):
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   420
  ...     readchannel(server)
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   421
  ...     # load _phasecache._phaserevs and _phasesets
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   422
  ...     runcommand(server, [b'log', b'-qr', b'draft()'])
26405
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   423
  ...     # create draft commits by another process
36322
257071fd3357 py3: use range instead of xrange in tests/test-commandserver.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 35289
diff changeset
   424
  ...     for i in range(5, 7):
26431
46984a5308a0 test-commandserver: generate files with a fixed EOL for test stability
Matt Harbison <matt_harbison@yahoo.com>
parents: 26409
diff changeset
   425
  ...         f = open('a', 'ab')
46984a5308a0 test-commandserver: generate files with a fixed EOL for test stability
Matt Harbison <matt_harbison@yahoo.com>
parents: 26409
diff changeset
   426
  ...         f.seek(0, os.SEEK_END)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   427
  ...         f.write(b'a\n') and None
26431
46984a5308a0 test-commandserver: generate files with a fixed EOL for test stability
Matt Harbison <matt_harbison@yahoo.com>
parents: 26409
diff changeset
   428
  ...         f.close()
26405
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   429
  ...         os.system('hg commit -Aqm%d' % i)
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   430
  ...     # new commits should be listed as draft revisions
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   431
  ...     runcommand(server, [b'log', b'-qr', b'draft()'])
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   432
  ...     bprint(b'')
26405
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   433
  *** runcommand log -qr draft()
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   434
  4:7966c8e3734d
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   435
  *** runcommand log -qr draft()
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   436
  4:7966c8e3734d
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   437
  5:41f6602d1c4f
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   438
  6:10501e202c35
33939
a4c1333b2eda tests: add blank output lines to test-commandserver
Augie Fackler <raf@durin42.com>
parents: 33794
diff changeset
   439
  
26405
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   440
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   441
  >>> import os
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   442
  >>> from hgclient import bprint, check, readchannel, runcommand
26405
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   443
  >>> @check
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   444
  ... def phasesetscacheafterstrip(server):
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   445
  ...     readchannel(server)
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   446
  ...     # load _phasecache._phaserevs and _phasesets
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   447
  ...     runcommand(server, [b'log', b'-qr', b'draft()'])
26405
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   448
  ...     # strip cached revisions by another process
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   449
  ...     os.system('hg --config extensions.strip= strip -q 5')
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   450
  ...     # shouldn't abort by "unknown revision '6'"
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   451
  ...     runcommand(server, [b'log', b'-qr', b'draft()'])
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   452
  ...     bprint(b'')
26405
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   453
  *** runcommand log -qr draft()
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   454
  4:7966c8e3734d
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   455
  5:41f6602d1c4f
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   456
  6:10501e202c35
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   457
  *** runcommand log -qr draft()
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   458
  4:7966c8e3734d
33939
a4c1333b2eda tests: add blank output lines to test-commandserver
Augie Fackler <raf@durin42.com>
parents: 33794
diff changeset
   459
  
26405
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   460
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   461
cache of phase roots should be invalidated on strip (issue3827):
c15d8f84343e localrepo: recreate phasecache if changelog was modified (issue4855)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   462
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   463
  >>> import os
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
   464
  >>> from hgclient import check, readchannel, runcommand, sep
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   465
  >>> @check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   466
  ... def phasecacheafterstrip(server):
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   467
  ...     readchannel(server)
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   468
  ... 
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   469
  ...     # create new head, 5:731265503d86
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   470
  ...     runcommand(server, [b'update', b'-C', b'0'])
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   471
  ...     f = open('a', 'ab')
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   472
  ...     f.write(b'a\n') and None
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   473
  ...     f.close()
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   474
  ...     runcommand(server, [b'commit', b'-Am.', b'a'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   475
  ...     runcommand(server, [b'log', b'-Gq'])
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   476
  ... 
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   477
  ...     # make it public; draft marker moves to 4:7966c8e3734d
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   478
  ...     runcommand(server, [b'phase', b'-p', b'.'])
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   479
  ...     # load _phasecache.phaseroots
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   480
  ...     runcommand(server, [b'phase', b'.'], outfilter=sep)
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   481
  ... 
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   482
  ...     # strip 1::4 outside server
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   483
  ...     os.system('hg -q --config extensions.mq= strip 1')
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   484
  ... 
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   485
  ...     # shouldn't raise "7966c8e3734d: no node!"
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   486
  ...     runcommand(server, [b'branches'])
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   487
  *** runcommand update -C 0
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   488
  1 files updated, 0 files merged, 2 files removed, 0 files unresolved
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   489
  (leaving bookmark bm3)
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   490
  *** runcommand commit -Am. a
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   491
  created new head
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   492
  *** runcommand log -Gq
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   493
  @  5:731265503d86
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   494
  |
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   495
  | o  4:7966c8e3734d
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   496
  | |
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   497
  | o  3:b9b85890c400
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   498
  | |
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   499
  | o  2:aef17e88f5f0
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   500
  | |
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   501
  | o  1:d3a0a68be6de
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   502
  |/
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   503
  o  0:eff892de26ec
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   504
  
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   505
  *** runcommand phase -p .
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   506
  *** runcommand phase .
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   507
  5: public
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   508
  *** runcommand branches
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   509
  default                        1:731265503d86
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   510
26251
5c0f5db65c6b localrepo: refresh filecache stats only if transaction finished successfully
Yuya Nishihara <yuya@tcha.org>
parents: 26142
diff changeset
   511
in-memory cache must be reloaded if transaction is aborted. otherwise
5c0f5db65c6b localrepo: refresh filecache stats only if transaction finished successfully
Yuya Nishihara <yuya@tcha.org>
parents: 26142
diff changeset
   512
changelog and manifest would have invalid node:
5c0f5db65c6b localrepo: refresh filecache stats only if transaction finished successfully
Yuya Nishihara <yuya@tcha.org>
parents: 26142
diff changeset
   513
5c0f5db65c6b localrepo: refresh filecache stats only if transaction finished successfully
Yuya Nishihara <yuya@tcha.org>
parents: 26142
diff changeset
   514
  $ echo a >> a
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
   515
  >>> from hgclient import check, readchannel, runcommand
26251
5c0f5db65c6b localrepo: refresh filecache stats only if transaction finished successfully
Yuya Nishihara <yuya@tcha.org>
parents: 26142
diff changeset
   516
  >>> @check
5c0f5db65c6b localrepo: refresh filecache stats only if transaction finished successfully
Yuya Nishihara <yuya@tcha.org>
parents: 26142
diff changeset
   517
  ... def txabort(server):
5c0f5db65c6b localrepo: refresh filecache stats only if transaction finished successfully
Yuya Nishihara <yuya@tcha.org>
parents: 26142
diff changeset
   518
  ...     readchannel(server)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   519
  ...     runcommand(server, [b'commit', b'--config', b'hooks.pretxncommit=false',
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   520
  ...                         b'-mfoo'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   521
  ...     runcommand(server, [b'verify'])
26251
5c0f5db65c6b localrepo: refresh filecache stats only if transaction finished successfully
Yuya Nishihara <yuya@tcha.org>
parents: 26142
diff changeset
   522
  *** runcommand commit --config hooks.pretxncommit=false -mfoo
5c0f5db65c6b localrepo: refresh filecache stats only if transaction finished successfully
Yuya Nishihara <yuya@tcha.org>
parents: 26142
diff changeset
   523
  transaction abort!
5c0f5db65c6b localrepo: refresh filecache stats only if transaction finished successfully
Yuya Nishihara <yuya@tcha.org>
parents: 26142
diff changeset
   524
  rollback completed
5c0f5db65c6b localrepo: refresh filecache stats only if transaction finished successfully
Yuya Nishihara <yuya@tcha.org>
parents: 26142
diff changeset
   525
  abort: pretxncommit hook exited with status 1
46485
768056549737 errors: use exit code 40 for when a hook fails
Martin von Zweigbergk <martinvonz@google.com>
parents: 46030
diff changeset
   526
   [40]
26251
5c0f5db65c6b localrepo: refresh filecache stats only if transaction finished successfully
Yuya Nishihara <yuya@tcha.org>
parents: 26142
diff changeset
   527
  *** runcommand verify
5c0f5db65c6b localrepo: refresh filecache stats only if transaction finished successfully
Yuya Nishihara <yuya@tcha.org>
parents: 26142
diff changeset
   528
  checking changesets
5c0f5db65c6b localrepo: refresh filecache stats only if transaction finished successfully
Yuya Nishihara <yuya@tcha.org>
parents: 26142
diff changeset
   529
  checking manifests
5c0f5db65c6b localrepo: refresh filecache stats only if transaction finished successfully
Yuya Nishihara <yuya@tcha.org>
parents: 26142
diff changeset
   530
  crosschecking files in changesets and manifests
5c0f5db65c6b localrepo: refresh filecache stats only if transaction finished successfully
Yuya Nishihara <yuya@tcha.org>
parents: 26142
diff changeset
   531
  checking files
39506
f1186c292d03 verify: make output less confusing (issue5924)
Meirambek Omyrzak <meirambek77@gmail.com>
parents: 37427
diff changeset
   532
  checked 2 changesets with 2 changes to 1 files
26251
5c0f5db65c6b localrepo: refresh filecache stats only if transaction finished successfully
Yuya Nishihara <yuya@tcha.org>
parents: 26142
diff changeset
   533
  $ hg revert --no-backup -aq
5c0f5db65c6b localrepo: refresh filecache stats only if transaction finished successfully
Yuya Nishihara <yuya@tcha.org>
parents: 26142
diff changeset
   534
22955
fab9dda0f2a3 obsolete: update tests to use obsolete options
Durham Goode <durham@fb.com>
parents: 22783
diff changeset
   535
  $ cat >> .hg/hgrc << EOF
fab9dda0f2a3 obsolete: update tests to use obsolete options
Durham Goode <durham@fb.com>
parents: 22783
diff changeset
   536
  > [experimental]
34866
1644623ab096 config: use 'experimental.evolution.create-markers'
Boris Feld <boris.feld@octobus.net>
parents: 34852
diff changeset
   537
  > evolution.createmarkers=True
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   538
  > EOF
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   539
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   540
  >>> import os
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
   541
  >>> from hgclient import check, readchannel, runcommand
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   542
  >>> @check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   543
  ... def obsolete(server):
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   544
  ...     readchannel(server)
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   545
  ... 
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   546
  ...     runcommand(server, [b'up', b'null'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   547
  ...     runcommand(server, [b'phase', b'-df', b'tip'])
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   548
  ...     cmd = 'hg debugobsolete `hg log -r tip --template {node}`'
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   549
  ...     if os.name == 'nt':
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   550
  ...         cmd = 'sh -c "%s"' % cmd # run in sh, not cmd.exe
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   551
  ...     os.system(cmd)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   552
  ...     runcommand(server, [b'log', b'--hidden'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   553
  ...     runcommand(server, [b'log'])
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   554
  *** runcommand up null
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   555
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   556
  *** runcommand phase -df tip
42899
34a46d48d24e debugobsolete: also issue the "new obsmarkers" messsage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42620
diff changeset
   557
  1 new obsolescence markers
33542
b11e8c67fb0f debugobsolete: also report the number of obsoleted changesets
Boris Feld <boris.feld@octobus.net>
parents: 33426
diff changeset
   558
  obsoleted 1 changesets
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   559
  *** runcommand log --hidden
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   560
  changeset:   1:731265503d86
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   561
  tag:         tip
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   562
  user:        test
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   563
  date:        Thu Jan 01 00:00:00 1970 +0000
34900
3a3adbcbd3a0 obsfate: rename obsfate into obsolete in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents: 34866
diff changeset
   564
  obsolete:    pruned
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   565
  summary:     .
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   566
  
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   567
  changeset:   0:eff892de26ec
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   568
  bookmark:    bm1
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   569
  bookmark:    bm2
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   570
  bookmark:    bm3
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   571
  user:        test
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   572
  date:        Thu Jan 01 00:00:00 1970 +0000
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   573
  summary:     1
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   574
  
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   575
  *** runcommand log
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   576
  changeset:   0:eff892de26ec
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   577
  bookmark:    bm1
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   578
  bookmark:    bm2
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   579
  bookmark:    bm3
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   580
  tag:         tip
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   581
  user:        test
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   582
  date:        Thu Jan 01 00:00:00 1970 +0000
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   583
  summary:     1
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   584
  
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   585
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   586
  $ cat <<EOF >> .hg/hgrc
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   587
  > [extensions]
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   588
  > mq =
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   589
  > EOF
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   590
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   591
  >>> import os
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
   592
  >>> from hgclient import check, readchannel, runcommand
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   593
  >>> @check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   594
  ... def mqoutsidechanges(server):
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   595
  ...     readchannel(server)
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   596
  ... 
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   597
  ...     # load repo.mq
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   598
  ...     runcommand(server, [b'qapplied'])
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   599
  ...     os.system('hg qnew 0.diff')
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   600
  ...     # repo.mq should be invalidated
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   601
  ...     runcommand(server, [b'qapplied'])
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   602
  ... 
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   603
  ...     runcommand(server, [b'qpop', b'--all'])
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   604
  ...     os.system('hg qqueue --create foo')
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   605
  ...     # repo.mq should be recreated to point to new queue
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   606
  ...     runcommand(server, [b'qqueue', b'--active'])
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   607
  *** runcommand qapplied
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   608
  *** runcommand qapplied
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   609
  0.diff
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   610
  *** runcommand qpop --all
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   611
  popping 0.diff
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   612
  patch queue now empty
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   613
  *** runcommand qqueue --active
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   614
  foo
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   615
40638
c49283e740da test-commandserver: clean up quoting and location of dbgui extension
Yuya Nishihara <yuya@tcha.org>
parents: 40637
diff changeset
   616
  $ cat <<'EOF' > ../dbgui.py
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
   617
  > import os
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
   618
  > import sys
32376
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31030
diff changeset
   619
  > from mercurial import commands, registrar
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   620
  > cmdtable = {}
32376
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31030
diff changeset
   621
  > command = registrar.command(cmdtable)
33109
fce4ed2912bb py3: make sure commands name are bytes in tests
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32452
diff changeset
   622
  > @command(b"debuggetpass", norepo=True)
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   623
  > def debuggetpass(ui):
40638
c49283e740da test-commandserver: clean up quoting and location of dbgui extension
Yuya Nishihara <yuya@tcha.org>
parents: 40637
diff changeset
   624
  >     ui.write(b"%s\n" % ui.getpass())
33109
fce4ed2912bb py3: make sure commands name are bytes in tests
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32452
diff changeset
   625
  > @command(b"debugprompt", norepo=True)
22783
524b786bd54f ui: disable echo back of prompt input if ui is set to non-tty purposely
Yuya Nishihara <yuya@tcha.org>
parents: 22572
diff changeset
   626
  > def debugprompt(ui):
40638
c49283e740da test-commandserver: clean up quoting and location of dbgui extension
Yuya Nishihara <yuya@tcha.org>
parents: 40637
diff changeset
   627
  >     ui.write(b"%s\n" % ui.prompt(b"prompt:"))
40639
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   628
  > @command(b"debugpromptchoice", norepo=True)
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   629
  > def debugpromptchoice(ui):
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   630
  >     msg = b"promptchoice (y/n)? $$ &Yes $$ &No"
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   631
  >     ui.write(b"%d\n" % ui.promptchoice(msg))
33109
fce4ed2912bb py3: make sure commands name are bytes in tests
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32452
diff changeset
   632
  > @command(b"debugreadstdin", norepo=True)
23324
69f86b937035 cmdserver: protect pipe server streams against corruption caused by direct io
Yuya Nishihara <yuya@tcha.org>
parents: 23322
diff changeset
   633
  > def debugreadstdin(ui):
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   634
  >     ui.write(b"read: %r\n" % sys.stdin.read(1))
33109
fce4ed2912bb py3: make sure commands name are bytes in tests
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32452
diff changeset
   635
  > @command(b"debugwritestdout", norepo=True)
23324
69f86b937035 cmdserver: protect pipe server streams against corruption caused by direct io
Yuya Nishihara <yuya@tcha.org>
parents: 23322
diff changeset
   636
  > def debugwritestdout(ui):
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   637
  >     os.write(1, b"low-level stdout fd and\n")
37222
7f78de1c93aa procutil: redirect ui.fout to stderr while stdio is protected
Yuya Nishihara <yuya@tcha.org>
parents: 37012
diff changeset
   638
  >     sys.stdout.write("stdout should be redirected to stderr\n")
23324
69f86b937035 cmdserver: protect pipe server streams against corruption caused by direct io
Yuya Nishihara <yuya@tcha.org>
parents: 23322
diff changeset
   639
  >     sys.stdout.flush()
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   640
  > EOF
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   641
  $ cat <<EOF >> .hg/hgrc
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   642
  > [extensions]
40638
c49283e740da test-commandserver: clean up quoting and location of dbgui extension
Yuya Nishihara <yuya@tcha.org>
parents: 40637
diff changeset
   643
  > dbgui = ../dbgui.py
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   644
  > EOF
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   645
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
   646
  >>> from hgclient import check, readchannel, runcommand, stringio
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   647
  >>> @check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   648
  ... def getpass(server):
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   649
  ...     readchannel(server)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   650
  ...     runcommand(server, [b'debuggetpass', b'--config',
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   651
  ...                         b'ui.interactive=True'],
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   652
  ...                input=stringio(b'1234\n'))
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   653
  ...     runcommand(server, [b'debuggetpass', b'--config',
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   654
  ...                         b'ui.interactive=True'],
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   655
  ...                input=stringio(b'\n'))
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   656
  ...     runcommand(server, [b'debuggetpass', b'--config',
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   657
  ...                         b'ui.interactive=True'],
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   658
  ...                input=stringio(b''))
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   659
  ...     runcommand(server, [b'debugprompt', b'--config',
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   660
  ...                         b'ui.interactive=True'],
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   661
  ...                input=stringio(b'5678\n'))
44187
98c14f0108b8 py3: fix EOL detection in commandserver.channeledinput
Yuya Nishihara <yuya@tcha.org>
parents: 42899
diff changeset
   662
  ...     runcommand(server, [b'debugprompt', b'--config',
98c14f0108b8 py3: fix EOL detection in commandserver.channeledinput
Yuya Nishihara <yuya@tcha.org>
parents: 42899
diff changeset
   663
  ...                         b'ui.interactive=True'],
98c14f0108b8 py3: fix EOL detection in commandserver.channeledinput
Yuya Nishihara <yuya@tcha.org>
parents: 42899
diff changeset
   664
  ...                input=stringio(b'\nremainder\nshould\nnot\nbe\nread\n'))
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   665
  ...     runcommand(server, [b'debugreadstdin'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   666
  ...     runcommand(server, [b'debugwritestdout'])
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   667
  *** runcommand debuggetpass --config ui.interactive=True
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   668
  password: 1234
30814
b96c57c1f860 ui: check EOF of getpass() response read from command-server channel
Yuya Nishihara <yuya@tcha.org>
parents: 30373
diff changeset
   669
  *** runcommand debuggetpass --config ui.interactive=True
b96c57c1f860 ui: check EOF of getpass() response read from command-server channel
Yuya Nishihara <yuya@tcha.org>
parents: 30373
diff changeset
   670
  password: 
b96c57c1f860 ui: check EOF of getpass() response read from command-server channel
Yuya Nishihara <yuya@tcha.org>
parents: 30373
diff changeset
   671
  *** runcommand debuggetpass --config ui.interactive=True
b96c57c1f860 ui: check EOF of getpass() response read from command-server channel
Yuya Nishihara <yuya@tcha.org>
parents: 30373
diff changeset
   672
  password: abort: response expected
b96c57c1f860 ui: check EOF of getpass() response read from command-server channel
Yuya Nishihara <yuya@tcha.org>
parents: 30373
diff changeset
   673
   [255]
22783
524b786bd54f ui: disable echo back of prompt input if ui is set to non-tty purposely
Yuya Nishihara <yuya@tcha.org>
parents: 22572
diff changeset
   674
  *** runcommand debugprompt --config ui.interactive=True
524b786bd54f ui: disable echo back of prompt input if ui is set to non-tty purposely
Yuya Nishihara <yuya@tcha.org>
parents: 22572
diff changeset
   675
  prompt: 5678
44187
98c14f0108b8 py3: fix EOL detection in commandserver.channeledinput
Yuya Nishihara <yuya@tcha.org>
parents: 42899
diff changeset
   676
  *** runcommand debugprompt --config ui.interactive=True
98c14f0108b8 py3: fix EOL detection in commandserver.channeledinput
Yuya Nishihara <yuya@tcha.org>
parents: 42899
diff changeset
   677
  prompt: y
23324
69f86b937035 cmdserver: protect pipe server streams against corruption caused by direct io
Yuya Nishihara <yuya@tcha.org>
parents: 23322
diff changeset
   678
  *** runcommand debugreadstdin
69f86b937035 cmdserver: protect pipe server streams against corruption caused by direct io
Yuya Nishihara <yuya@tcha.org>
parents: 23322
diff changeset
   679
  read: ''
69f86b937035 cmdserver: protect pipe server streams against corruption caused by direct io
Yuya Nishihara <yuya@tcha.org>
parents: 23322
diff changeset
   680
  *** runcommand debugwritestdout
37222
7f78de1c93aa procutil: redirect ui.fout to stderr while stdio is protected
Yuya Nishihara <yuya@tcha.org>
parents: 37012
diff changeset
   681
  low-level stdout fd and
7f78de1c93aa procutil: redirect ui.fout to stderr while stdio is protected
Yuya Nishihara <yuya@tcha.org>
parents: 37012
diff changeset
   682
  stdout should be redirected to stderr
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   683
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   684
23322
000cfc8b3913 cmdserver: use given streams as pipe channels like other commands
Yuya Nishihara <yuya@tcha.org>
parents: 23095
diff changeset
   685
run commandserver in commandserver, which is silly but should work:
000cfc8b3913 cmdserver: use given streams as pipe channels like other commands
Yuya Nishihara <yuya@tcha.org>
parents: 23095
diff changeset
   686
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   687
  >>> from hgclient import bprint, check, readchannel, runcommand, stringio
23322
000cfc8b3913 cmdserver: use given streams as pipe channels like other commands
Yuya Nishihara <yuya@tcha.org>
parents: 23095
diff changeset
   688
  >>> @check
000cfc8b3913 cmdserver: use given streams as pipe channels like other commands
Yuya Nishihara <yuya@tcha.org>
parents: 23095
diff changeset
   689
  ... def nested(server):
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   690
  ...     bprint(b'%c, %r' % readchannel(server))
23322
000cfc8b3913 cmdserver: use given streams as pipe channels like other commands
Yuya Nishihara <yuya@tcha.org>
parents: 23095
diff changeset
   691
  ...     class nestedserver(object):
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   692
  ...         stdin = stringio(b'getencoding\n')
28836
3f45488d70df test-commandserver: handle cStringIO.StringIO/io.StringIO divergence
timeless <timeless@mozdev.org>
parents: 28511
diff changeset
   693
  ...         stdout = stringio()
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   694
  ...     runcommand(server, [b'serve', b'--cmdserver', b'pipe'],
23322
000cfc8b3913 cmdserver: use given streams as pipe channels like other commands
Yuya Nishihara <yuya@tcha.org>
parents: 23095
diff changeset
   695
  ...                output=nestedserver.stdout, input=nestedserver.stdin)
000cfc8b3913 cmdserver: use given streams as pipe channels like other commands
Yuya Nishihara <yuya@tcha.org>
parents: 23095
diff changeset
   696
  ...     nestedserver.stdout.seek(0)
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   697
  ...     bprint(b'%c, %r' % readchannel(nestedserver))  # hello
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   698
  ...     bprint(b'%c, %r' % readchannel(nestedserver))  # getencoding
23322
000cfc8b3913 cmdserver: use given streams as pipe channels like other commands
Yuya Nishihara <yuya@tcha.org>
parents: 23095
diff changeset
   699
  o, 'capabilities: getencoding runcommand\nencoding: *\npid: *' (glob)
000cfc8b3913 cmdserver: use given streams as pipe channels like other commands
Yuya Nishihara <yuya@tcha.org>
parents: 23095
diff changeset
   700
  *** runcommand serve --cmdserver pipe
000cfc8b3913 cmdserver: use given streams as pipe channels like other commands
Yuya Nishihara <yuya@tcha.org>
parents: 23095
diff changeset
   701
  o, 'capabilities: getencoding runcommand\nencoding: *\npid: *' (glob)
000cfc8b3913 cmdserver: use given streams as pipe channels like other commands
Yuya Nishihara <yuya@tcha.org>
parents: 23095
diff changeset
   702
  r, '*' (glob)
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   703
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   704
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   705
start without repository:
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   706
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   707
  $ cd ..
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   708
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   709
  >>> from hgclient import bprint, check, readchannel, runcommand
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   710
  >>> @check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   711
  ... def hellomessage(server):
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   712
  ...     ch, data = readchannel(server)
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   713
  ...     bprint(b'%c, %r' % (ch, data))
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   714
  ...     # run an arbitrary command to make sure the next thing the server
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   715
  ...     # sends isn't part of the hello message
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   716
  ...     runcommand(server, [b'id'])
23036
19f5273c9f3e cmdserver: include pid of server handling requests in hello message
Yuya Nishihara <yuya@tcha.org>
parents: 22994
diff changeset
   717
  o, 'capabilities: getencoding runcommand\nencoding: *\npid: *' (glob)
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   718
  *** runcommand id
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   719
  abort: there is no Mercurial repository here (.hg not found)
45846
8d72e29ad1e0 errors: introduce InputError and use it from commands and cmdutil
Martin von Zweigbergk <martinvonz@google.com>
parents: 45845
diff changeset
   720
   [10]
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   721
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
   722
  >>> from hgclient import check, readchannel, runcommand
22568
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   723
  >>> @check
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   724
  ... def startwithoutrepo(server):
78b99149ed8a test-commandserver: port test functions from .py to .t
Yuya Nishihara <yuya@tcha.org>
parents: 22567
diff changeset
   725
  ...     readchannel(server)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   726
  ...     runcommand(server, [b'init', b'repo2'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   727
  ...     runcommand(server, [b'id', b'-R', b'repo2'])
22572
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   728
  *** runcommand init repo2
cc3d9f776632 test-commandserver: make runcommand message bolder
Yuya Nishihara <yuya@tcha.org>
parents: 22571
diff changeset
   729
  *** runcommand id -R repo2
22567
f9a4a035003d test-commandserver: add stub for .t test by copying .out with 2-space indent
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   730
  000000000000 tip
22994
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   731
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   732
26142
7332bf4ae959 dispatch: error out on invalid -R path even if optionalrepo (issue4805) (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   733
don't fall back to cwd if invalid -R path is specified (issue4805):
7332bf4ae959 dispatch: error out on invalid -R path even if optionalrepo (issue4805) (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   734
7332bf4ae959 dispatch: error out on invalid -R path even if optionalrepo (issue4805) (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   735
  $ cd repo
7332bf4ae959 dispatch: error out on invalid -R path even if optionalrepo (issue4805) (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   736
  $ hg serve --cmdserver pipe -R ../nonexistent
45921
95c4cca641f6 errors: remove trailing "!" from some error messages for consistency
Martin von Zweigbergk <martinvonz@google.com>
parents: 45846
diff changeset
   737
  abort: repository ../nonexistent not found
26142
7332bf4ae959 dispatch: error out on invalid -R path even if optionalrepo (issue4805) (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   738
  [255]
7332bf4ae959 dispatch: error out on invalid -R path even if optionalrepo (issue4805) (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   739
  $ cd ..
7332bf4ae959 dispatch: error out on invalid -R path even if optionalrepo (issue4805) (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   740
7332bf4ae959 dispatch: error out on invalid -R path even if optionalrepo (issue4805) (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 25290
diff changeset
   741
45058
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   742
#if no-windows
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   743
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   744
option to not shutdown on SIGINT:
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   745
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   746
  $ cat <<'EOF' > dbgint.py
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   747
  > import os
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   748
  > import signal
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   749
  > import time
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   750
  > from mercurial import commands, registrar
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   751
  > cmdtable = {}
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   752
  > command = registrar.command(cmdtable)
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   753
  > @command(b"debugsleep", norepo=True)
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   754
  > def debugsleep(ui):
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   755
  >     time.sleep(1)
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   756
  > @command(b"debugsuicide", norepo=True)
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   757
  > def debugsuicide(ui):
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   758
  >     os.kill(os.getpid(), signal.SIGINT)
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   759
  >     time.sleep(1)
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   760
  > EOF
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   761
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   762
  >>> import signal
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   763
  >>> import time
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   764
  >>> from hgclient import checkwith, readchannel, runcommand
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   765
  >>> @checkwith(extraargs=[b'--config', b'cmdserver.shutdown-on-interrupt=False',
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   766
  ...                       b'--config', b'extensions.dbgint=dbgint.py'])
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   767
  ... def nointr(server):
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   768
  ...     readchannel(server)
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   769
  ...     server.send_signal(signal.SIGINT)  # server won't be terminated
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   770
  ...     time.sleep(1)
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   771
  ...     runcommand(server, [b'debugsleep'])
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   772
  ...     server.send_signal(signal.SIGINT)  # server won't be terminated
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   773
  ...     runcommand(server, [b'debugsleep'])
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   774
  ...     runcommand(server, [b'debugsuicide'])  # command can be interrupted
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   775
  ...     server.send_signal(signal.SIGTERM)  # server will be terminated
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   776
  ...     time.sleep(1)
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   777
  *** runcommand debugsleep
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   778
  *** runcommand debugsleep
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   779
  *** runcommand debugsuicide
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   780
  interrupted!
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   781
  killed!
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   782
   [255]
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   783
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   784
#endif
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   785
d6e99a446eea cmdserver: add option to not exit from message loop on SIGINT
Yuya Nishihara <yuya@tcha.org>
parents: 44187
diff changeset
   786
40636
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   787
structured message channel:
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   788
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   789
  $ cat <<'EOF' >> repo2/.hg/hgrc
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   790
  > [ui]
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   791
  > # server --config should precede repository option
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   792
  > message-output = stdio
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   793
  > EOF
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   794
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   795
  >>> from hgclient import bprint, checkwith, readchannel, runcommand
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   796
  >>> @checkwith(extraargs=[b'--config', b'ui.message-output=channel',
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   797
  ...                       b'--config', b'cmdserver.message-encodings=foo cbor'])
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   798
  ... def verify(server):
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   799
  ...     _ch, data = readchannel(server)
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   800
  ...     bprint(data)
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   801
  ...     runcommand(server, [b'-R', b'repo2', b'verify'])
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   802
  capabilities: getencoding runcommand
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   803
  encoding: ascii
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   804
  message-encoding: cbor
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   805
  pid: * (glob)
40696
6d0fdeda43f7 tests: stabilize test-commandserver.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 40641
diff changeset
   806
  pgid: * (glob) (no-windows !)
40636
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   807
  *** runcommand -R repo2 verify
40637
83dd8c63a0c6 ui: extract helpers to write message with type or label
Yuya Nishihara <yuya@tcha.org>
parents: 40636
diff changeset
   808
  message: '\xa2DdataTchecking changesets\nDtypeFstatus'
40641
234c2d8c9e48 commandserver: send raw progress information to message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40640
diff changeset
   809
  message: '\xa6Ditem@Cpos\xf6EtopicHcheckingEtotal\xf6DtypeHprogressDunit@'
40637
83dd8c63a0c6 ui: extract helpers to write message with type or label
Yuya Nishihara <yuya@tcha.org>
parents: 40636
diff changeset
   810
  message: '\xa2DdataSchecking manifests\nDtypeFstatus'
40641
234c2d8c9e48 commandserver: send raw progress information to message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40640
diff changeset
   811
  message: '\xa6Ditem@Cpos\xf6EtopicHcheckingEtotal\xf6DtypeHprogressDunit@'
40637
83dd8c63a0c6 ui: extract helpers to write message with type or label
Yuya Nishihara <yuya@tcha.org>
parents: 40636
diff changeset
   812
  message: '\xa2DdataX0crosschecking files in changesets and manifests\nDtypeFstatus'
40641
234c2d8c9e48 commandserver: send raw progress information to message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40640
diff changeset
   813
  message: '\xa6Ditem@Cpos\xf6EtopicMcrosscheckingEtotal\xf6DtypeHprogressDunit@'
40637
83dd8c63a0c6 ui: extract helpers to write message with type or label
Yuya Nishihara <yuya@tcha.org>
parents: 40636
diff changeset
   814
  message: '\xa2DdataOchecking files\nDtypeFstatus'
40641
234c2d8c9e48 commandserver: send raw progress information to message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40640
diff changeset
   815
  message: '\xa6Ditem@Cpos\xf6EtopicHcheckingEtotal\xf6DtypeHprogressDunit@'
40637
83dd8c63a0c6 ui: extract helpers to write message with type or label
Yuya Nishihara <yuya@tcha.org>
parents: 40636
diff changeset
   816
  message: '\xa2DdataX/checked 0 changesets with 0 changes to 0 files\nDtypeFstatus'
40636
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   817
40639
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   818
  >>> from hgclient import checkwith, readchannel, runcommand, stringio
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   819
  >>> @checkwith(extraargs=[b'--config', b'ui.message-output=channel',
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   820
  ...                       b'--config', b'cmdserver.message-encodings=cbor',
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   821
  ...                       b'--config', b'extensions.dbgui=dbgui.py'])
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   822
  ... def prompt(server):
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   823
  ...     readchannel(server)
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   824
  ...     interactive = [b'--config', b'ui.interactive=True']
40640
6f0941f4a184 commandserver: make getpass() request distinct from normal prompt
Yuya Nishihara <yuya@tcha.org>
parents: 40639
diff changeset
   825
  ...     runcommand(server, [b'debuggetpass'] + interactive,
6f0941f4a184 commandserver: make getpass() request distinct from normal prompt
Yuya Nishihara <yuya@tcha.org>
parents: 40639
diff changeset
   826
  ...                input=stringio(b'1234\n'))
40639
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   827
  ...     runcommand(server, [b'debugprompt'] + interactive,
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   828
  ...                input=stringio(b'5678\n'))
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   829
  ...     runcommand(server, [b'debugpromptchoice'] + interactive,
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   830
  ...                input=stringio(b'n\n'))
40640
6f0941f4a184 commandserver: make getpass() request distinct from normal prompt
Yuya Nishihara <yuya@tcha.org>
parents: 40639
diff changeset
   831
  *** runcommand debuggetpass --config ui.interactive=True
6f0941f4a184 commandserver: make getpass() request distinct from normal prompt
Yuya Nishihara <yuya@tcha.org>
parents: 40639
diff changeset
   832
  message: '\xa3DdataJpassword: Hpassword\xf5DtypeFprompt'
6f0941f4a184 commandserver: make getpass() request distinct from normal prompt
Yuya Nishihara <yuya@tcha.org>
parents: 40639
diff changeset
   833
  1234
40639
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   834
  *** runcommand debugprompt --config ui.interactive=True
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   835
  message: '\xa3DdataGprompt:GdefaultAyDtypeFprompt'
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   836
   5678
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   837
  *** runcommand debugpromptchoice --config ui.interactive=True
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   838
  message: '\xa4Gchoices\x82\x82AyCYes\x82AnBNoDdataTpromptchoice (y/n)? GdefaultAyDtypeFprompt'
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   839
   1
83e571ea06a9 commandserver: attach prompt default and choices to message
Yuya Nishihara <yuya@tcha.org>
parents: 40638
diff changeset
   840
40636
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   841
bad message encoding:
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   842
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   843
  $ hg serve --cmdserver pipe --config ui.message-output=channel
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   844
  abort: no supported message encodings: 
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   845
  [255]
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   846
  $ hg serve --cmdserver pipe --config ui.message-output=channel \
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   847
  > --config cmdserver.message-encodings='foo bar'
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   848
  abort: no supported message encodings: foo bar
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   849
  [255]
054d0fcba2c4 commandserver: add experimental option to use separate message channel
Yuya Nishihara <yuya@tcha.org>
parents: 40522
diff changeset
   850
22994
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   851
unix domain socket:
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   852
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   853
  $ cd repo
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   854
  $ hg update -q
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   855
23095
ac827031fe05 tests: don't try to test unix sockets on vfat
Matt Mackall <mpm@selenic.com>
parents: 23053
diff changeset
   856
#if unix-socket unix-permissions
22994
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   857
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   858
  >>> from hgclient import bprint, check, readchannel, runcommand, stringio, unixserver
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   859
  >>> server = unixserver(b'.hg/server.sock', b'.hg/server.log')
22994
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   860
  >>> def hellomessage(conn):
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   861
  ...     ch, data = readchannel(conn)
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   862
  ...     bprint(b'%c, %r' % (ch, data))
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   863
  ...     runcommand(conn, [b'id'])
22994
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   864
  >>> check(hellomessage, server.connect)
23036
19f5273c9f3e cmdserver: include pid of server handling requests in hello message
Yuya Nishihara <yuya@tcha.org>
parents: 22994
diff changeset
   865
  o, 'capabilities: getencoding runcommand\nencoding: *\npid: *' (glob)
22994
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   866
  *** runcommand id
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   867
  eff892de26ec tip bm1/bm2/bm3
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   868
  >>> def unknowncommand(conn):
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   869
  ...     readchannel(conn)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   870
  ...     conn.stdin.write(b'unknowncommand\n')
22994
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   871
  >>> check(unknowncommand, server.connect)  # error sent to server.log
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   872
  >>> def serverinput(conn):
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   873
  ...     readchannel(conn)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   874
  ...     patch = b"""
22994
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   875
  ... # HG changeset patch
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   876
  ... # User test
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   877
  ... # Date 0 0
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   878
  ... 2
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   879
  ... 
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   880
  ... diff -r eff892de26ec -r 1ed24be7e7a0 a
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   881
  ... --- a/a
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   882
  ... +++ b/a
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   883
  ... @@ -1,1 +1,2 @@
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   884
  ...  1
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   885
  ... +2
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   886
  ... """
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   887
  ...     runcommand(conn, [b'import', b'-'], input=stringio(patch))
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   888
  ...     runcommand(conn, [b'log', b'-rtip', b'-q'])
22994
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   889
  >>> check(serverinput, server.connect)
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   890
  *** runcommand import -
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   891
  applying patch from stdin
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   892
  *** runcommand log -rtip -q
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   893
  2:1ed24be7e7a0
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   894
  >>> server.shutdown()
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   895
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   896
  $ cat .hg/server.log
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   897
  listening at .hg/server.sock
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   898
  abort: unknown command unknowncommand
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   899
  killed!
28511
ff5f923fca3c cmdserver: write early exception to 'e' channel in 'unix' mode
Yuya Nishihara <yuya@tcha.org>
parents: 28265
diff changeset
   900
  $ rm .hg/server.log
ff5f923fca3c cmdserver: write early exception to 'e' channel in 'unix' mode
Yuya Nishihara <yuya@tcha.org>
parents: 28265
diff changeset
   901
ff5f923fca3c cmdserver: write early exception to 'e' channel in 'unix' mode
Yuya Nishihara <yuya@tcha.org>
parents: 28265
diff changeset
   902
 if server crashed before hello, traceback will be sent to 'e' channel as
ff5f923fca3c cmdserver: write early exception to 'e' channel in 'unix' mode
Yuya Nishihara <yuya@tcha.org>
parents: 28265
diff changeset
   903
 last ditch:
ff5f923fca3c cmdserver: write early exception to 'e' channel in 'unix' mode
Yuya Nishihara <yuya@tcha.org>
parents: 28265
diff changeset
   904
40840
6a75363f834a test-commandserver: change way of triggering early crash
Yuya Nishihara <yuya@tcha.org>
parents: 40696
diff changeset
   905
  $ cat <<'EOF' > ../earlycrasher.py
6a75363f834a test-commandserver: change way of triggering early crash
Yuya Nishihara <yuya@tcha.org>
parents: 40696
diff changeset
   906
  > from mercurial import commandserver, extensions
40893
e7110f44ee2d commandserver: pass around option to hook repo instance creation
Yuya Nishihara <yuya@tcha.org>
parents: 40840
diff changeset
   907
  > def _serverequest(orig, ui, repo, conn, createcmdserver, prereposetups):
40840
6a75363f834a test-commandserver: change way of triggering early crash
Yuya Nishihara <yuya@tcha.org>
parents: 40696
diff changeset
   908
  >     def createcmdserver(*args, **kwargs):
6a75363f834a test-commandserver: change way of triggering early crash
Yuya Nishihara <yuya@tcha.org>
parents: 40696
diff changeset
   909
  >         raise Exception('crash')
40893
e7110f44ee2d commandserver: pass around option to hook repo instance creation
Yuya Nishihara <yuya@tcha.org>
parents: 40840
diff changeset
   910
  >     return orig(ui, repo, conn, createcmdserver, prereposetups)
40840
6a75363f834a test-commandserver: change way of triggering early crash
Yuya Nishihara <yuya@tcha.org>
parents: 40696
diff changeset
   911
  > def extsetup(ui):
6a75363f834a test-commandserver: change way of triggering early crash
Yuya Nishihara <yuya@tcha.org>
parents: 40696
diff changeset
   912
  >     extensions.wrapfunction(commandserver, b'_serverequest', _serverequest)
6a75363f834a test-commandserver: change way of triggering early crash
Yuya Nishihara <yuya@tcha.org>
parents: 40696
diff changeset
   913
  > EOF
28511
ff5f923fca3c cmdserver: write early exception to 'e' channel in 'unix' mode
Yuya Nishihara <yuya@tcha.org>
parents: 28265
diff changeset
   914
  $ cat <<EOF >> .hg/hgrc
40840
6a75363f834a test-commandserver: change way of triggering early crash
Yuya Nishihara <yuya@tcha.org>
parents: 40696
diff changeset
   915
  > [extensions]
6a75363f834a test-commandserver: change way of triggering early crash
Yuya Nishihara <yuya@tcha.org>
parents: 40696
diff changeset
   916
  > earlycrasher = ../earlycrasher.py
28511
ff5f923fca3c cmdserver: write early exception to 'e' channel in 'unix' mode
Yuya Nishihara <yuya@tcha.org>
parents: 28265
diff changeset
   917
  > EOF
40355
77ab5fbdbbf0 py3: use bprint() helper in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 40354
diff changeset
   918
  >>> from hgclient import bprint, check, readchannel, unixserver
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   919
  >>> server = unixserver(b'.hg/server.sock', b'.hg/server.log')
28511
ff5f923fca3c cmdserver: write early exception to 'e' channel in 'unix' mode
Yuya Nishihara <yuya@tcha.org>
parents: 28265
diff changeset
   920
  >>> def earlycrash(conn):
ff5f923fca3c cmdserver: write early exception to 'e' channel in 'unix' mode
Yuya Nishihara <yuya@tcha.org>
parents: 28265
diff changeset
   921
  ...     while True:
ff5f923fca3c cmdserver: write early exception to 'e' channel in 'unix' mode
Yuya Nishihara <yuya@tcha.org>
parents: 28265
diff changeset
   922
  ...         try:
ff5f923fca3c cmdserver: write early exception to 'e' channel in 'unix' mode
Yuya Nishihara <yuya@tcha.org>
parents: 28265
diff changeset
   923
  ...             ch, data = readchannel(conn)
40361
b7de186efd82 py3: don't use traceback.print_exc() in commandserver.py
Yuya Nishihara <yuya@tcha.org>
parents: 40356
diff changeset
   924
  ...             for l in data.splitlines(True):
b7de186efd82 py3: don't use traceback.print_exc() in commandserver.py
Yuya Nishihara <yuya@tcha.org>
parents: 40356
diff changeset
   925
  ...                 if not l.startswith(b'  '):
b7de186efd82 py3: don't use traceback.print_exc() in commandserver.py
Yuya Nishihara <yuya@tcha.org>
parents: 40356
diff changeset
   926
  ...                     bprint(b'%c, %r' % (ch, l))
28511
ff5f923fca3c cmdserver: write early exception to 'e' channel in 'unix' mode
Yuya Nishihara <yuya@tcha.org>
parents: 28265
diff changeset
   927
  ...         except EOFError:
ff5f923fca3c cmdserver: write early exception to 'e' channel in 'unix' mode
Yuya Nishihara <yuya@tcha.org>
parents: 28265
diff changeset
   928
  ...             break
ff5f923fca3c cmdserver: write early exception to 'e' channel in 'unix' mode
Yuya Nishihara <yuya@tcha.org>
parents: 28265
diff changeset
   929
  >>> check(earlycrash, server.connect)
ff5f923fca3c cmdserver: write early exception to 'e' channel in 'unix' mode
Yuya Nishihara <yuya@tcha.org>
parents: 28265
diff changeset
   930
  e, 'Traceback (most recent call last):\n'
40840
6a75363f834a test-commandserver: change way of triggering early crash
Yuya Nishihara <yuya@tcha.org>
parents: 40696
diff changeset
   931
  e, 'Exception: crash\n'
28511
ff5f923fca3c cmdserver: write early exception to 'e' channel in 'unix' mode
Yuya Nishihara <yuya@tcha.org>
parents: 28265
diff changeset
   932
  >>> server.shutdown()
ff5f923fca3c cmdserver: write early exception to 'e' channel in 'unix' mode
Yuya Nishihara <yuya@tcha.org>
parents: 28265
diff changeset
   933
ff5f923fca3c cmdserver: write early exception to 'e' channel in 'unix' mode
Yuya Nishihara <yuya@tcha.org>
parents: 28265
diff changeset
   934
  $ cat .hg/server.log | grep -v '^  '
ff5f923fca3c cmdserver: write early exception to 'e' channel in 'unix' mode
Yuya Nishihara <yuya@tcha.org>
parents: 28265
diff changeset
   935
  listening at .hg/server.sock
ff5f923fca3c cmdserver: write early exception to 'e' channel in 'unix' mode
Yuya Nishihara <yuya@tcha.org>
parents: 28265
diff changeset
   936
  Traceback (most recent call last):
40840
6a75363f834a test-commandserver: change way of triggering early crash
Yuya Nishihara <yuya@tcha.org>
parents: 40696
diff changeset
   937
  Exception: crash
28511
ff5f923fca3c cmdserver: write early exception to 'e' channel in 'unix' mode
Yuya Nishihara <yuya@tcha.org>
parents: 28265
diff changeset
   938
  killed!
23095
ac827031fe05 tests: don't try to test unix sockets on vfat
Matt Mackall <mpm@selenic.com>
parents: 23053
diff changeset
   939
#endif
ac827031fe05 tests: don't try to test unix sockets on vfat
Matt Mackall <mpm@selenic.com>
parents: 23053
diff changeset
   940
#if no-unix-socket
22994
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   941
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   942
  $ hg serve --cmdserver unix -a .hg/server.sock
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   943
  abort: unsupported platform
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   944
  [255]
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   945
840be5ca03e1 cmdserver: add service that listens on unix domain socket and forks process
Yuya Nishihara <yuya@tcha.org>
parents: 22955
diff changeset
   946
#endif
28265
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   947
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   948
  $ cd ..
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   949
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   950
Test that accessing to invalid changelog cache is avoided at
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   951
subsequent operations even if repo object is reused even after failure
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   952
of transaction (see 0a7610758c42 also)
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   953
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   954
"hg log" after failure of transaction is needed to detect invalid
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   955
cache in repoview: this can't detect by "hg verify" only.
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   956
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   957
Combination of "finalization" and "empty-ness of changelog" (2 x 2 =
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   958
4) are tested, because '00changelog.i' are differently changed in each
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   959
cases.
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   960
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   961
  $ cat > $TESTTMP/failafterfinalize.py <<EOF
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   962
  > # extension to abort transaction after finalization forcibly
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   963
  > from mercurial import commands, error, extensions, lock as lockmod
34765
f3e4a5ad0d90 configitems: register the test 'failafterfinalize.fail' config
Boris Feld <boris.feld@octobus.net>
parents: 34555
diff changeset
   964
  > from mercurial import registrar
f3e4a5ad0d90 configitems: register the test 'failafterfinalize.fail' config
Boris Feld <boris.feld@octobus.net>
parents: 34555
diff changeset
   965
  > cmdtable = {}
f3e4a5ad0d90 configitems: register the test 'failafterfinalize.fail' config
Boris Feld <boris.feld@octobus.net>
parents: 34555
diff changeset
   966
  > command = registrar.command(cmdtable)
f3e4a5ad0d90 configitems: register the test 'failafterfinalize.fail' config
Boris Feld <boris.feld@octobus.net>
parents: 34555
diff changeset
   967
  > configtable = {}
f3e4a5ad0d90 configitems: register the test 'failafterfinalize.fail' config
Boris Feld <boris.feld@octobus.net>
parents: 34555
diff changeset
   968
  > configitem = registrar.configitem(configtable)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   969
  > configitem(b'failafterfinalize', b'fail',
34765
f3e4a5ad0d90 configitems: register the test 'failafterfinalize.fail' config
Boris Feld <boris.feld@octobus.net>
parents: 34555
diff changeset
   970
  >     default=None,
f3e4a5ad0d90 configitems: register the test 'failafterfinalize.fail' config
Boris Feld <boris.feld@octobus.net>
parents: 34555
diff changeset
   971
  > )
28265
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   972
  > def fail(tr):
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   973
  >     raise error.Abort(b'fail after finalization')
28265
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   974
  > def reposetup(ui, repo):
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   975
  >     class failrepo(repo.__class__):
42620
d98ec36be808 convert: add a config option to help doing identity hg->hg conversion
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 40893
diff changeset
   976
  >         def commitctx(self, ctx, error=False, origctx=None):
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   977
  >             if self.ui.configbool(b'failafterfinalize', b'fail'):
28265
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   978
  >                 # 'sorted()' by ASCII code on category names causes
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   979
  >                 # invoking 'fail' after finalization of changelog
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   980
  >                 # using "'cl-%i' % id(self)" as category name
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
   981
  >                 self.currenttransaction().addfinalize(b'zzzzzzzz', fail)
42620
d98ec36be808 convert: add a config option to help doing identity hg->hg conversion
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 40893
diff changeset
   982
  >             return super(failrepo, self).commitctx(ctx, error, origctx)
28265
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   983
  >     repo.__class__ = failrepo
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   984
  > EOF
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   985
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   986
  $ hg init repo3
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   987
  $ cd repo3
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   988
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   989
  $ cat <<EOF >> $HGRCPATH
45788
ed84a4d48910 config: add a new [command-templates] section for templates defined by hg
Martin von Zweigbergk <martinvonz@google.com>
parents: 45058
diff changeset
   990
  > [command-templates]
ed84a4d48910 config: add a new [command-templates] section for templates defined by hg
Martin von Zweigbergk <martinvonz@google.com>
parents: 45058
diff changeset
   991
  > log = {rev} {desc|firstline} ({files})\n
28265
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   992
  > 
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   993
  > [extensions]
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   994
  > failafterfinalize = $TESTTMP/failafterfinalize.py
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   995
  > EOF
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   996
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   997
- test failure with "empty changelog"
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   998
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
   999
  $ echo foo > foo
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1000
  $ hg add foo
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1001
30342
318a24b52eeb spelling: fixes of non-dictionary words
Mads Kiilerich <madski@unity3d.com>
parents: 30276
diff changeset
  1002
(failure before finalization)
28265
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1003
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
  1004
  >>> from hgclient import check, readchannel, runcommand
28265
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1005
  >>> @check
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1006
  ... def abort(server):
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1007
  ...     readchannel(server)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1008
  ...     runcommand(server, [b'commit',
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1009
  ...                         b'--config', b'hooks.pretxncommit=false',
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1010
  ...                         b'-mfoo'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1011
  ...     runcommand(server, [b'log'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1012
  ...     runcommand(server, [b'verify', b'-q'])
28265
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1013
  *** runcommand commit --config hooks.pretxncommit=false -mfoo
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1014
  transaction abort!
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1015
  rollback completed
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1016
  abort: pretxncommit hook exited with status 1
46485
768056549737 errors: use exit code 40 for when a hook fails
Martin von Zweigbergk <martinvonz@google.com>
parents: 46030
diff changeset
  1017
   [40]
28265
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1018
  *** runcommand log
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1019
  *** runcommand verify -q
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1020
30342
318a24b52eeb spelling: fixes of non-dictionary words
Mads Kiilerich <madski@unity3d.com>
parents: 30276
diff changeset
  1021
(failure after finalization)
28265
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1022
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
  1023
  >>> from hgclient import check, readchannel, runcommand
28265
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1024
  >>> @check
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1025
  ... def abort(server):
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1026
  ...     readchannel(server)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1027
  ...     runcommand(server, [b'commit',
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1028
  ...                         b'--config', b'failafterfinalize.fail=true',
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1029
  ...                         b'-mfoo'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1030
  ...     runcommand(server, [b'log'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1031
  ...     runcommand(server, [b'verify', b'-q'])
28265
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1032
  *** runcommand commit --config failafterfinalize.fail=true -mfoo
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1033
  transaction abort!
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1034
  rollback completed
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1035
  abort: fail after finalization
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1036
   [255]
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1037
  *** runcommand log
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1038
  *** runcommand verify -q
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1039
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1040
- test failure with "not-empty changelog"
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1041
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1042
  $ echo bar > bar
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1043
  $ hg add bar
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1044
  $ hg commit -mbar bar
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1045
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1046
(failure before finalization)
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1047
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
  1048
  >>> from hgclient import check, readchannel, runcommand
28265
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1049
  >>> @check
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1050
  ... def abort(server):
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1051
  ...     readchannel(server)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1052
  ...     runcommand(server, [b'commit',
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1053
  ...                         b'--config', b'hooks.pretxncommit=false',
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1054
  ...                         b'-mfoo', b'foo'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1055
  ...     runcommand(server, [b'log'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1056
  ...     runcommand(server, [b'verify', b'-q'])
28265
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1057
  *** runcommand commit --config hooks.pretxncommit=false -mfoo foo
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1058
  transaction abort!
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1059
  rollback completed
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1060
  abort: pretxncommit hook exited with status 1
46485
768056549737 errors: use exit code 40 for when a hook fails
Martin von Zweigbergk <martinvonz@google.com>
parents: 46030
diff changeset
  1061
   [40]
28265
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1062
  *** runcommand log
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1063
  0 bar (bar)
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1064
  *** runcommand verify -q
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1065
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1066
(failure after finalization)
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1067
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
  1068
  >>> from hgclient import check, readchannel, runcommand
28265
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1069
  >>> @check
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1070
  ... def abort(server):
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1071
  ...     readchannel(server)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1072
  ...     runcommand(server, [b'commit',
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1073
  ...                         b'--config', b'failafterfinalize.fail=true',
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1074
  ...                         b'-mfoo', b'foo'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1075
  ...     runcommand(server, [b'log'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1076
  ...     runcommand(server, [b'verify', b'-q'])
28265
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1077
  *** runcommand commit --config failafterfinalize.fail=true -mfoo foo
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1078
  transaction abort!
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1079
  rollback completed
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1080
  abort: fail after finalization
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1081
   [255]
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1082
  *** runcommand log
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1083
  0 bar (bar)
332926212ef8 repoview: discard filtered changelog if index isn't shared with unfiltered
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26431
diff changeset
  1084
  *** runcommand verify -q
33646
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1085
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1086
  $ cd ..
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1087
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1088
Test symlink traversal over cached audited paths:
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1089
-------------------------------------------------
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1090
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1091
#if symlink
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1092
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1093
set up symlink hell
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1094
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1095
  $ mkdir merge-symlink-out
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1096
  $ hg init merge-symlink
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1097
  $ cd merge-symlink
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1098
  $ touch base
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1099
  $ hg commit -qAm base
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1100
  $ ln -s ../merge-symlink-out a
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1101
  $ hg commit -qAm 'symlink a -> ../merge-symlink-out'
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1102
  $ hg up -q 0
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1103
  $ mkdir a
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1104
  $ touch a/poisoned
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1105
  $ hg commit -qAm 'file a/poisoned'
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1106
  $ hg log -G -T '{rev}: {desc}\n'
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1107
  @  2: file a/poisoned
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1108
  |
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1109
  | o  1: symlink a -> ../merge-symlink-out
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1110
  |/
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1111
  o  0: base
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1112
  
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1113
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1114
try trivial merge after update: cache of audited paths should be discarded,
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1115
and the merge should fail (issue5628)
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1116
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1117
  $ hg up -q null
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
  1118
  >>> from hgclient import check, readchannel, runcommand
33646
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1119
  >>> @check
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1120
  ... def merge(server):
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1121
  ...     readchannel(server)
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1122
  ...     # audit a/poisoned as a good path
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1123
  ...     runcommand(server, [b'up', b'-qC', b'2'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1124
  ...     runcommand(server, [b'up', b'-qC', b'1'])
33646
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1125
  ...     # here a is a symlink, so a/poisoned is bad
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1126
  ...     runcommand(server, [b'merge', b'2'])
33646
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1127
  *** runcommand up -qC 2
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1128
  *** runcommand up -qC 1
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1129
  *** runcommand merge 2
34942
2a774cae3a03 merge: disable path conflict checking by default (issue5716)
Siddharth Agarwal <sid0@fb.com>
parents: 34900
diff changeset
  1130
  abort: path 'a/poisoned' traverses symbolic link 'a'
2a774cae3a03 merge: disable path conflict checking by default (issue5716)
Siddharth Agarwal <sid0@fb.com>
parents: 34900
diff changeset
  1131
   [255]
33646
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1132
  $ ls ../merge-symlink-out
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1133
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1134
cache of repo.auditor should be discarded, so matcher would never traverse
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1135
symlinks:
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1136
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1137
  $ hg up -qC 0
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1138
  $ touch ../merge-symlink-out/poisoned
33940
1a6707b43d05 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33939
diff changeset
  1139
  >>> from hgclient import check, readchannel, runcommand
33646
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1140
  >>> @check
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1141
  ... def files(server):
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1142
  ...     readchannel(server)
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1143
  ...     runcommand(server, [b'up', b'-qC', b'2'])
33646
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1144
  ...     # audit a/poisoned as a good path
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1145
  ...     runcommand(server, [b'files', b'a/poisoned'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1146
  ...     runcommand(server, [b'up', b'-qC', b'0'])
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1147
  ...     runcommand(server, [b'up', b'-qC', b'1'])
33646
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1148
  ...     # here 'a' is a symlink, so a/poisoned should be warned
40354
f9f2faf25fc4 py3: byte-stringify most literals in test-commandserver.t
Yuya Nishihara <yuya@tcha.org>
parents: 39952
diff changeset
  1149
  ...     runcommand(server, [b'files', b'a/poisoned'])
33646
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1150
  *** runcommand up -qC 2
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1151
  *** runcommand files a/poisoned
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1152
  a/poisoned
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1153
  *** runcommand up -qC 0
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1154
  *** runcommand up -qC 1
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1155
  *** runcommand files a/poisoned
33647
377e8ddaebef pathauditor: disable cache of audited paths by default (issue5628)
Yuya Nishihara <yuya@tcha.org>
parents: 33646
diff changeset
  1156
  abort: path 'a/poisoned' traverses symbolic link 'a'
377e8ddaebef pathauditor: disable cache of audited paths by default (issue5628)
Yuya Nishihara <yuya@tcha.org>
parents: 33646
diff changeset
  1157
   [255]
33646
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1158
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1159
  $ cd ..
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1160
47ea28293d30 tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 33607
diff changeset
  1161
#endif