##// END OF EJS Templates
tests: make simple single quotes work with dummyssh on windows...
tests: make simple single quotes work with dummyssh on windows Mercurial assumes that the shell on remote servers over ssh servers uses unix quoting rules. Tests using dummyssh are however also run on windows where cmd doesn't parse single quotes like on unix. This hack replaces the single quotes with double quotes on windows - that is enough to make test-ssh.t pass after d8fa35c28335.

File last commit:

r15648:79cc89de default
r15768:cdf9c434 default
Show More
test-ssh.t
302 lines | 8.6 KiB | text/troff | Tads3Lexer
Matt Mackall
tests: unify test-ssh
r12414
This test tries to exercise the ssh functionality with a dummy script
Mads Kiilerich
tests: fix test-ssh.t after 6bd9778ae749
r14185 creating 'remote' repo
Matt Mackall
tests: unify test-ssh
r12414
$ hg init remote
$ cd remote
$ echo this > foo
$ echo this > fooO
$ hg ci -A -m "init" foo fooO
Mads Kiilerich
tests: fix test-ssh.t after 6bd9778ae749
r14185 $ cat <<EOF > .hg/hgrc
Matt Mackall
pushkey: force HTTP POST on push and add tests (issue2489)
r12969 > [server]
> uncompressed = True
>
> [hooks]
Mads Kiilerich
tests: use printenv.py where it is - don't copy it around
r13405 > changegroup = python "$TESTDIR"/printenv.py changegroup-in-remote 0 ../dummylog
Matt Mackall
pushkey: force HTTP POST on push and add tests (issue2489)
r12969 > EOF
Matt Mackall
tests: unify test-ssh
r12414 $ cd ..
repo not found error
Mads Kiilerich
tests: share dummyssh
r14186 $ hg clone -e "python $TESTDIR/dummyssh" ssh://user@dummy/nonexistent local
Matt Mackall
tests: unify test-ssh
r12414 remote: abort: There is no Mercurial repository here (.hg not found)!
abort: no suitable response from remote hg!
[255]
non-existent absolute path
Mads Kiilerich
tests: share dummyssh
r14186 $ hg clone -e "python $TESTDIR/dummyssh" ssh://user@dummy//`pwd`/nonexistent local
Matt Mackall
tests: unify test-ssh
r12414 remote: abort: There is no Mercurial repository here (.hg not found)!
abort: no suitable response from remote hg!
[255]
clone remote via stream
Mads Kiilerich
tests: share dummyssh
r14186 $ hg clone -e "python $TESTDIR/dummyssh" --uncompressed ssh://user@dummy/remote local-stream
Matt Mackall
tests: unify test-ssh
r12414 streaming all changes
Matt Mackall
tests: unify test-ssh
r12489 4 files to transfer, 392 bytes of data
timeless
test-ssh: handle very slow ssh transfer rate
r12773 transferred 392 bytes in * seconds (*/sec) (glob)
Matt Mackall
tests: unify test-ssh
r12414 updating to branch default
Matt Mackall
tests: unify test-ssh
r12489 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Matt Mackall
tests: unify test-ssh
r12414 $ cd local-stream
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
2 files, 1 changesets, 2 total revisions
$ cd ..
clone remote via pull
Mads Kiilerich
tests: share dummyssh
r14186 $ hg clone -e "python $TESTDIR/dummyssh" ssh://user@dummy/remote local
Matt Mackall
tests: unify test-ssh
r12414 requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 2 changes to 2 files
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
verify
$ cd local
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
2 files, 1 changesets, 2 total revisions
$ echo '[hooks]' >> .hg/hgrc
Mads Kiilerich
tests: use printenv.py where it is - don't copy it around
r13405 $ echo 'changegroup = python "$TESTDIR"/printenv.py changegroup-in-local 0 ../dummylog' >> .hg/hgrc
Matt Mackall
tests: unify test-ssh
r12414
empty default pull
$ hg paths
default = ssh://user@dummy/remote
Mads Kiilerich
tests: share dummyssh
r14186 $ hg pull -e "python $TESTDIR/dummyssh"
Matt Mackall
tests: unify test-ssh
r12414 pulling from ssh://user@dummy/remote
searching for changes
no changes found
local change
$ echo bleah > foo
$ hg ci -m "add"
updating rc
$ echo "default-push = ssh://user@dummy/remote" >> .hg/hgrc
$ echo "[ui]" >> .hg/hgrc
Mads Kiilerich
tests: share dummyssh
r14186 $ echo "ssh = python $TESTDIR/dummyssh" >> .hg/hgrc
Matt Mackall
tests: unify test-ssh
r12414
find outgoing
$ hg out ssh://user@dummy/remote
comparing with ssh://user@dummy/remote
searching for changes
changeset: 1:a28a9d1a809c
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add
find incoming on the remote side
Mads Kiilerich
tests: share dummyssh
r14186 $ hg incoming -R ../remote -e "python $TESTDIR/dummyssh" ssh://user@dummy/local
Matt Mackall
tests: unify test-ssh
r12414 comparing with ssh://user@dummy/local
searching for changes
changeset: 1:a28a9d1a809c
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add
Brodie Rao
test-ssh: test absolute path that exists
r12504 find incoming on the remote side (using absolute path)
Mads Kiilerich
tests: share dummyssh
r14186 $ hg incoming -R ../remote -e "python $TESTDIR/dummyssh" "ssh://user@dummy/`pwd`"
Mads Kiilerich
tests: remove redundant globs...
r12640 comparing with ssh://user@dummy/$TESTTMP/local
Brodie Rao
test-ssh: test absolute path that exists
r12504 searching for changes
changeset: 1:a28a9d1a809c
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add
Matt Mackall
tests: unify test-ssh
r12414 push
$ hg push
pushing to ssh://user@dummy/remote
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
$ cd ../remote
check remote tip
$ hg tip
changeset: 1:a28a9d1a809c
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
2 files, 2 changesets, 3 total revisions
$ hg cat -r tip foo
bleah
$ echo z > z
$ hg ci -A -m z z
created new head
Matt Mackall
pushkey: force HTTP POST on push and add tests (issue2489)
r12969 test pushkeys and bookmarks
$ cd ../local
Mads Kiilerich
tests: share dummyssh
r14186 $ hg debugpushkey --config ui.ssh="python $TESTDIR/dummyssh" ssh://user@dummy/remote namespaces
Matt Mackall
pushkey: force HTTP POST on push and add tests (issue2489)
r12969 bookmarks
Pierre-Yves David
phases: add basic pushkey support
r15648 phases
Matt Mackall
pushkey: force HTTP POST on push and add tests (issue2489)
r12969 namespaces
$ hg book foo -r 0
$ hg out -B
comparing with ssh://user@dummy/remote
searching for changed bookmarks
foo 1160648e36ce
$ hg push -B foo
pushing to ssh://user@dummy/remote
searching for changes
no changes found
exporting bookmark foo
Mads Kiilerich
tests: share dummyssh
r14186 $ hg debugpushkey --config ui.ssh="python $TESTDIR/dummyssh" ssh://user@dummy/remote bookmarks
Matt Mackall
pushkey: force HTTP POST on push and add tests (issue2489)
r12969 foo 1160648e36cec0054048a7edc4110c6f84fde594
$ hg book -f foo
Matt Mackall
pushkey: use UTF-8
r13050 $ hg push --traceback
Matt Mackall
pushkey: force HTTP POST on push and add tests (issue2489)
r12969 pushing to ssh://user@dummy/remote
searching for changes
no changes found
updating bookmark foo
$ hg book -d foo
$ hg in -B
comparing with ssh://user@dummy/remote
searching for changed bookmarks
foo a28a9d1a809c
$ hg book -f -r 0 foo
$ hg pull -B foo
pulling from ssh://user@dummy/remote
no changes found
updating bookmark foo
importing bookmark foo
$ hg book -d foo
$ hg push -B foo
Matt Mackall
bookmarks: move push/pull command features to core
r13368 pushing to ssh://user@dummy/remote
searching for changes
no changes found
Matt Mackall
pushkey: force HTTP POST on push and add tests (issue2489)
r12969 deleting remote bookmark foo
Matt Mackall
tests: unify test-ssh
r12414 a bad, evil hook that prints to stdout
Mads Kiilerich
tests: share dummyssh
r14186 $ cat <<EOF > $TESTTMP/badhook
> import sys
> sys.stdout.write("KABOOM\n")
> EOF
Matt Mackall
pushkey: force HTTP POST on push and add tests (issue2489)
r12969 $ echo '[hooks]' >> ../remote/.hg/hgrc
Mads Kiilerich
tests: share dummyssh
r14186 $ echo "changegroup.stdout = python $TESTTMP/badhook" >> ../remote/.hg/hgrc
Matt Mackall
tests: unify test-ssh
r12414 $ echo r > r
$ hg ci -A -m z r
push should succeed even though it has an unexpected response
$ hg push
pushing to ssh://user@dummy/remote
searching for changes
note: unsynced remote changes!
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
remote: KABOOM
$ hg -R ../remote heads
changeset: 3:1383141674ec
tag: tip
parent: 1:a28a9d1a809c
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: z
changeset: 2:6c0482d977a3
parent: 0:1160648e36ce
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: z
Adrian Buehlmann
sshrepo: catch passwords in ssh urls...
r13464
David Soria Parra
hg: add support for cloning bookmarks
r13604 clone bookmarks
$ hg -R ../remote bookmark test
$ hg -R ../remote bookmarks
* test 2:6c0482d977a3
Mads Kiilerich
tests: share dummyssh
r14186 $ hg clone -e "python $TESTDIR/dummyssh" ssh://user@dummy/remote local-bookmarks
David Soria Parra
hg: add support for cloning bookmarks
r13604 requesting all changes
adding changesets
adding manifests
adding file changes
added 4 changesets with 5 changes to 4 files (+1 heads)
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R local-bookmarks bookmarks
test 2:6c0482d977a3
Adrian Buehlmann
sshrepo: catch passwords in ssh urls...
r13464 passwords in ssh urls are not supported
Matt Mackall
ssh: fix password test...
r13755 (we use a glob here because different Python versions give different
results here)
Adrian Buehlmann
sshrepo: catch passwords in ssh urls...
r13464
$ hg push ssh://user:erroneouspwd@dummy/remote
Matt Mackall
ssh: fix password test...
r13755 pushing to ssh://user:*@dummy/remote (glob)
Adrian Buehlmann
sshrepo: catch passwords in ssh urls...
r13464 abort: password in URL not supported!
[255]
Matt Mackall
tests: unify test-ssh
r12414 $ cd ..
Mads Kiilerich
ssh: quote remote paths (issue2983)
r15581
Test remote paths with spaces (issue2983):
$ hg init --ssh "python $TESTDIR/dummyssh" "ssh://user@dummy/a repo"
$ hg -R 'a repo' tag tag
$ hg id --ssh "python $TESTDIR/dummyssh" "ssh://user@dummy/a repo"
3fb238f49e8c
Matt Mackall
tests: unify test-ssh
r12414 $ cat dummylog
Mads Kiilerich
sshrepo: don't quote obviously safe strings (issue2983)...
r15622 Got arguments 1:user@dummy 2:hg -R nonexistent serve --stdio
Got arguments 1:user@dummy 2:hg -R /$TESTTMP/nonexistent serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R local serve --stdio
Got arguments 1:user@dummy 2:hg -R $TESTTMP/local serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Mads Kiilerich
tests: fix test-ssh.t after 6bd9778ae749
r14185 changegroup-in-remote hook: HG_NODE=a28a9d1a809cab7d4e2fde4bee738a9ede948b60 HG_SOURCE=serve HG_URL=remote:ssh:127.0.0.1
Mads Kiilerich
sshrepo: don't quote obviously safe strings (issue2983)...
r15622 Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Mads Kiilerich
tests: fix test-ssh.t after 6bd9778ae749
r14185 changegroup-in-remote hook: HG_NODE=1383141674ec756a6056f6a9097618482fe0f4a6 HG_SOURCE=serve HG_URL=remote:ssh:127.0.0.1
Mads Kiilerich
sshrepo: don't quote obviously safe strings (issue2983)...
r15622 Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg init 'a repo'
Got arguments 1:user@dummy 2:hg -R 'a repo' serve --stdio
Got arguments 1:user@dummy 2:hg -R 'a repo' serve --stdio