tests/wireprotohelpers.sh
author Martin von Zweigbergk <martinvonz@google.com>
Fri, 30 Nov 2018 16:21:37 -0800
branchstable
changeset 40452 f07d4f94f098
parent 40176 41263df08109
child 48561 04688c51f81f
permissions -rw-r--r--
rebase: preserve working copy when redoing in-mem rebase on disk When in-memory rebase runs into conflicts, we retry it on disk. But before we do that, we abort the in-memory rebase. That is done because even though it's mostly in memory, there are still a few state files written (e.g. the merge state). We should make it not write those files so we don't need to abort, but for the stable branch, let's explicitly clear the state we need to clear instead of running the usual abort code. Differential Revision: https://phab.mercurial-scm.org/D5356
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
40176
41263df08109 wireprotov2: change how revisions are specified to changesetdata
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40133
diff changeset
     1
HTTPV2=exp-http-v2-0003
40133
762ef19a07e3 wireprotov2: send protocol settings frame from client
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40049
diff changeset
     2
MEDIATYPE=application/mercurial-exp-framing-0006
37482
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     3
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     4
sendhttpraw() {
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     5
  hg --verbose debugwireproto --peer raw http://$LOCALIP:$HGPORT/
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     6
}
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     7
37483
61e405fb6372 wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37482
diff changeset
     8
sendhttpv2peer() {
40133
762ef19a07e3 wireprotov2: send protocol settings frame from client
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40049
diff changeset
     9
  hg --config experimental.httppeer.v2-encoder-order=identity debugwireproto --nologhandshake --peer http2 http://$LOCALIP:$HGPORT/
40049
a732d70253b0 tests: don't be as verbose in wireprotov2 tests
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39819
diff changeset
    10
}
a732d70253b0 tests: don't be as verbose in wireprotov2 tests
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39819
diff changeset
    11
a732d70253b0 tests: don't be as verbose in wireprotov2 tests
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39819
diff changeset
    12
sendhttpv2peerverbose() {
40133
762ef19a07e3 wireprotov2: send protocol settings frame from client
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40049
diff changeset
    13
  hg --config experimental.httppeer.v2-encoder-order=identity --verbose debugwireproto --nologhandshake --peer http2 http://$LOCALIP:$HGPORT/
37718
ad1c07008e0b debugcommands: ability to suppress logging of handshake
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37540
diff changeset
    14
}
ad1c07008e0b debugcommands: ability to suppress logging of handshake
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37540
diff changeset
    15
ad1c07008e0b debugcommands: ability to suppress logging of handshake
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37540
diff changeset
    16
sendhttpv2peerhandshake() {
40133
762ef19a07e3 wireprotov2: send protocol settings frame from client
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40049
diff changeset
    17
  hg --config experimental.httppeer.v2-encoder-order=identity --verbose debugwireproto --peer http2 http://$LOCALIP:$HGPORT/
37483
61e405fb6372 wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37482
diff changeset
    18
}
61e405fb6372 wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37482
diff changeset
    19
37482
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    20
cat > dummycommands.py << EOF
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    21
from mercurial import (
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    22
    wireprototypes,
37785
b4d85bc122bd wireproto: rename wireproto to wireprotov1server (API)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37780
diff changeset
    23
    wireprotov1server,
37780
8acd3a9ac4fd wireproto: make version 2 @wireprotocommand an independent function
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37725
diff changeset
    24
    wireprotov2server,
37482
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    25
)
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    26
39098
b3c6c194f33a wireprotohelpers: add missing b prefixes
Augie Fackler <augie@google.com>
parents: 37785
diff changeset
    27
@wireprotov1server.wireprotocommand(b'customreadonly', permission=b'pull')
37540
693cb3768943 wireproto: make @wireprotocommand version 1 only by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37483
diff changeset
    28
