tests/test-static-http
author Jim Hague <jim.hague@acm.org>
Wed, 06 Jan 2010 18:03:33 +0000
branchstable
changeset 10253 b190a8125b43
parent 10154 d4a62b6d4a58
child 10398 ace3cf2bc991
permissions -rwxr-xr-x
Work around AIX shell builtin printf not handling \NNN. On AIX, ksh builtin printf does not understand \NNN. Some tests use this to generate test data, and so fail on AIX. Rework these tests to use python to generate the correct characters. This fixes the tests on AIX and should be more generally portable.

#!/bin/sh

cp "$TESTDIR"/printenv.py .

hg clone http://localhost:$HGPORT/ copy
echo $?
test -d copy || echo copy: No such file or directory

# This server doesn't do range requests so it's basically only good for
# one pull
cat > dumb.py <<EOF
import BaseHTTPServer, SimpleHTTPServer, os, signal

def run(server_class=BaseHTTPServer.HTTPServer,
        handler_class=SimpleHTTPServer.SimpleHTTPRequestHandler):
    server_address = ('localhost', int(os.environ['HGPORT']))
    httpd = server_class(server_address, handler_class)
    httpd.serve_forever()

signal.signal(signal.SIGTERM, lambda x: sys.exit(0))
run()
EOF

python dumb.py 2>/dev/null &
echo $! >> $DAEMON_PIDS

mkdir remote
cd remote
hg init
echo foo > bar
hg add bar
hg commit -m"test" -d "1000000 0"
hg tip

cd ..

hg clone static-http://localhost:$HGPORT/remote local | sed -e 's,:[0-9][0-9]*/,/,'

cd local
hg verify
cat bar

cd ../remote
echo baz > quux
hg commit -A -mtest2 -d '100000000 0'

cd ../local
echo '[hooks]' >> .hg/hgrc
echo 'changegroup = python ../printenv.py changegroup' >> .hg/hgrc
hg pull | sed -e 's,:[0-9][0-9]*/,/,'

echo '% trying to push'
hg update
echo more foo >> bar
hg commit -m"test" -d "100000000 0"
hg push | sed -e 's,:[0-9][0-9]*/,/,'

echo '% test with "/" URI (issue 747)'
cd ..
hg init
echo a > a
hg add a
hg ci -ma

hg clone static-http://localhost:$HGPORT/ local2 | sed -e 's,:[0-9][0-9]*/,/,'

cd local2
hg verify
cat a
hg paths | sed -e 's,:[0-9][0-9]*/,/,'

echo '% test with empty repo (issue965)'
cd ..
hg init remotempty

hg clone static-http://localhost:$HGPORT/remotempty local3 | sed -e 's,:[0-9][0-9]*/,/,'

cd local3
hg verify
hg paths | sed -e 's,:[0-9][0-9]*/,/,'

echo '% test with non-repo'
cd ..
mkdir notarepo
hg clone static-http://localhost:$HGPORT/notarepo local3 2>&1 | sed -e 's,:[0-9][0-9]*/,/,'

kill $!