Patchwork test: add a test file that displays ssh behavior in front of various errors

login
register
mail settings
Submitter Boris Feld
Date Aug. 31, 2018, 2:35 p.m.
Message ID <6af5b6f05e931fbab5ba.1535726110@localhost.localdomain>
Download mbox | patch
Permalink /patch/34206/
State Accepted
Headers show

Comments

Boris Feld - Aug. 31, 2018, 2:35 p.m.
# HG changeset patch
# User Boris Feld <boris.feld@octobus.net>
# Date 1533106375 -7200
#      Wed Aug 01 08:52:55 2018 +0200
# Node ID 6af5b6f05e931fbab5baec1bef2a78d1e86acb90
# Parent  6f38284b23f426b55d9375919f63ab4bd0fa81c0
# EXP-Topic ssh-error
# Available At https://bitbucket.org/octobus/mercurial-devel/
#              hg pull https://bitbucket.org/octobus/mercurial-devel/ -r 6af5b6f05e93
test: add a test file that displays ssh behavior in front of various errors

Prior to changeset ac0a87160012, these errors were suboptimal since they claim
the repository is missing while the actual issue was about permission.

This extra test file provides additional documented coverage for the various
corner cases.
Yuya Nishihara - Sept. 1, 2018, 12:35 a.m.
On Fri, 31 Aug 2018 16:35:10 +0200, Boris Feld wrote:
> # HG changeset patch
> # User Boris Feld <boris.feld@octobus.net>
> # Date 1533106375 -7200
> #      Wed Aug 01 08:52:55 2018 +0200
> # Node ID 6af5b6f05e931fbab5baec1bef2a78d1e86acb90
> # Parent  6f38284b23f426b55d9375919f63ab4bd0fa81c0
> # EXP-Topic ssh-error
> # Available At https://bitbucket.org/octobus/mercurial-devel/
> #              hg pull https://bitbucket.org/octobus/mercurial-devel/ -r 6af5b6f05e93
> test: add a test file that displays ssh behavior in front of various errors
> 
> Prior to changeset ac0a87160012, these errors were suboptimal since they claim
> the repository is missing while the actual issue was about permission.
> 
> This extra test file provides additional documented coverage for the various
> corner cases.
> 
> diff --git a/tests/test-ssh-repoerror.t b/tests/test-ssh-repoerror.t
> new file mode 100644
> --- /dev/null
> +++ b/tests/test-ssh-repoerror.t
> @@ -0,0 +1,67 @@
> +
> +initial setup
> +
> +  $ cat << EOF >> $HGRCPATH
> +  > [ui]
> +  > ssh=$PYTHON "$TESTDIR/dummyssh"
> +  > EOF
> +
> +repository itself is non-readable
> +---------------------------------
> +
> +  $ hg init no-read
> +  $ hg id ssh://user@dummy/no-read
> +  000000000000
> +  $ chmod a-rx no-read

Added "#require unix-permissions no-root" and queued, thanks.

Patch

diff --git a/tests/test-ssh-repoerror.t b/tests/test-ssh-repoerror.t
new file mode 100644
--- /dev/null
+++ b/tests/test-ssh-repoerror.t
@@ -0,0 +1,67 @@ 
+
+initial setup
+
+  $ cat << EOF >> $HGRCPATH
+  > [ui]
+  > ssh=$PYTHON "$TESTDIR/dummyssh"
+  > EOF
+
+repository itself is non-readable
+---------------------------------
+
+  $ hg init no-read
+  $ hg id ssh://user@dummy/no-read
+  000000000000
+  $ chmod a-rx no-read
+
+  $ hg id ssh://user@dummy/no-read
+  remote: abort: Permission denied: '$TESTTMP/no-read/.hg'
+  abort: no suitable response from remote hg!
+  [255]
+
+special case files are visible, but unreadable
+----------------------------------------------
+
+This is "similar" to the test above, but the directory is "traversable". This
+seems an unexpected case in real life, but we test it anyway.
+
+  $ hg init other
+  $ hg id ssh://user@dummy/other
+  000000000000
+  $ for item in `find other | sort -r` ; do
+  >     chmod a-r $item
+  > done
+
+  $ hg id ssh://user@dummy/other
+  remote: abort: Permission denied: $TESTTMP/other/.hg/requires
+  abort: no suitable response from remote hg!
+  [255]
+
+directory toward the repository is read only
+--------------------------------------------
+
+  $ mkdir deep
+  $ hg init deep/nested
+
+  $ hg id ssh://user@dummy/deep/nested
+  000000000000
+
+  $ chmod a-rx deep
+
+  $ hg id ssh://user@dummy/deep/nested
+  remote: abort: Permission denied: '$TESTTMP/deep/nested/.hg'
+  abort: no suitable response from remote hg!
+  [255]
+
+repository has wrong requirement
+--------------------------------
+
+  $ hg init repo-future
+  $ hg id ssh://user@dummy/repo-future
+  000000000000
+  $ echo flying-car >> repo-future/.hg/requires
+  $ hg id ssh://user@dummy/repo-future
+  remote: abort: repository requires features unknown to this Mercurial: flying-car!
+  remote: (see https://mercurial-scm.org/wiki/MissingRequirement for more information)
+  abort: no suitable response from remote hg!
+  [255]