def customreadonlyv1(repo, proto):
693cb3768943 wireproto: make @wireprotocommand version 1 only by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37483
diff changeset
    29
    return wireprototypes.bytesresponse(b'customreadonly bytes response')
693cb3768943 wireproto: make @wireprotocommand version 1 only by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37483
diff changeset
    30
39098
b3c6c194f33a wireprotohelpers: add missing b prefixes
Augie Fackler <augie@google.com>
parents: 37785
diff changeset
    31
@wireprotov2server.wireprotocommand(b'customreadonly', permission=b'pull')
37540
693cb3768943 wireproto: make @wireprotocommand version 1 only by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37483
diff changeset
    32
def customreadonlyv2(repo, proto):
39575
07b58266bce3 wireprotov2: implement commands as a generator of objects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39098
diff changeset
    33
    yield b'customreadonly bytes response'
37482
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    34
39098
b3c6c194f33a wireprotohelpers: add missing b prefixes
Augie Fackler <augie@google.com>
parents: 37785
diff changeset
    35
@wireprotov1server.wireprotocommand(b'customreadwrite', permission=b'push')
37482
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    36
def customreadwrite(repo, proto):
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    37
    return wireprototypes.bytesresponse(b'customreadwrite bytes response')
37540
693cb3768943 wireproto: make @wireprotocommand version 1 only by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37483
diff changeset
    38
39098
b3c6c194f33a wireprotohelpers: add missing b prefixes
Augie Fackler <augie@google.com>
parents: 37785
diff changeset
    39
@wireprotov2server.wireprotocommand(b'customreadwrite', permission=b'push')
37540
693cb3768943 wireproto: make @wireprotocommand version 1 only by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37483
diff changeset
    40
def customreadwritev2(repo, proto):
39575
07b58266bce3 wireprotov2: implement commands as a generator of objects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39098
diff changeset
    41
    yield b'customreadwrite bytes response'
37482
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    42
EOF
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    43
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    44
cat >> $HGRCPATH << EOF
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    45
[extensions]
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    46
drawdag = $TESTDIR/drawdag.py
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    47
EOF
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    48
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    49
enabledummycommands() {
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    50
  cat >> $HGRCPATH << EOF
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    51
[extensions]
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    52
dummycommands = $TESTTMP/dummycommands.py
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    53
EOF
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    54
}
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    55
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    56
enablehttpv2() {
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    57
  cat >> $1/.hg/hgrc << EOF
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    58
[experimental]
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    59
web.apiserver = true
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    60
web.api.http-v2 = true
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    61
EOF
fa9faf58959d tests: extract wire protocol shell helpers to standalone file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    62
}
39645
a86d21e70b2b exchangev2: start to implement pull with wire protocol v2
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39575
diff changeset
    63
a86d21e70b2b exchangev2: start to implement pull with wire protocol v2
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39575
diff changeset
    64
enablehttpv2client() {
a86d21e70b2b exchangev2: start to implement pull with wire protocol v2
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39575
diff changeset
    65
  cat >> $HGRCPATH << EOF
a86d21e70b2b exchangev2: start to implement pull with wire protocol v2
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39575
diff changeset
    66
[experimental]
a86d21e70b2b exchangev2: start to implement pull with wire protocol v2
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39575
diff changeset
    67
httppeer.advertise-v2 = true
40133
762ef19a07e3 wireprotov2: send protocol settings frame from client
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40049
diff changeset
    68
# So tests are in plain text. Also, zstd isn't available in all installs,
762ef19a07e3 wireprotov2: send protocol settings frame from client
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40049
diff changeset
    69
# which would make tests non-deterministic.
762ef19a07e3 wireprotov2: send protocol settings frame from client
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40049
diff changeset
    70
httppeer.v2-encoder-order = identity
39645
a86d21e70b2b exchangev2: start to implement pull with wire protocol v2
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39575
diff changeset
    71
EOF
a86d21e70b2b exchangev2: start to implement pull with wire protocol v2
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39575
diff changeset
    72
}