# HG changeset patch # User Thomas Arendsen Hein # Date 1152687670 -7200 # Node ID e4b5e48052c6629795231cecc07460e9d55cf42e # Parent b898afee9d0d8b405875ef3e14cec554682c4ad7 Added tests for local and remote init. This tests the changes done in edb66cb05ded and b898afee9d0d. diff --git a/tests/test-init b/tests/test-init new file mode 100755 --- /dev/null +++ b/tests/test-init @@ -0,0 +1,52 @@ +#!/bin/sh + +# This test tries to exercise the ssh functionality with a dummy script + +cat <<'EOF' > dummyssh +#!/bin/sh +# this attempts to deal with relative pathnames +cd `dirname $0` + +# check for proper args +if [ $1 != "user@dummy" ] ; then + exit -1 +fi + +# check that we're in the right directory +if [ ! -x dummyssh ] ; then + exit -1 +fi + +echo Got arguments 1:$1 2:$2 3:$3 4:$4 5:$5 >> dummylog +$2 +EOF +chmod +x dummyssh + +echo "# creating 'local'" +hg init local +echo this > local/foo +hg ci --cwd local -A -m "init" -d "1000000 0" + +echo "# init+push to remote2" +hg init -e ./dummyssh ssh://user@dummy/remote2 +hg incoming -R remote2 local +hg push -R local -e ./dummyssh ssh://user@dummy/remote2 + +echo "# clone to remote1" +hg clone -e ./dummyssh local ssh://user@dummy/remote1 + +echo "# output of dummyssh" +cat dummylog + +echo "# comparing repositories" +hg tip -q -R local +hg tip -q -R remote1 +hg tip -q -R remote2 + +echo "# check names for repositories (clashes with URL schemes, special chars)" +for i in bundle file hg http https old-http ssh static-http " " "with space"; do + echo "# hg init \"$i\"" + hg init "$i" + test -d "$i" -a -d "$i/.hg" -a -d "$i/.hg/data" && echo "ok" || echo "failed" +done + diff --git a/tests/test-init.out b/tests/test-init.out new file mode 100644 --- /dev/null +++ b/tests/test-init.out @@ -0,0 +1,56 @@ +# creating 'local' +adding foo +# init+push to remote2 +changeset: 0:c4e059d443be +tag: tip +user: test +date: Mon Jan 12 13:46:40 1970 +0000 +summary: init + +pushing to ssh://user@dummy/remote2 +searching for changes +remote: adding changesets +remote: adding manifests +remote: adding file changes +remote: added 1 changesets with 1 changes to 1 files +# clone to remote1 +searching for changes +remote: abort: repository remote1 not found! +remote: adding changesets +remote: adding manifests +remote: adding file changes +remote: added 1 changesets with 1 changes to 1 files +# output of dummyssh +Got arguments 1:user@dummy 2:hg -R remote2 serve --stdio 3: 4: 5: +Got arguments 1:user@dummy 2:hg init remote2 3: 4: 5: +Got arguments 1:user@dummy 2:hg -R remote2 serve --stdio 3: 4: 5: +Got arguments 1:user@dummy 2:hg -R remote2 serve --stdio 3: 4: 5: +Got arguments 1:user@dummy 2:hg -R remote1 serve --stdio 3: 4: 5: +Got arguments 1:user@dummy 2:hg -R remote1 serve --stdio 3: 4: 5: +Got arguments 1:user@dummy 2:hg init remote1 3: 4: 5: +Got arguments 1:user@dummy 2:hg -R remote1 serve --stdio 3: 4: 5: +# comparing repositories +0:c4e059d443be +0:c4e059d443be +0:c4e059d443be +# check names for repositories (clashes with URL schemes, special chars) +# hg init "bundle" +ok +# hg init "file" +ok +# hg init "hg" +ok +# hg init "http" +ok +# hg init "https" +ok +# hg init "old-http" +ok +# hg init "ssh" +ok +# hg init "static-http" +ok +# hg init " " +ok +# hg init "with space" +ok