tests: store protocol payload in files
authorGregory Szorc <gregory.szorc@gmail.com>
Mon, 19 Feb 2018 13:20:17 -0800
changeset 36368 02782e6e2c38
parent 36367 043e77f3be09
child 36369 066e6a9d52bb
tests: store protocol payload in files 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. Differential Revision: https://phab.mercurial-scm.org/D2381
tests/test-ssh-proto.t
--- a/tests/test-ssh-proto.t	Wed Feb 21 08:35:48 2018 -0800
+++ b/tests/test-ssh-proto.t	Mon Feb 19 13:20:17 2018 -0800
@@ -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,13 +541,14 @@
 
 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
@@ -555,14 +557,15 @@
 
 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