tests/test-ssh-proto.t
changeset 36215 464bedc0fdb4
parent 36076 465858451347
child 36216 7218e93ade47
equal deleted inserted replaced
36214:3b3a987bbbaa 36215:464bedc0fdb4
   451   remote: 1
   451   remote: 1
   452   url: ssh://user@dummy/server
   452   url: ssh://user@dummy/server
   453   local: no
   453   local: no
   454   pushable: yes
   454   pushable: yes
   455 
   455 
       
   456 Enable version 2 support on server. We need to do this in hgrc because we can't
       
   457 use --config with `hg serve --stdio`.
       
   458 
       
   459   $ cat >> server/.hg/hgrc << EOF
       
   460   > [experimental]
       
   461   > sshserver.support-v2 = true
       
   462   > EOF
       
   463 
   456 Send an upgrade request to a server that supports upgrade
   464 Send an upgrade request to a server that supports upgrade
   457 
   465 
   458   $ SSHSERVERMODE=upgradev2 hg -R server serve --stdio << EOF
   466   $ hg -R server serve --stdio << EOF
   459   > upgrade this-is-some-token proto=exp-ssh-v2-0001
   467   > upgrade this-is-some-token proto=exp-ssh-v2-0001
   460   > hello
   468   > hello
   461   > between
   469   > between
   462   > pairs 81
   470   > pairs 81
   463   > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
   471   > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
   464   > EOF
   472   > EOF
   465   upgraded this-is-some-token exp-ssh-v2-0001
   473   upgraded this-is-some-token exp-ssh-v2-0001
   466   383
   474   383
   467   capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
   475   capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
   468 
   476 
   469   $ SSHSERVERMODE=upgradev2 hg --config experimental.sshpeer.advertise-v2=true --debug debugpeer ssh://user@dummy/server
   477   $ hg --config experimental.sshpeer.advertise-v2=true --debug debugpeer ssh://user@dummy/server
   470   running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob) (no-windows !)
   478   running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob) (no-windows !)
   471   running * "*\tests/dummyssh" "user@dummy" "hg -R server serve --stdio" (glob) (windows !)
   479   running * "*\tests/dummyssh" "user@dummy" "hg -R server serve --stdio" (glob) (windows !)
   472   sending upgrade request: * proto=exp-ssh-v2-0001 (glob)
   480   sending upgrade request: * proto=exp-ssh-v2-0001 (glob)
   473   devel-peer-request: hello
   481   devel-peer-request: hello
   474   sending hello command
   482   sending hello command
   480   local: no
   488   local: no
   481   pushable: yes
   489   pushable: yes
   482 
   490 
   483 Verify the peer has capabilities
   491 Verify the peer has capabilities
   484 
   492 
   485   $ SSHSERVERMODE=upgradev2 hg --config experimental.sshpeer.advertise-v2=true --debug debugcapabilities ssh://user@dummy/server
   493   $ hg --config experimental.sshpeer.advertise-v2=true --debug debugcapabilities ssh://user@dummy/server
   486   running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob) (no-windows !)
   494   running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob) (no-windows !)
   487   running * "*\tests/dummyssh" "user@dummy" "hg -R server serve --stdio" (glob) (windows !)
   495   running * "*\tests/dummyssh" "user@dummy" "hg -R server serve --stdio" (glob) (windows !)
   488   sending upgrade request: * proto=exp-ssh-v2-0001 (glob)
   496   sending upgrade request: * proto=exp-ssh-v2-0001 (glob)
   489   devel-peer-request: hello
   497   devel-peer-request: hello
   490   sending hello command
   498   sending hello command
   525       heads
   533       heads
   526     pushkey
   534     pushkey
   527     remote-changegroup
   535     remote-changegroup
   528       http
   536       http
   529       https
   537       https
       
   538 
       
   539 Command after upgrade to version 2 is processed
       
   540 
       
   541   $ hg -R server serve --stdio << EOF
       
   542   > upgrade this-is-some-token proto=exp-ssh-v2-0001
       
   543   > hello
       
   544   > between
       
   545   > pairs 81
       
   546   > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000hello
       
   547   > EOF
       
   548   upgraded this-is-some-token exp-ssh-v2-0001
       
   549   383
       
   550   capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
       
   551   384
       
   552   capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
       
   553 
       
   554 Multiple upgrades is not allowed
       
   555 
       
   556   $ hg -R server serve --stdio << EOF
       
   557   > upgrade this-is-some-token proto=exp-ssh-v2-0001
       
   558   > hello
       
   559   > between
       
   560   > pairs 81
       
   561   > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000upgrade another-token proto=irrelevant
       
   562   > hello
       
   563   > EOF
       
   564   upgraded this-is-some-token exp-ssh-v2-0001
       
   565   383
       
   566   capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
       
   567   cannot upgrade protocols multiple times
       
   568   -
       
   569   
       
   570 
       
   571 Malformed upgrade request line (not exactly 3 space delimited tokens)
       
   572 
       
   573   $ hg -R server serve --stdio << EOF
       
   574   > upgrade
       
   575   > EOF
       
   576   0
       
   577 
       
   578   $ hg -R server serve --stdio << EOF
       
   579   > upgrade token
       
   580   > EOF
       
   581   0
       
   582 
       
   583   $ hg -R server serve --stdio << EOF
       
   584   > upgrade token foo=bar extra-token
       
   585   > EOF
       
   586   0
       
   587 
       
   588 Upgrade request to unsupported protocol is ignored
       
   589 
       
   590   $ hg -R server serve --stdio << EOF
       
   591   > upgrade this-is-some-token proto=unknown1,unknown2
       
   592   > hello
       
   593   > between
       
   594   > pairs 81
       
   595   > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
       
   596   > EOF
       
   597   0
       
   598   384
       
   599   capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
       
   600   1
       
   601   
       
   602 
       
   603 Upgrade request must be followed by hello + between
       
   604 
       
   605   $ hg -R server serve --stdio << EOF
       
   606   > upgrade token proto=exp-ssh-v2-0001
       
   607   > invalid
       
   608   > EOF
       
   609   malformed handshake protocol: missing hello
       
   610   -
       
   611   
       
   612 
       
   613   $ hg -R server serve --stdio << EOF
       
   614   > upgrade token proto=exp-ssh-v2-0001
       
   615   > hello
       
   616   > invalid
       
   617   > EOF
       
   618   malformed handshake protocol: missing between
       
   619   -
       
   620   
       
   621 
       
   622   $ hg -R server serve --stdio << EOF
       
   623   > upgrade token proto=exp-ssh-v2-0001
       
   624   > hello
       
   625   > between
       
   626   > invalid
       
   627   > EOF
       
   628   malformed handshake protocol: missing pairs 81
       
   629   -
       
   630