tests/test-init
author Brodie Rao <me+hg@dackz.net>
Tue, 30 Jun 2009 17:58:17 -0400
changeset 8982 9c0cecb71350
parent 7249 671b3e1eac2e
child 11640 c3e8ab80ee90
permissions -rwxr-xr-x
zsh completion: disable defaults and verbose output when completing If ui.verbose is set to True in hgrc, commands used to provide completions would yield bad results. For example, qpush completion would include the patch numbers and statuses as returned by qunapplied -v, instead of just the patch names. Defaults are also disabled when completing to prevent similar issues when an option is set that changes a command's output.

#!/bin/sh

# This test tries to exercise the ssh functionality with a dummy script

cat <<EOF > dummyssh
import sys
import os

os.chdir(os.path.dirname(sys.argv[0]))
if sys.argv[1] != "user@dummy":
    sys.exit(-1)

if not os.path.exists("dummyssh"):
    sys.exit(-1)

log = open("dummylog", "ab")
log.write("Got arguments")
for i, arg in enumerate(sys.argv[1:]):
    log.write(" %d:%s" % (i+1, arg))
log.write("\n")
log.close()
r = os.system(sys.argv[2])
sys.exit(bool(r))
EOF

checknewrepo()
{
    name=$1

    if [ -d $name/.hg/store ]; then
	echo store created
    fi

    if [ -f $name/.hg/00changelog.i ]; then
	echo 00changelog.i created
    fi

    cat $name/.hg/requires
}

echo "# creating 'local'"
hg init local
checknewrepo local
echo this > local/foo
hg ci --cwd local -A -m "init" -d "1000000 0"

echo "# creating repo with format.usestore=false"
hg --config format.usestore=false init old
checknewrepo old

echo "# creating repo with format.usefncache=false"
hg --config format.usefncache=false init old2
checknewrepo old2

echo "#test failure"
hg init local

echo "# init+push to remote2"
hg init -e "python ./dummyssh" ssh://user@dummy/remote2
hg incoming -R remote2 local
hg push -R local -e "python ./dummyssh" ssh://user@dummy/remote2

echo "# clone to remote1"
hg clone -e "python ./dummyssh" local ssh://user@dummy/remote1

echo "# init to existing repo"
hg init -e "python ./dummyssh" ssh://user@dummy/remote1

echo "# clone to existing repo"
hg clone -e "python ./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" && echo "ok" || echo "failed"
done