tests/test-ssh-repoerror.t
author Boris Feld <boris.feld@octobus.net>
Wed, 01 Aug 2018 08:52:55 +0200
changeset 39382 a7e22dd31f54
child 39707 5abc47d4ca6b
permissions -rw-r--r--
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.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
39382
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     1
#require unix-permissions no-root
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     2
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     3
initial setup
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     4
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     5
  $ cat << EOF >> $HGRCPATH
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     6
  > [ui]
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     7
  > ssh=$PYTHON "$TESTDIR/dummyssh"
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     8
  > EOF
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     9
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    10
repository itself is non-readable
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    11
---------------------------------
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    12
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    13
  $ hg init no-read
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    14
  $ hg id ssh://user@dummy/no-read
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    15
  000000000000
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    16
  $ chmod a-rx no-read
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    17
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    18
  $ hg id ssh://user@dummy/no-read
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    19
  remote: abort: Permission denied: '$TESTTMP/no-read/.hg'
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    20
  abort: no suitable response from remote hg!
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    21
  [255]
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    22
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    23
special case files are visible, but unreadable
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    24
----------------------------------------------
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    25
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    26
This is "similar" to the test above, but the directory is "traversable". This
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    27
seems an unexpected case in real life, but we test it anyway.
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    28
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    29
  $ hg init other
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    30
  $ hg id ssh://user@dummy/other
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    31
  000000000000
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    32
  $ for item in `find other | sort -r` ; do
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    33
  >     chmod a-r $item
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    34
  > done
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    35
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    36
  $ hg id ssh://user@dummy/other
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    37
  remote: abort: Permission denied: $TESTTMP/other/.hg/requires
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    38
  abort: no suitable response from remote hg!
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    39
  [255]
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    40
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    41
directory toward the repository is read only
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    42
--------------------------------------------
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    43
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    44
  $ mkdir deep
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    45
  $ hg init deep/nested
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    46
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    47
  $ hg id ssh://user@dummy/deep/nested
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    48
  000000000000
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    49
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    50
  $ chmod a-rx deep
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    51
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    52
  $ hg id ssh://user@dummy/deep/nested
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    53
  remote: abort: Permission denied: '$TESTTMP/deep/nested/.hg'
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    54
  abort: no suitable response from remote hg!
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    55
  [255]
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    56
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    57
repository has wrong requirement
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    58
--------------------------------
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    59
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    60
  $ hg init repo-future
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    61
  $ hg id ssh://user@dummy/repo-future
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    62
  000000000000
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    63
  $ echo flying-car >> repo-future/.hg/requires
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    64
  $ hg id ssh://user@dummy/repo-future
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    65
  remote: abort: repository requires features unknown to this Mercurial: flying-car!
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    66
  remote: (see https://mercurial-scm.org/wiki/MissingRequirement for more information)
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    67
  abort: no suitable response from remote hg!
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    68
  [255]