Patchwork D2381: tests: store protocol payload in files

login
register
mail settings
Submitter phabricator
Date Feb. 21, 2018, 10:08 p.m.
Message ID <differential-rev-PHID-DREV-ecf5aqebn6l2ltiwhod4-req@phab.mercurial-scm.org>
Download mbox | patch
Permalink /patch/28214/
State Superseded
Headers show

Comments

phabricator - Feb. 21, 2018, 10:08 p.m.
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  Upcoming changes to version 2 of the SSH protocol will introduce
  binary components to the protocol. It will be easier to eliminate
  trailing newlines and use binary in the tests if the protocol
  payload is being generated by Python.
  
  So use inline Python to write payloads to files and pipe those files
  to server processes instead of shell strings/variables.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D2381

AFFECTED FILES
  tests/test-ssh-proto.t

CHANGE DETAILS




To: indygreg, #hg-reviewers
Cc: mercurial-devel

Patch

diff --git a/tests/test-ssh-proto.t b/tests/test-ssh-proto.t
--- a/tests/test-ssh-proto.t
+++ b/tests/test-ssh-proto.t
@@ -463,13 +463,14 @@ 
 
 Send an upgrade request to a server that supports upgrade
 
-  $ hg -R server serve --stdio << EOF
-  > upgrade this-is-some-token proto=exp-ssh-v2-0001
-  > hello
-  > between
-  > pairs 81
-  > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
-  > EOF
+  >>> with open('payload', 'wb') as fh:
+  ...     fh.write(b'upgrade this-is-some-token proto=exp-ssh-v2-0001\n')
+  ...     fh.write(b'hello\n')
+  ...     fh.write(b'between\n')
+  ...     fh.write(b'pairs 81\n')
+  ...     fh.write(b'0000000000000000000000000000000000000000-0000000000000000000000000000000000000000')
+
+  $ hg -R server serve --stdio < payload
   upgraded this-is-some-token exp-ssh-v2-0001
   383
   capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
@@ -540,29 +541,31 @@ 
 
 Command after upgrade to version 2 is processed
 
-  $ hg -R server serve --stdio << EOF
-  > upgrade this-is-some-token proto=exp-ssh-v2-0001
-  > hello
-  > between
-  > pairs 81
-  > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000hello
-  > EOF
+  >>> with open('payload', 'wb') as fh:
+  ...     fh.write(b'upgrade this-is-some-token proto=exp-ssh-v2-0001\n')
+  ...     fh.write(b'hello\n')
+  ...     fh.write(b'between\n')
+  ...     fh.write(b'pairs 81\n')
+  ...     fh.write(b'0000000000000000000000000000000000000000-0000000000000000000000000000000000000000')
+  ...     fh.write(b'hello\n')
+  $ hg -R server serve --stdio < payload
   upgraded this-is-some-token exp-ssh-v2-0001
   383
   capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
   384
   capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
 
 Multiple upgrades is not allowed
 
-  $ hg -R server serve --stdio << EOF
-  > upgrade this-is-some-token proto=exp-ssh-v2-0001
-  > hello
-  > between
-  > pairs 81
-  > 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000upgrade another-token proto=irrelevant
-  > hello
-  > EOF
+  >>> with open('payload', 'wb') as fh:
+  ...     fh.write(b'upgrade this-is-some-token proto=exp-ssh-v2-0001\n')
+  ...     fh.write(b'hello\n')
+  ...     fh.write(b'between\n')
+  ...     fh.write(b'pairs 81\n')
+  ...     fh.write(b'0000000000000000000000000000000000000000-0000000000000000000000000000000000000000')
+  ...     fh.write(b'upgrade another-token proto=irrelevant\n')
+  ...     fh.write(b'hello\n')
+  $ hg -R server serve --stdio < payload
   upgraded this-is-some-token exp-ssh-v2-0001
   383
   capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN