sapling/tests/test-static-http
Nicolas Dumazet 09283d5a0c static-http: mimic more closely localrepo (issue2164: allow clone -r )
* httprangereader: name, __iter__ and close are needed to mimic file object
* static-http opener:
    - disallow write/append modes
    - add (unused) atomictemp parameter
* static-http repo:
    - root attribute is needed for localrepo.dirstate()
    - _branch* attributes are required for commitctx and branchmap calls
* tags: force repo.opener.__iter__ call earlier to force httprangereader
  to try to read the cache early, to avoid raising IOError later.
2010-04-26 20:13:14 +09:00

94 lines
2.1 KiB
Bash
Executable File

#!/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,:$HGPORT/,:\$HGPORT/,"
cd local
hg verify
cat bar
cd ../remote
echo baz > quux
hg commit -A -mtest2 -d '100000000 0'
# check for HTTP opener failures when cachefile does not exist
rm .hg/*.cache
cd ../local
echo '[hooks]' >> .hg/hgrc
echo 'changegroup = python ../printenv.py changegroup' >> .hg/hgrc
hg pull | sed -e "s,:$HGPORT/,:\$HGPORT/,"
echo '% trying to push'
hg update
echo more foo >> bar
hg commit -m"test" -d "100000000 0"
hg push | sed -e "s,:$HGPORT/,:\$HGPORT/,"
echo '% trying clone -r'
cd ..
hg clone -r donotexist static-http://localhost:$HGPORT/remote local0 | sed -e "s,:$HGPORT/,:\$HGPORT/,"
hg clone -r 0 static-http://localhost:$HGPORT/remote local0 | sed -e "s,:$HGPORT/,:\$HGPORT/,"
echo '% test with "/" URI (issue 747)'
hg init
echo a > a
hg add a
hg ci -ma
hg clone static-http://localhost:$HGPORT/ local2 | sed -e "s,:$HGPORT/,:\$HGPORT/,"
cd local2
hg verify
cat a
hg paths | sed -e "s,:$HGPORT/,:\$HGPORT/,"
echo '% test with empty repo (issue965)'
cd ..
hg init remotempty
hg clone static-http://localhost:$HGPORT/remotempty local3 | sed -e "s,:$HGPORT/,:\$HGPORT/,"
cd local3
hg verify
hg paths | sed -e "s,:$HGPORT/,:\$HGPORT/,"
echo '% test with non-repo'
cd ..
mkdir notarepo
hg clone static-http://localhost:$HGPORT/notarepo local3 2>&1 | sed -e "s,:$HGPORT/,:\$HGPORT/,"
kill $!