tests/test-http-protocol.t
author Augie Fackler <augie@google.com>
Wed, 02 Mar 2022 10:23:53 -0500
changeset 48834 029b76d645dc
parent 48651 c3239f2ee61b
permissions -rw-r--r--
imports: allow importing futures from concurrent Differential Revision: https://phab.mercurial-scm.org/D12278
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
38021
538e850ae737 tests: mark tests that fail when using chg as #require no-chg
Kyle Lippincott <spectral@google.com>
parents: 37832
diff changeset
     1
#require no-chg
538e850ae737 tests: mark tests that fail when using chg as #require no-chg
Kyle Lippincott <spectral@google.com>
parents: 37832
diff changeset
     2
46877
1a85c5d75d53 persistent-nodemap: disable it unconditionally for test-http-protocol.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46633
diff changeset
     3
persistent-nodemap is not enabled by default. It is not relevant for this test
1a85c5d75d53 persistent-nodemap: disable it unconditionally for test-http-protocol.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46633
diff changeset
     4
so disable it.
1a85c5d75d53 persistent-nodemap: disable it unconditionally for test-http-protocol.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46633
diff changeset
     5
37558
8a73132214a3 httppeer: support protocol upgrade
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37556
diff changeset
     6
  $ . $TESTDIR/wireprotohelpers.sh
8a73132214a3 httppeer: support protocol upgrade
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37556
diff changeset
     7
30762
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     8
  $ cat >> $HGRCPATH << EOF
46877
1a85c5d75d53 persistent-nodemap: disable it unconditionally for test-http-protocol.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46633
diff changeset
     9
  > [format]
1a85c5d75d53 persistent-nodemap: disable it unconditionally for test-http-protocol.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46633
diff changeset
    10
  > use-persistent-nodemap = no
30762
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    11
  > [web]
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    12
  > push_ssl = false
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    13
  > allow_push = *
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    14
  > EOF
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    15
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    16
  $ hg init server
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    17
  $ cd server
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    18
  $ touch a
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    19
  $ hg -q commit -A -m initial
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    20
  $ cd ..
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    21
34483
a6d95a8b7243 serve: make tests compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents: 31008
diff changeset
    22
  $ hg serve -R server -p $HGPORT -d --pid-file hg.pid
30762
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    23
  $ cat hg.pid >> $DAEMON_PIDS
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    24
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    25
compression formats are advertised in compression capability
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    26
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    27
#if zstd
31008
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 30852
diff changeset
    28
  $ get-with-headers.py $LOCALIP:$HGPORT '?cmd=capabilities' | tr ' ' '\n' | grep '^compression=zstd,zlib$' > /dev/null
30762
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    29
#else
31008
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 30852
diff changeset
    30
  $ get-with-headers.py $LOCALIP:$HGPORT '?cmd=capabilities' | tr ' ' '\n' | grep '^compression=zlib$' > /dev/null
30762
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    31
#endif
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    32
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    33
  $ killdaemons.py
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    34
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    35
server.compressionengines can replace engines list wholesale
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    36
34483
a6d95a8b7243 serve: make tests compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents: 31008
diff changeset
    37
  $ hg serve --config server.compressionengines=none -R server -p $HGPORT -d --pid-file hg.pid
30762
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    38
  $ cat hg.pid > $DAEMON_PIDS
31008
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 30852
diff changeset
    39
  $ get-with-headers.py $LOCALIP:$HGPORT '?cmd=capabilities' | tr ' ' '\n' | grep '^compression=none$' > /dev/null
30762
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    40
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    41
  $ killdaemons.py
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    42
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    43
Order of engines can also change
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    44
34483
a6d95a8b7243 serve: make tests compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents: 31008
diff changeset
    45
  $ hg serve --config server.compressionengines=none,zlib -R server -p $HGPORT -d --pid-file hg.pid
30762
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    46
  $ cat hg.pid > $DAEMON_PIDS
31008
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 30852
diff changeset
    47
  $ get-with-headers.py $LOCALIP:$HGPORT '?cmd=capabilities' | tr ' ' '\n' | grep '^compression=none,zlib$' > /dev/null
30762
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    48
35b516f800e0 wireproto: advertise supported media types and compression formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    49
  $ killdaemons.py
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    50
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    51
Start a default server again
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    52
34483
a6d95a8b7243 serve: make tests compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents: 31008
diff changeset
    53
  $ hg serve -R server -p $HGPORT -d --pid-file hg.pid
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    54
  $ cat hg.pid > $DAEMON_PIDS
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    55
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    56
Server should send application/mercurial-0.1 to clients if no Accept is used
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    57
31008
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 30852
diff changeset
    58
  $ get-with-headers.py --headeronly $LOCALIP:$HGPORT '?cmd=getbundle&heads=e93700bd72895c5addab234c56d4024b487a362f&common=0000000000000000000000000000000000000000' -
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    59
  200 Script output follows
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    60
  content-type: application/mercurial-0.1
37008
16203c6079e7 tests: use $HTTP_DATE$ for Date header
Gregory Szorc <gregory.szorc@gmail.com>
parents: 34483
diff changeset
    61
  date: $HTTP_DATE$
37009
5890e5872f36 hgweb: allow defining Server response header for HTTP server
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37008
diff changeset
    62
  server: testing stub value
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    63
  transfer-encoding: chunked
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    64
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    65
Server should send application/mercurial-0.1 when client says it wants it
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    66
31008
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 30852
diff changeset
    67
  $ get-with-headers.py --hgproto '0.1' --headeronly $LOCALIP:$HGPORT '?cmd=getbundle&heads=e93700bd72895c5addab234c56d4024b487a362f&common=0000000000000000000000000000000000000000' -
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    68
  200 Script output follows
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    69
  content-type: application/mercurial-0.1
