tests/test-flagprocessor.t
author Jun Wu <quark@fb.com>
Tue, 05 Sep 2017 13:37:36 -0700
changeset 34087 5361771f9714
parent 33617 5ac845ca059a
child 34661 eb586ed5d8ce
permissions -rw-r--r--
wrapfunction: use functools.partial if possible Every `extensions.bind` call inserts a frame in traceback: ... in closure return func(*(args + a), **kw) which makes traceback noisy. The Python stdlib has a `functools.partial` which is backed by C code and does not pollute traceback. However it does not support instancemethod and sets `args` attribute which could be problematic for alias handling. This patch makes `wrapfunction` use `functools.partial` if we are wrapping a function directly exported by a module (so it's impossible to be a class or instance method), and special handles `wrapfunction` results so alias handling code could handle `args` just fine. As an example, `hg rebase -s . -d . --traceback` got 6 lines removed in my setup: File "hg/mercurial/dispatch.py", line 898, in _dispatch cmdpats, cmdoptions) -File "hg/mercurial/extensions.py", line 333, in closure - return func(*(args + a), **kw) File "hg/hgext/journal.py", line 84, in runcommand return orig(lui, repo, cmd, fullargs, *args) -File "hg/mercurial/extensions.py", line 333, in closure - return func(*(args + a), **kw) File "fb-hgext/hgext3rd/fbamend/hiddenoverride.py", line 119, in runcommand result = orig(lui, repo, cmd, fullargs, *args) File "hg/mercurial/dispatch.py", line 660, in runcommand ret = _runcommand(ui, options, cmd, d) -File "hg/mercurial/extensions.py", line 333, in closure - return func(*(args + a), **kw) File "hg/hgext/pager.py", line 69, in pagecmd return orig(ui, options, cmd, cmdfunc) .... Differential Revision: https://phab.mercurial-scm.org/D632
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
30745
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
     1
# Create server
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
     2
  $ hg init server
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
     3
  $ cd server
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
     4
  $ cat >> .hg/hgrc << EOF
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
     5
  > [extensions]
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
     6
  > extension=$TESTDIR/flagprocessorext.py
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
     7
  > EOF
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
     8
  $ cd ../
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
     9
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    10
# Clone server and enable extensions
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    11
  $ hg clone -q server client
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    12
  $ cd client
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    13
  $ cat >> .hg/hgrc << EOF
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    14
  > [extensions]
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    15
  > extension=$TESTDIR/flagprocessorext.py
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    16
  > EOF
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    17
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    18
# Commit file that will trigger the noop extension
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    19
  $ echo '[NOOP]' > noop
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    20
  $ hg commit -Aqm "noop"
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    21
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    22
# Commit file that will trigger the base64 extension
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    23
  $ echo '[BASE64]' > base64
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    24
  $ hg commit -Aqm 'base64'
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    25
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    26
# Commit file that will trigger the gzip extension
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    27
  $ echo '[GZIP]' > gzip
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    28
  $ hg commit -Aqm 'gzip'
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    29
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    30
# Commit file that will trigger noop and base64
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    31
  $ echo '[NOOP][BASE64]' > noop-base64
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    32
  $ hg commit -Aqm 'noop+base64'
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    33
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    34
# Commit file that will trigger noop and gzip
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    35
  $ echo '[NOOP][GZIP]' > noop-gzip
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    36
  $ hg commit -Aqm 'noop+gzip'
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    37
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    38
# Commit file that will trigger base64 and gzip
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    39
  $ echo '[BASE64][GZIP]' > base64-gzip
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    40
  $ hg commit -Aqm 'base64+gzip'
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    41
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    42
# Commit file that will trigger base64, gzip and noop
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    43
  $ echo '[BASE64][GZIP][NOOP]' > base64-gzip-noop
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    44
  $ hg commit -Aqm 'base64+gzip+noop'
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    45
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    46
# TEST: ensure the revision data is consistent
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    47
  $ hg cat noop
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    48
  [NOOP]
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    49
  $ hg debugdata noop 0
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    50
  [NOOP]
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    51
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    52
  $ hg cat -r . base64
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    53
  [BASE64]
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    54
  $ hg debugdata base64 0
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    55
  W0JBU0U2NF0K (no-eol)
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    56
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    57
  $ hg cat -r . gzip
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    58
  [GZIP]
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    59
  $ hg debugdata gzip 0
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    60
  x\x9c\x8bv\x8f\xf2\x0c\x88\xe5\x02\x00\x08\xc8\x01\xfd (no-eol) (esc)
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    61
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    62
  $ hg cat -r . noop-base64
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    63
  [NOOP][BASE64]
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    64
  $ hg debugdata noop-base64 0
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    65
  W05PT1BdW0JBU0U2NF0K (no-eol)
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    66
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    67
  $ hg cat -r . noop-gzip
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    68
  [NOOP][GZIP]
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    69
  $ hg debugdata noop-gzip 0
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    70
  x\x9c\x8b\xf6\xf3\xf7\x0f\x88\x8dv\x8f\xf2\x0c\x88\xe5\x02\x00\x1dH\x03\xf1 (no-eol) (esc)
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    71
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    72
  $ hg cat -r . base64-gzip
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    73
  [BASE64][GZIP]
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    74
  $ hg debugdata base64-gzip 0
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    75
  eJyLdnIMdjUziY12j/IMiOUCACLBBDo= (no-eol)
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    76
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    77
  $ hg cat -r . base64-gzip-noop
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    78
  [BASE64][GZIP][NOOP]
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    79
  $ hg debugdata base64-gzip-noop 0
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    80
  eJyLdnIMdjUziY12j/IMiI328/cPiOUCAESjBi4= (no-eol)
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    81
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    82
# Push to the server
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    83
  $ hg push
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    84
  pushing to $TESTTMP/server (glob)
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    85
  searching for changes
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    86
  adding changesets
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    87
  adding manifests
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    88
  adding file changes
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    89
  added 7 changesets with 7 changes to 7 files
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    90
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    91
# Initialize new client (not cloning) and setup extension
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    92
  $ cd ..
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    93
  $ hg init client2
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    94
  $ cd client2
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    95
  $ cat >> .hg/hgrc << EOF
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    96
  > [paths]
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    97
  > default = $TESTTMP/server
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    98
  > [extensions]
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
    99
  > extension=$TESTDIR/flagprocessorext.py
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   100
  > EOF
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   101
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   102
# Pull from server and update to latest revision
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   103
  $ hg pull default
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   104
  pulling from $TESTTMP/server (glob)
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   105
  requesting all changes
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   106
  adding changesets
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   107
  adding manifests
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   108
  adding file changes
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   109
  added 7 changesets with 7 changes to 7 files
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   110
  (run 'hg update' to get a working copy)
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   111
  $ hg update
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   112
  7 files updated, 0 files merged, 0 files removed, 0 files unresolved
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   113
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   114
# TEST: ensure the revision data is consistent
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   115
  $ hg cat noop
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   116
  [NOOP]
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   117
  $ hg debugdata noop 0
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   118
  [NOOP]
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   119
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   120
  $ hg cat -r . base64
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   121
  [BASE64]
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   122
  $ hg debugdata base64 0
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   123
  W0JBU0U2NF0K (no-eol)
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   124
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   125
  $ hg cat -r . gzip
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   126
  [GZIP]
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   127
  $ hg debugdata gzip 0
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   128
  x\x9c\x8bv\x8f\xf2\x0c\x88\xe5\x02\x00\x08\xc8\x01\xfd (no-eol) (esc)
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   129
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   130
  $ hg cat -r . noop-base64
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   131
  [NOOP][BASE64]
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   132
  $ hg debugdata noop-base64 0
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   133
  W05PT1BdW0JBU0U2NF0K (no-eol)
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   134
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   135
  $ hg cat -r . noop-gzip
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   136
  [NOOP][GZIP]
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   137
  $ hg debugdata noop-gzip 0
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   138
  x\x9c\x8b\xf6\xf3\xf7\x0f\x88\x8dv\x8f\xf2\x0c\x88\xe5\x02\x00\x1dH\x03\xf1 (no-eol) (esc)
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   139
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   140
  $ hg cat -r . base64-gzip
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   141
  [BASE64][GZIP]
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   142
  $ hg debugdata base64-gzip 0
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   143
  eJyLdnIMdjUziY12j/IMiOUCACLBBDo= (no-eol)
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   144
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   145
  $ hg cat -r . base64-gzip-noop
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   146
  [BASE64][GZIP][NOOP]
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   147
  $ hg debugdata base64-gzip-noop 0
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   148
  eJyLdnIMdjUziY12j/IMiI328/cPiOUCAESjBi4= (no-eol)
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   149
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   150
# TEST: ensure a missing processor is handled
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   151
  $ echo '[FAIL][BASE64][GZIP][NOOP]' > fail-base64-gzip-noop
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   152
  $ hg commit -Aqm 'fail+base64+gzip+noop'
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   153
  abort: missing processor for flag '0x1'!
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   154
  [255]
33614
41081364addb tests: clarify that duplicate flag processors is not an error
Martin von Zweigbergk <martinvonz@google.com>
parents: 32724
diff changeset
   155
  $ rm fail-base64-gzip-noop
30745
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   156
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   157
# TEST: ensure we cannot register several flag processors on the same flag
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   158
  $ cat >> .hg/hgrc << EOF
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   159
  > [extensions]
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   160
  > extension=$TESTDIR/flagprocessorext.py
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   161
  > duplicate=$TESTDIR/flagprocessorext.py
c1b7b2285522 revlog: flag processor
Remi Chaintron <remi@fb.com>
parents:
diff changeset
   162
  > EOF
33615
c6146dd10072 tests: fix test-flagprocessor.t flakiness
Martin von Zweigbergk <martinvonz@google.com>
parents: 33614
diff changeset
   163
  $ hg debugrebuilddirstate
32724
ea1c2eb7abd3 extensions: catch uisetup and extsetup failures and don't let them break hg
Augie Fackler <augie@google.com>
parents: 31856
diff changeset
   164
  *** failed to set up extension duplicate: cannot register multiple processors on flag '0x8'.
33615
c6146dd10072 tests: fix test-flagprocessor.t flakiness
Martin von Zweigbergk <martinvonz@google.com>
parents: 33614
diff changeset
   165
  $ hg st 2>&1 | egrep 'cannot register multiple processors|flagprocessorext'
c6146dd10072 tests: fix test-flagprocessor.t flakiness
Martin von Zweigbergk <martinvonz@google.com>
parents: 33614
diff changeset
   166
  *** failed to set up extension duplicate: cannot register multiple processors on flag '0x8'.
c6146dd10072 tests: fix test-flagprocessor.t flakiness
Martin von Zweigbergk <martinvonz@google.com>
parents: 33614
diff changeset
   167
    File "*/tests/flagprocessorext.py", line *, in b64decode (glob)
31833
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   168
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   169
  $ cd ..
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   170
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   171
# TEST: bundle repo
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   172
  $ hg init bundletest
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   173
  $ cd bundletest
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   174
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   175
  $ cat >> .hg/hgrc << EOF
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   176
  > [extensions]
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   177
  > flagprocessor=$TESTDIR/flagprocessorext.py
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   178
  > EOF
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   179
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   180
  $ for i in 0 single two three 4; do
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   181
  >   echo '[BASE64]a-bit-longer-'$i > base64
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   182
  >   hg commit -m base64-$i -A base64
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   183
  > done
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   184
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   185
  $ hg update 2 -q
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   186
  $ echo '[BASE64]a-bit-longer-branching' > base64
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   187
  $ hg commit -q -m branching
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   188
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   189
  $ hg bundle --base 1 bundle.hg
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   190
  4 changesets found
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   191
  $ hg --config extensions.strip= strip -r 2 --no-backup --force -q
31838
c39e7c4b535c test-flagprocessor: remove unnecessary greps
Jun Wu <quark@fb.com>
parents: 31837
diff changeset
   192
  $ hg -R bundle.hg log --stat -T '{rev} {desc}\n' base64
31836
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   193
  5 branching
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   194
   base64 |  2 +-
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   195
   1 files changed, 1 insertions(+), 1 deletions(-)
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   196
  
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   197
  4 base64-4
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   198
   base64 |  2 +-
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   199
   1 files changed, 1 insertions(+), 1 deletions(-)
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   200
  
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   201
  3 base64-three
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   202
   base64 |  2 +-
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   203
   1 files changed, 1 insertions(+), 1 deletions(-)
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   204
  
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   205
  2 base64-two
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   206
   base64 |  2 +-
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   207
   1 files changed, 1 insertions(+), 1 deletions(-)
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   208
  
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   209
  1 base64-single
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   210
   base64 |  2 +-
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   211
   1 files changed, 1 insertions(+), 1 deletions(-)
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   212
  
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   213
  0 base64-0
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   214
   base64 |  1 +
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   215
   1 files changed, 1 insertions(+), 0 deletions(-)
4598e8f43e20 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com>
parents: 31835
diff changeset
   216
  
31833
723c1ab2f77e test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com>
parents: 30745
diff changeset
   217
31838
c39e7c4b535c test-flagprocessor: remove unnecessary greps
Jun Wu <quark@fb.com>
parents: 31837
diff changeset
   218
  $ hg bundle -R bundle.hg --base 1 bundle-again.hg -q
c39e7c4b535c test-flagprocessor: remove unnecessary greps
Jun Wu <quark@fb.com>
parents: 31837
diff changeset
   219
  $ hg -R bundle-again.hg log --stat -T '{rev} {desc}\n' base64
31837
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   220
  5 branching
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   221
   base64 |  2 +-
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   222
   1 files changed, 1 insertions(+), 1 deletions(-)
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   223
  
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   224
  4 base64-4
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   225
   base64 |  2 +-
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   226
   1 files changed, 1 insertions(+), 1 deletions(-)
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   227
  
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   228
  3 base64-three
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   229
   base64 |  2 +-
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   230
   1 files changed, 1 insertions(+), 1 deletions(-)
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   231
  
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   232
  2 base64-two
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   233
   base64 |  2 +-
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   234
   1 files changed, 1 insertions(+), 1 deletions(-)
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   235
  
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   236
  1 base64-single
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   237
   base64 |  2 +-
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   238
   1 files changed, 1 insertions(+), 1 deletions(-)
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   239
  
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   240
  0 base64-0
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   241
   base64 |  1 +
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   242
   1 files changed, 1 insertions(+), 0 deletions(-)
37e793918c07 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com>
parents: 31836
diff changeset
   243
  
31855
a418c5837bc0 test-flagprocessor: add a case about hg status
Jun Wu <quark@fb.com>
parents: 31838
diff changeset
   244
  $ rm bundle.hg bundle-again.hg
a418c5837bc0 test-flagprocessor: add a case about hg status
Jun Wu <quark@fb.com>
parents: 31838
diff changeset
   245
a418c5837bc0 test-flagprocessor: add a case about hg status
Jun Wu <quark@fb.com>
parents: 31838
diff changeset
   246
# TEST: hg status
a418c5837bc0 test-flagprocessor: add a case about hg status
Jun Wu <quark@fb.com>
parents: 31838
diff changeset
   247
a418c5837bc0 test-flagprocessor: add a case about hg status
Jun Wu <quark@fb.com>
parents: 31838
diff changeset
   248
  $ hg status
a418c5837bc0 test-flagprocessor: add a case about hg status
Jun Wu <quark@fb.com>
parents: 31838
diff changeset
   249
  $ hg diff