37008
16203c6079e7 tests: use $HTTP_DATE$ for Date header
Gregory Szorc <gregory.szorc@gmail.com>
parents: 34483
diff changeset
    70
  date: $HTTP_DATE$
37009
5890e5872f36 hgweb: allow defining Server response header for HTTP server
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37008
diff changeset
    71
  server: testing stub value
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    72
  transfer-encoding: chunked
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    73
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    74
Server should send application/mercurial-0.2 when client says it wants it
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    75
31008
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 30852
diff changeset
    76
  $ get-with-headers.py --hgproto '0.2' --headeronly $LOCALIP:$HGPORT '?cmd=getbundle&heads=e93700bd72895c5addab234c56d4024b487a362f&common=0000000000000000000000000000000000000000' -
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    77
  200 Script output follows
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    78
  content-type: application/mercurial-0.2
37008
16203c6079e7 tests: use $HTTP_DATE$ for Date header
Gregory Szorc <gregory.szorc@gmail.com>
parents: 34483
diff changeset
    79
  date: $HTTP_DATE$
37009
5890e5872f36 hgweb: allow defining Server response header for HTTP server
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37008
diff changeset
    80
  server: testing stub value
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    81
  transfer-encoding: chunked
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    82
31008
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 30852
diff changeset
    83
  $ get-with-headers.py --hgproto '0.1 0.2' --headeronly $LOCALIP:$HGPORT '?cmd=getbundle&heads=e93700bd72895c5addab234c56d4024b487a362f&common=0000000000000000000000000000000000000000' -
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    84
  200 Script output follows
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    85
  content-type: application/mercurial-0.2
37008
16203c6079e7 tests: use $HTTP_DATE$ for Date header
Gregory Szorc <gregory.szorc@gmail.com>
parents: 34483
diff changeset
    86
  date: $HTTP_DATE$
37009
5890e5872f36 hgweb: allow defining Server response header for HTTP server
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37008
diff changeset
    87
  server: testing stub value
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    88
  transfer-encoding: chunked
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    89
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    90
Requesting a compression format that server doesn't support results will fall back to 0.1
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    91
31008
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 30852
diff changeset
    92
  $ get-with-headers.py --hgproto '0.2 comp=aa' --headeronly $LOCALIP:$HGPORT '?cmd=getbundle&heads=e93700bd72895c5addab234c56d4024b487a362f&common=0000000000000000000000000000000000000000' -
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    93
  200 Script output follows
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    94
  content-type: application/mercurial-0.1
37008
16203c6079e7 tests: use $HTTP_DATE$ for Date header
Gregory Szorc <gregory.szorc@gmail.com>
parents: 34483
diff changeset
    95
  date: $HTTP_DATE$
37009
5890e5872f36 hgweb: allow defining Server response header for HTTP server
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37008
diff changeset
    96
  server: testing stub value
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    97
  transfer-encoding: chunked
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    98
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
    99
#if zstd
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   100
zstd is used if available
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   101
31008
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 30852
diff changeset
   102
  $ get-with-headers.py --hgproto '0.2 comp=zstd' $LOCALIP:$HGPORT '?cmd=getbundle&heads=e93700bd72895c5addab234c56d4024b487a362f&common=0000000000000000000000000000000000000000' > resp
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   103
  $ f --size --hexdump --bytes 36 --sha1 resp
42070
675775c33ab6 zstandard: vendor python-zstandard 0.11
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41502
diff changeset
   104
  resp: size=248, sha1=f11b5c098c638068b3d5fe2f9e6241bf5228
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   105
  0000: 32 30 30 20 53 63 72 69 70 74 20 6f 75 74 70 75 |200 Script outpu|
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   106
  0010: 74 20 66 6f 6c 6c 6f 77 73 0a 0a 04 7a 73 74 64 |t follows...zstd|
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   107
  0020: 28 b5 2f fd                                     |(./.|
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   108
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   109
#endif
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   110
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   111
application/mercurial-0.2 is not yet used on non-streaming responses
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   112
31008
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 30852
diff changeset
   113
  $ get-with-headers.py --hgproto '0.2' $LOCALIP:$HGPORT '?cmd=heads' -
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   114
  200 Script output follows
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   115
  content-length: 41
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   116
  content-type: application/mercurial-0.1
37008
16203c6079e7 tests: use $HTTP_DATE$ for Date header
Gregory Szorc <gregory.szorc@gmail.com>
parents: 34483
diff changeset
   117
  date: $HTTP_DATE$
37009
5890e5872f36 hgweb: allow defining Server response header for HTTP server
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37008
diff changeset
   118
  server: testing stub value
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   119
  
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   120
  e93700bd72895c5addab234c56d4024b487a362f
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   121
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   122
Now test protocol preference usage
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   123
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   124
  $ killdaemons.py
34483
a6d95a8b7243 serve: make tests compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents: 31008
diff changeset
   125
  $ hg serve --config server.compressionengines=none,zlib -R server -p $HGPORT -d --pid-file hg.pid
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   126
  $ cat hg.pid > $DAEMON_PIDS
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   127
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   128
No Accept will send 0.1+zlib, even though "none" is preferred b/c "none" isn't supported on 0.1
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   129
31008
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 30852
diff changeset
   130
  $ get-with-headers.py --headeronly $LOCALIP:$HGPORT '?cmd=getbundle&heads=e93700bd72895c5addab234c56d4024b487a362f&common=0000000000000000000000000000000000000000' Content-Type
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   131
  200 Script output follows
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   132
  content-type: application/mercurial-0.1
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   133
31008
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 30852
diff changeset
   134
  $ get-with-headers.py $LOCALIP:$HGPORT '?cmd=getbundle&heads=e93700bd72895c5addab234c56d4024b487a362f&common=0000000000000000000000000000000000000000'  > resp
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   135
  $ f --size --hexdump --bytes 28 --sha1 resp
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   136
  resp: size=227, sha1=35a4c074da74f32f5440da3cbf04
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   137
  0000: 32 30 30 20 53 63 72 69 70 74 20 6f 75 74 70 75 |200 Script outpu|
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   138
  0010: 74 20 66 6f 6c 6c 6f 77 73 0a 0a 78             |t follows..x|
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   139
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   140
Explicit 0.1 will send zlib because "none" isn't supported on 0.1
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   141
31008
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 30852
diff changeset
   142
  $ get-with-headers.py --hgproto '0.1' $LOCALIP:$HGPORT '?cmd=getbundle&heads=e93700bd72895c5addab234c56d4024b487a362f&common=0000000000000000000000000000000000000000'  > resp
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   143
  $ f --size --hexdump --bytes 28 --sha1 resp
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   144
  resp: size=227, sha1=35a4c074da74f32f5440da3cbf04
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   145
  0000: 32 30 30 20 53 63 72 69 70 74 20 6f 75 74 70 75 |200 Script outpu|
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   146
  0010: 74 20 66 6f 6c 6c 6f 77 73 0a 0a 78             |t follows..x|
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   147
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   148
0.2 with no compression will get "none" because that is server's preference
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   149
(spec says ZL and UN are implicitly supported)
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   150
31008
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 30852
diff changeset
   151
  $ get-with-headers.py --hgproto '0.2' $LOCALIP:$HGPORT '?cmd=getbundle&heads=e93700bd72895c5addab234c56d4024b487a362f&common=0000000000000000000000000000000000000000'  > resp
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   152
  $ f --size --hexdump --bytes 32 --sha1 resp
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   153
  resp: size=432, sha1=ac931b412ec185a02e0e5bcff98dac83
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   154
  0000: 32 30 30 20 53 63 72 69 70 74 20 6f 75 74 70 75 |200 Script outpu|
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   155
  0010: 74 20 66 6f 6c 6c 6f 77 73 0a 0a 04 6e 6f 6e 65 |t follows...none|
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   156
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   157
Client receives server preference even if local order doesn't match
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   158
31008
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 30852
diff changeset
   159
  $ get-with-headers.py --hgproto '0.2 comp=zlib,none' $LOCALIP:$HGPORT '?cmd=getbundle&heads=e93700bd72895c5addab234c56d4024b487a362f&common=0000000000000000000000000000000000000000'  > resp
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   160
  $ f --size --hexdump --bytes 32 --sha1 resp
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   161
  resp: size=432, sha1=ac931b412ec185a02e0e5bcff98dac83
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   162
  0000: 32 30 30 20 53 63 72 69 70 74 20 6f 75 74 70 75 |200 Script outpu|
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   163
  0010: 74 20 66 6f 6c 6c 6f 77 73 0a 0a 04 6e 6f 6e 65 |t follows...none|
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   164
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   165
Client receives only supported format even if not server preferred format
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   166
31008
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 30852
diff changeset
   167
  $ get-with-headers.py --hgproto '0.2 comp=zlib' $LOCALIP:$HGPORT '?cmd=getbundle&heads=e93700bd72895c5addab234c56d4024b487a362f&common=0000000000000000000000000000000000000000'  > resp
30764
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   168
  $ f --size --hexdump --bytes 33 --sha1 resp
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   169
  resp: size=232, sha1=a1c727f0c9693ca15742a75c30419bc36
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   170
  0000: 32 30 30 20 53 63 72 69 70 74 20 6f 75 74 70 75 |200 Script outpu|
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   171
  0010: 74 20 66 6f 6c 6c 6f 77 73 0a 0a 04 7a 6c 69 62 |t follows...zlib|
e75463e3179f protocol: send application/mercurial-0.2 responses to capable clients
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30762
diff changeset
   172
  0020: 78                                              |x|
37012
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   173
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   174
  $ killdaemons.py
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   175
  $ cd ..
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   176
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   177
Test listkeys for listing namespaces
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   178
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   179
  $ hg init empty
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   180
  $ hg -R empty serve -p $HGPORT -d --pid-file hg.pid
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   181
  $ cat hg.pid > $DAEMON_PIDS
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   182
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   183
  $ hg --verbose debugwireproto http://$LOCALIP:$HGPORT << EOF
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   184
  > command listkeys
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   185
  >     namespace namespaces
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   186
  > EOF
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41383
diff changeset
   187
  s> setsockopt(6, 1, 1) -> None (?)
37012
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   188
  s>     GET /?cmd=capabilities HTTP/1.1\r\n
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   189
  s>     Accept-Encoding: identity\r\n
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   190
  s>     accept: application/mercurial-0.1\r\n
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   191
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
37483
61e405fb6372 wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37413
diff changeset
   192
  s>     user-agent: Mercurial debugwireproto\r\n
37012
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   193
  s>     \r\n
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   194
  s> makefile('rb', None)
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   195
  s>     HTTP/1.1 200 Script output follows\r\n
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   196
  s>     Server: testing stub value\r\n
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   197
  s>     Date: $HTTP_DATE$\r\n
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   198
  s>     Content-Type: application/mercurial-0.1\r\n
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   199
  s>     Content-Length: *\r\n (glob)
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   200
  s>     \r\n
48651
c3239f2ee61b stream-requirements: smoother matching in test-http-protocol.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48526
diff changeset
   201
  s>     batch branchmap \$USUAL_BUNDLE2_CAPS\$ changegroupsubset compression=\$BUNDLE2_COMPRESSIONS\$ getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=[^ ,]+(,[^ ,]+)* unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (re)
37012
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   202
  sending listkeys command
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41383
diff changeset
   203
  s> setsockopt(6, 1, 1) -> None (?)
37012
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   204
  s>     GET /?cmd=listkeys HTTP/1.1\r\n
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   205
  s>     Accept-Encoding: identity\r\n
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   206
  s>     vary: X-HgArg-1,X-HgProto-1\r\n
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   207
  s>     x-hgarg-1: namespace=namespaces\r\n
37498
aacfca6f9767 wireproto: support for pullbundles
Joerg Sonnenberger <joerg@bec.de>
parents: 37483
diff changeset
   208
  s>     x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n
37012
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   209
  s>     accept: application/mercurial-0.1\r\n
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   210
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
37483
61e405fb6372 wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37413
diff changeset
   211
  s>     user-agent: Mercurial debugwireproto\r\n
37012
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   212
  s>     \r\n
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   213
  s> makefile('rb', None)
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   214
  s>     HTTP/1.1 200 Script output follows\r\n
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   215
  s>     Server: testing stub value\r\n
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   216
  s>     Date: $HTTP_DATE$\r\n
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   217
  s>     Content-Type: application/mercurial-0.1\r\n
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   218
  s>     Content-Length: 30\r\n
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   219
  s>     \r\n
37322
a67fd1fe5109 stringutil: drop escapedata() in favor of escapestr()
Yuya Nishihara <yuya@tcha.org>
parents: 37300
diff changeset
   220
  s>     bookmarks\t\n
a67fd1fe5109 stringutil: drop escapedata() in favor of escapestr()
Yuya Nishihara <yuya@tcha.org>
parents: 37300
diff changeset
   221
  s>     namespaces\t\n
a67fd1fe5109 stringutil: drop escapedata() in favor of escapestr()
Yuya Nishihara <yuya@tcha.org>
parents: 37300
diff changeset
   222
  s>     phases\t
39378
0f549da54379 stringutil: teach pprint() to indent
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38021
diff changeset
   223
  response: {
0f549da54379 stringutil: teach pprint() to indent
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38021
diff changeset
   224
    b'bookmarks': b'',
0f549da54379 stringutil: teach pprint() to indent
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38021
diff changeset
   225
    b'namespaces': b'',
0f549da54379 stringutil: teach pprint() to indent
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38021
diff changeset
   226
    b'phases': b''
0f549da54379 stringutil: teach pprint() to indent
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38021
diff changeset
   227
  }
40034
393e44324037 httppeer: report http statistics
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39815
diff changeset
   228
  (sent 2 HTTP requests and * bytes; received * bytes in responses) (glob)
37012
fc8939825632 debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37009
diff changeset
   229
37013
b6a7070e7663 debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37012
diff changeset
   230
Same thing, but with "httprequest" command
b6a7070e7663 debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37012
diff changeset
   231
b6a7070e7663 debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37012
diff changeset
   232
  $ hg --verbose debugwireproto --peer raw http://$LOCALIP:$HGPORT << EOF
b6a7070e7663 debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37012
diff changeset
   233
  > httprequest GET ?cmd=listkeys
37045
a708e1e4d7a8 url: support suppressing Accept header
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37044
diff changeset
   234
  >     user-agent: test
37013
b6a7070e7663 debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37012
diff changeset
   235
  >     x-hgarg-1: namespace=namespaces
b6a7070e7663 debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37012
diff changeset
   236
  > EOF
b6a7070e7663 debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37012
diff changeset
   237
  using raw connection to peer
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41383
diff changeset
   238
  s> setsockopt(6, 1, 1) -> None (?)
37013
b6a7070e7663 debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37012
diff changeset
   239
  s>     GET /?cmd=listkeys HTTP/1.1\r\n
b6a7070e7663 debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37012
diff changeset
   240
  s>     Accept-Encoding: identity\r\n
37045
a708e1e4d7a8 url: support suppressing Accept header
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37044
diff changeset
   241
  s>     user-agent: test\r\n
37013
b6a7070e7663 debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37012
diff changeset
   242
  s>     x-hgarg-1: namespace=namespaces\r\n
b6a7070e7663 debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37012
diff changeset
   243
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
b6a7070e7663 debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37012
diff changeset
   244
  s>     \r\n
b6a7070e7663 debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37012
diff changeset
   245
  s> makefile('rb', None)
b6a7070e7663 debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37012
diff changeset
   246
  s>     HTTP/1.1 200 Script output follows\r\n
b6a7070e7663 debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37012
diff changeset
   247
  s>     Server: testing stub value\r\n
b6a7070e7663 debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37012
diff changeset
   248
  s>     Date: $HTTP_DATE$\r\n
b6a7070e7663 debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37012
diff changeset
   249
  s>     Content-Type: application/mercurial-0.1\r\n
b6a7070e7663 debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37012
diff changeset
   250
  s>     Content-Length: 30\r\n
b6a7070e7663 debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37012
diff changeset
   251
  s>     \r\n
37322
a67fd1fe5109 stringutil: drop escapedata() in favor of escapestr()
Yuya Nishihara <yuya@tcha.org>
parents: 37300
diff changeset
   252
  s>     bookmarks\t\n
a67fd1fe5109 stringutil: drop escapedata() in favor of escapestr()
Yuya Nishihara <yuya@tcha.org>
parents: 37300
diff changeset
   253
  s>     namespaces\t\n
a67fd1fe5109 stringutil: drop escapedata() in favor of escapestr()
Yuya Nishihara <yuya@tcha.org>
parents: 37300
diff changeset
   254
  s>     phases\t
37558
8a73132214a3 httppeer: support protocol upgrade
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37556
diff changeset
   255
  $ killdaemons.py
37832
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   256
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   257
HTTP client follows HTTP redirect on handshake to new repo
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   258
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   259
  $ cd $TESTTMP
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   260
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   261
  $ hg init redirector
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   262
  $ hg init redirected
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   263
  $ cd redirected
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   264
  $ touch foo
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   265
  $ hg -q commit -A -m initial
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   266
  $ cd ..
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   267
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   268
  $ cat > paths.conf << EOF
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   269
  > [paths]
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   270
  > / = $TESTTMP/*
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   271
  > EOF
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   272
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   273
  $ cat > redirectext.py << EOF
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   274
  > from mercurial import extensions, wireprotoserver
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   275
  > def wrappedcallhttp(orig, repo, req, res, proto, cmd):
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   276
  >     path = req.advertisedurl[len(req.advertisedbaseurl):]
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   277
  >     if not path.startswith(b'/redirector'):
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   278
  >         return orig(repo, req, res, proto, cmd)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   279
  >     relpath = path[len(b'/redirector'):]
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   280
  >     res.status = b'301 Redirect'
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   281
  >     newurl = b'%s/redirected%s' % (req.baseurl, relpath)
41383
0cfbe78fc13e tests: add b'' prefixes to ui.configbool() call
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41380
diff changeset
   282
  >     if not repo.ui.configbool(b'testing', b'redirectqs', True) and b'?' in newurl:
37832
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   283
  >         newurl = newurl[0:newurl.index(b'?')]
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   284
  >     res.headers[b'Location'] = newurl
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   285
  >     res.headers[b'Content-Type'] = b'text/plain'
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   286
  >     res.setbodybytes(b'redirected')
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   287
  >     return True
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   288
  > 
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   289
  > extensions.wrapfunction(wireprotoserver, '_callhttp', wrappedcallhttp)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   290
  > EOF
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   291
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   292
  $ hg --config extensions.redirect=$TESTTMP/redirectext.py \
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   293
  >    --config server.compressionengines=zlib \
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   294
  >     serve --web-conf paths.conf --pid-file hg.pid -p $HGPORT -d
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   295
  $ cat hg.pid > $DAEMON_PIDS
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   296
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   297
Verify our HTTP 301 is served properly
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   298
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   299
  $ hg --verbose debugwireproto --peer raw http://$LOCALIP:$HGPORT << EOF
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   300
  > httprequest GET /redirector?cmd=capabilities
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   301
  >     user-agent: test
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   302
  > EOF
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   303
  using raw connection to peer
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41383
diff changeset
   304
  s> setsockopt(6, 1, 1) -> None (?)
37832
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   305
  s>     GET /redirector?cmd=capabilities HTTP/1.1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   306
  s>     Accept-Encoding: identity\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   307
  s>     user-agent: test\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   308
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   309
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   310
  s> makefile('rb', None)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   311
  s>     HTTP/1.1 301 Redirect\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   312
  s>     Server: testing stub value\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   313
  s>     Date: $HTTP_DATE$\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   314
  s>     Location: http://$LOCALIP:$HGPORT/redirected?cmd=capabilities\r\n (glob)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   315
  s>     Content-Type: text/plain\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   316
  s>     Content-Length: 10\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   317
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   318
  s>     redirected
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41383
diff changeset
   319
  s> setsockopt(6, 1, 1) -> None (?)
37832
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   320
  s>     GET /redirected?cmd=capabilities HTTP/1.1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   321
  s>     Accept-Encoding: identity\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   322
  s>     user-agent: test\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   323
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   324
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   325
  s> makefile('rb', None)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   326
  s>     HTTP/1.1 200 Script output follows\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   327
  s>     Server: testing stub value\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   328
  s>     Date: $HTTP_DATE$\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   329
  s>     Content-Type: application/mercurial-0.1\r\n
48651
c3239f2ee61b stream-requirements: smoother matching in test-http-protocol.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48526
diff changeset
   330
  s>     Content-Length: \d+\\r\\n (re)
37832
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   331
  s>     \r\n
48651
c3239f2ee61b stream-requirements: smoother matching in test-http-protocol.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48526
diff changeset
   332
  s>     batch branchmap \$USUAL_BUNDLE2_CAPS\$ changegroupsubset compression=\$BUNDLE2_COMPRESSIONS\$ getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=[^ ,]+(,[^ ,]+)* unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (re)
37832
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   333
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   334
Test with the HTTP peer
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   335
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   336
  $ hg --verbose debugwireproto http://$LOCALIP:$HGPORT/redirector << EOF
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   337
  > command heads
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   338
  > EOF
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41383
diff changeset
   339
  s> setsockopt(6, 1, 1) -> None (?)
37832
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   340
  s>     GET /redirector?cmd=capabilities HTTP/1.1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   341
  s>     Accept-Encoding: identity\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   342
  s>     accept: application/mercurial-0.1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   343
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   344
  s>     user-agent: Mercurial debugwireproto\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   345
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   346
  s> makefile('rb', None)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   347
  s>     HTTP/1.1 301 Redirect\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   348
  s>     Server: testing stub value\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   349
  s>     Date: $HTTP_DATE$\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   350
  s>     Location: http://$LOCALIP:$HGPORT/redirected?cmd=capabilities\r\n (glob)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   351
  s>     Content-Type: text/plain\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   352
  s>     Content-Length: 10\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   353
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   354
  s>     redirected
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41383
diff changeset
   355
  s> setsockopt(6, 1, 1) -> None (?)
37832
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   356
  s>     GET /redirected?cmd=capabilities HTTP/1.1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   357
  s>     Accept-Encoding: identity\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   358
  s>     accept: application/mercurial-0.1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   359
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   360
  s>     user-agent: Mercurial debugwireproto\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   361
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   362
  s> makefile('rb', None)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   363
  s>     HTTP/1.1 200 Script output follows\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   364
  s>     Server: testing stub value\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   365
  s>     Date: $HTTP_DATE$\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   366
  s>     Content-Type: application/mercurial-0.1\r\n
48651
c3239f2ee61b stream-requirements: smoother matching in test-http-protocol.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48526
diff changeset
   367
  s>     Content-Length: \d+\\r\\n (re)
37832
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   368
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   369
  real URL is http://$LOCALIP:$HGPORT/redirected (glob)
48651
c3239f2ee61b stream-requirements: smoother matching in test-http-protocol.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48526
diff changeset
   370
  s>     batch branchmap \$USUAL_BUNDLE2_CAPS\$ changegroupsubset compression=\$BUNDLE2_COMPRESSIONS\$ getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=[^ ,]+(,[^ ,]+)* unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (re)
37832
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   371
  sending heads command
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41383
diff changeset
   372
  s> setsockopt(6, 1, 1) -> None (?)
37832
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   373
  s>     GET /redirected?cmd=heads HTTP/1.1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   374
  s>     Accept-Encoding: identity\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   375
  s>     vary: X-HgProto-1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   376
  s>     x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   377
  s>     accept: application/mercurial-0.1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   378
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   379
  s>     user-agent: Mercurial debugwireproto\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   380
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   381
  s> makefile('rb', None)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   382
  s>     HTTP/1.1 200 Script output follows\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   383
  s>     Server: testing stub value\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   384
  s>     Date: $HTTP_DATE$\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   385
  s>     Content-Type: application/mercurial-0.1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   386
  s>     Content-Length: 41\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   387
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   388
  s>     96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n
39378
0f549da54379 stringutil: teach pprint() to indent
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38021
diff changeset
   389
  response: [
0f549da54379 stringutil: teach pprint() to indent
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38021
diff changeset
   390
    b'\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL'
0f549da54379 stringutil: teach pprint() to indent
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38021
diff changeset
   391
  ]
40034
393e44324037 httppeer: report http statistics
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39815
diff changeset
   392
  (sent 3 HTTP requests and * bytes; received * bytes in responses) (glob)
37832
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   393
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   394
  $ killdaemons.py
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   395
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   396
Now test a variation where we strip the query string from the redirect URL.
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   397
(SCM Manager apparently did this and clients would recover from it)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   398
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   399
  $ hg --config extensions.redirect=$TESTTMP/redirectext.py \
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   400
  >    --config server.compressionengines=zlib \
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   401
  >    --config testing.redirectqs=false \
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   402
  >     serve --web-conf paths.conf --pid-file hg.pid -p $HGPORT -d
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   403
  $ cat hg.pid > $DAEMON_PIDS
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   404
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   405
  $ hg --verbose debugwireproto --peer raw http://$LOCALIP:$HGPORT << EOF
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   406
  > httprequest GET /redirector?cmd=capabilities
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   407
  >     user-agent: test
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   408
  > EOF
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   409
  using raw connection to peer
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41383
diff changeset
   410
  s> setsockopt(6, 1, 1) -> None (?)
37832
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   411
  s>     GET /redirector?cmd=capabilities HTTP/1.1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   412
  s>     Accept-Encoding: identity\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   413
  s>     user-agent: test\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   414
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   415
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   416
  s> makefile('rb', None)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   417
  s>     HTTP/1.1 301 Redirect\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   418
  s>     Server: testing stub value\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   419
  s>     Date: $HTTP_DATE$\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   420
  s>     Location: http://$LOCALIP:$HGPORT/redirected\r\n (glob)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   421
  s>     Content-Type: text/plain\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   422
  s>     Content-Length: 10\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   423
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   424
  s>     redirected
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41383
diff changeset
   425
  s> setsockopt(6, 1, 1) -> None (?)
37832
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   426
  s>     GET /redirected HTTP/1.1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   427
  s>     Accept-Encoding: identity\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   428
  s>     user-agent: test\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   429
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   430
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   431
  s> makefile('rb', None)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   432
  s>     HTTP/1.1 200 Script output follows\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   433
  s>     Server: testing stub value\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   434
  s>     Date: $HTTP_DATE$\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   435
  s>     ETag: W/"*"\r\n (glob)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   436
  s>     Content-Type: text/html; charset=ascii\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   437
  s>     Transfer-Encoding: chunked\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   438
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   439
  s>     414\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   440
  s>     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   441
  s>     <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   442
  s>     <head>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   443
  s>     <link rel="icon" href="/redirected/static/hgicon.png" type="image/png" />\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   444
  s>     <meta name="robots" content="index, nofollow" />\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   445
  s>     <link rel="stylesheet" href="/redirected/static/style-paper.css" type="text/css" />\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   446
  s>     <script type="text/javascript" src="/redirected/static/mercurial.js"></script>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   447
  s>     \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   448
  s>     <title>redirected: log</title>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   449
  s>     <link rel="alternate" type="application/atom+xml"\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   450
  s>        href="/redirected/atom-log" title="Atom feed for redirected" />\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   451
  s>     <link rel="alternate" type="application/rss+xml"\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   452
  s>        href="/redirected/rss-log" title="RSS feed for redirected" />\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   453
  s>     </head>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   454
  s>     <body>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   455
  s>     \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   456
  s>     <div class="container">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   457
  s>     <div class="menu">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   458
  s>     <div class="logo">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   459
  s>     <a href="https://mercurial-scm.org/">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   460
  s>     <img src="/redirected/static/hglogo.png" alt="mercurial" /></a>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   461
  s>     </div>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   462
  s>     <ul>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   463
  s>     <li class="active">log</li>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   464
  s>     <li><a href="/redirected/graph/tip">graph</a></li>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   465
  s>     <li><a href="/redirected/tags">tags</a></li>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   466
  s>     <li><a href="
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   467
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   468
  s>     810\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   469
  s>     /redirected/bookmarks">bookmarks</a></li>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   470
  s>     <li><a href="/redirected/branches">branches</a></li>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   471
  s>     </ul>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   472
  s>     <ul>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   473
  s>     <li><a href="/redirected/rev/tip">changeset</a></li>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   474
  s>     <li><a href="/redirected/file/tip">browse</a></li>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   475
  s>     </ul>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   476
  s>     <ul>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   477
  s>     \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   478
  s>     </ul>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   479
  s>     <ul>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   480
  s>      <li><a href="/redirected/help">help</a></li>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   481
  s>     </ul>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   482
  s>     <div class="atom-logo">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   483
  s>     <a href="/redirected/atom-log" title="subscribe to atom feed">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   484
  s>     <img class="atom-logo" src="/redirected/static/feed-icon-14x14.png" alt="atom feed" />\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   485
  s>     </a>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   486
  s>     </div>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   487
  s>     </div>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   488
  s>     \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   489
  s>     <div class="main">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   490
  s>     <h2 class="breadcrumb"><a href="/">Mercurial</a> &gt; <a href="/redirected">redirected</a> </h2>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   491
  s>     <h3>log</h3>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   492
  s>     \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   493
  s>     \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   494
  s>     <form class="search" action="/redirected/log">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   495
  s>     \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   496
  s>     <p><input name="rev" id="search1" type="text" size="30" value="" /></p>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   497
  s>     <div id="hint">Find changesets by keywords (author, files, the commit message), revision\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   498
  s>     number or hash, or <a href="/redirected/help/revsets">revset expression</a>.</div>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   499
  s>     </form>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   500
  s>     \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   501
  s>     <div class="navigate">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   502
  s>     <a href="/redirected/shortlog/tip?revcount=30">less</a>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   503
  s>     <a href="/redirected/shortlog/tip?revcount=120">more</a>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   504
  s>     | rev 0: <a href="/redirected/shortlog/96ee1d7354c4">(0)</a> <a href="/redirected/shortlog/tip">tip</a> \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   505
  s>     </div>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   506
  s>     \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   507
  s>     <table class="bigtable">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   508
  s>     <thead>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   509
  s>      <tr>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   510
  s>       <th class="age">age</th>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   511
  s>       <th class="author">author</th>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   512
  s>       <th class="description">description</th>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   513
  s>      </tr>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   514
  s>     </thead>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   515
  s>     <tbody class="stripes2">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   516
  s>      <tr>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   517
  s>       <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   518
  s>       <td class="author">test</td>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   519
  s>       <td class="description">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   520
  s>        <a href="/redirected/rev/96ee1d7354c4">initial</a>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   521
  s>        <span class="phase">draft</span> <span class="branchhead">default</span> <span class="tag">tip</span> \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   522
  s>       </td>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   523
  s>      </tr>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   524
  s>     \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   525
  s>     </tbody>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   526
  s>     </table>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   527
  s>     \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   528
  s>     <div class="navigate">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   529
  s>     <a href="/redirected/shortlog/tip?revcount=30">less</a>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   530
  s>     <a href="/redirected/shortlog/tip?revcount=120">more</a>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   531
  s>     | rev 0: <a href="/redirected/shortlog/96ee1d7354c4">(0)</a> <a href="/redirected/shortlog/tip">tip</a> \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   532
  s>     </div>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   533
  s>     \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   534
  s>     <script type="text/javascript">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   535
  s>         ajaxScrollInit(\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   536
  s>                 \'/redirected/shortlog/%next%\',\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   537
  s>                 \'\', <!-- NEXTHASH\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   538
  s>                 function (htmlText) {
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   539
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   540
  s>     14a\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   541
  s>     \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   542
  s>                     var m = htmlText.match(/\'(\\w+)\', <!-- NEXTHASH/);\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   543
  s>                     return m ? m[1] : null;\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   544
  s>                 },\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   545
  s>                 \'.bigtable > tbody\',\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   546
  s>                 \'<tr class="%class%">\\\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   547
  s>                 <td colspan="3" style="text-align: center;">%text%</td>\\\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   548
  s>                 </tr>\'\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   549
  s>         );\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   550
  s>     </script>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   551
  s>     \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   552
  s>     </div>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   553
  s>     </div>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   554
  s>     \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   555
  s>     \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   556
  s>     \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   557
  s>     </body>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   558
  s>     </html>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   559
  s>     \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   560
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   561
  s>     0\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   562
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   563
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   564
  $ hg --verbose debugwireproto http://$LOCALIP:$HGPORT/redirector << EOF
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   565
  > command heads
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   566
  > EOF
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41383
diff changeset
   567
  s> setsockopt(6, 1, 1) -> None (?)
37832
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   568
  s>     GET /redirector?cmd=capabilities HTTP/1.1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   569
  s>     Accept-Encoding: identity\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   570
  s>     accept: application/mercurial-0.1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   571
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   572
  s>     user-agent: Mercurial debugwireproto\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   573
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   574
  s> makefile('rb', None)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   575
  s>     HTTP/1.1 301 Redirect\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   576
  s>     Server: testing stub value\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   577
  s>     Date: $HTTP_DATE$\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   578
  s>     Location: http://$LOCALIP:$HGPORT/redirected\r\n (glob)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   579
  s>     Content-Type: text/plain\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   580
  s>     Content-Length: 10\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   581
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   582
  s>     redirected
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41383
diff changeset
   583
  s> setsockopt(6, 1, 1) -> None (?)
37832
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   584
  s>     GET /redirected HTTP/1.1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   585
  s>     Accept-Encoding: identity\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   586
  s>     accept: application/mercurial-0.1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   587
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   588
  s>     user-agent: Mercurial debugwireproto\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   589
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   590
  s> makefile('rb', None)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   591
  s>     HTTP/1.1 200 Script output follows\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   592
  s>     Server: testing stub value\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   593
  s>     Date: $HTTP_DATE$\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   594
  s>     ETag: W/"*"\r\n (glob)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   595
  s>     Content-Type: text/html; charset=ascii\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   596
  s>     Transfer-Encoding: chunked\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   597
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   598
  real URL is http://$LOCALIP:$HGPORT/redirected (glob)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   599
  s>     414\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   600
  s>     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   601
  s>     <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   602
  s>     <head>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   603
  s>     <link rel="icon" href="/redirected/static/hgicon.png" type="image/png" />\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   604
  s>     <meta name="robots" content="index, nofollow" />\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   605
  s>     <link rel="stylesheet" href="/redirected/static/style-paper.css" type="text/css" />\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   606
  s>     <script type="text/javascript" src="/redirected/static/mercurial.js"></script>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   607
  s>     \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   608
  s>     <title>redirected: log</title>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   609
  s>     <link rel="alternate" type="application/atom+xml"\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   610
  s>        href="/redirected/atom-log" title="Atom feed for redirected" />\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   611
  s>     <link rel="alternate" type="application/rss+xml"\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   612
  s>        href="/redirected/rss-log" title="RSS feed for redirected" />\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   613
  s>     </head>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   614
  s>     <body>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   615
  s>     \n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   616
  s>     <div class="container">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   617
  s>     <div class="menu">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   618
  s>     <div class="logo">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   619
  s>     <a href="https://mercurial-scm.org/">\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   620
  s>     <img src="/redirected/static/hglogo.png" alt="mercurial" /></a>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   621
  s>     </div>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   622
  s>     <ul>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   623
  s>     <li class="active">log</li>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   624
  s>     <li><a href="/redirected/graph/tip">graph</a></li>\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   625
  s>     <li><a href="/redirected/tags">tags</a
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41383
diff changeset
   626
  s> setsockopt(6, 1, 1) -> None (?)
37832
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   627
  s>     GET /redirected?cmd=capabilities HTTP/1.1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   628
  s>     Accept-Encoding: identity\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   629
  s>     accept: application/mercurial-0.1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   630
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   631
  s>     user-agent: Mercurial debugwireproto\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   632
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   633
  s> makefile('rb', None)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   634
  s>     HTTP/1.1 200 Script output follows\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   635
  s>     Server: testing stub value\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   636
  s>     Date: $HTTP_DATE$\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   637
  s>     Content-Type: application/mercurial-0.1\r\n
48651
c3239f2ee61b stream-requirements: smoother matching in test-http-protocol.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48526
diff changeset
   638
  s>     Content-Length: \d+\\r\\n (re)
37832
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   639
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   640
  real URL is http://$LOCALIP:$HGPORT/redirected (glob)
48651
c3239f2ee61b stream-requirements: smoother matching in test-http-protocol.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48526
diff changeset
   641
  s>     batch branchmap \$USUAL_BUNDLE2_CAPS\$ changegroupsubset compression=\$BUNDLE2_COMPRESSIONS\$ getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=[^ ,]+(,[^ ,]+)* unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (re)
37832
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   642
  sending heads command
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41383
diff changeset
   643
  s> setsockopt(6, 1, 1) -> None (?)
37832
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   644
  s>     GET /redirected?cmd=heads HTTP/1.1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   645
  s>     Accept-Encoding: identity\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   646
  s>     vary: X-HgProto-1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   647
  s>     x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   648
  s>     accept: application/mercurial-0.1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   649
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   650
  s>     user-agent: Mercurial debugwireproto\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   651
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   652
  s> makefile('rb', None)
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   653
  s>     HTTP/1.1 200 Script output follows\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   654
  s>     Server: testing stub value\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   655
  s>     Date: $HTTP_DATE$\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   656
  s>     Content-Type: application/mercurial-0.1\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   657
  s>     Content-Length: 41\r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   658
  s>     \r\n
6169d95dce3b httppeer: detect redirect to URL without query string (issue5860)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37822
diff changeset
   659
  s>     96ee1d7354c4ad7372047672c36a1f561e3a6a4c\n
39378
0f549da54379 stringutil: teach pprint() to indent
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38021
diff changeset
   660
  response: [
0f549da54379 stringutil: teach pprint() to indent
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38021
diff changeset
   661
    b'\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL'
0f549da54379 stringutil: teach pprint() to indent
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38021
diff changeset
   662
  ]
40034
393e44324037 httppeer: report http statistics
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39815
diff changeset
   663
  (sent 4 HTTP requests and * bytes; received * bytes in responses) (glob)