tests/test-http-proxy
author Vadim Gelfer <vadim.gelfer@gmail.com>
Fri, 14 Jul 2006 11:17:22 -0700
changeset 2612 ffb895f16925
parent 2571 83cfd95eafb5
child 2613 479e26afa10f
permissions -rwxr-xr-x
add support for streaming clone. existing clone code uses pull to get changes from remote repo. is very slow, uses lots of memory and cpu. new clone code has server write file data straight to client, client writes file data straight to disk. memory and cpu used are very low, clone is much faster over lan. new client can still clone with pull, can still clone from older servers. new server can still serve older clients.

#!/bin/sh

hg init a
cd a
echo a > a
hg ci -Ama -d '1123456789 0'
hg serve -p 20059 -d --pid-file=hg.pid
cat hg.pid >> $DAEMON_PIDS

cd ..
("$TESTDIR/tinyproxy.py" 20060 localhost >proxy.log 2>&1 </dev/null &
echo $! > proxy.pid)
cat proxy.pid >> $DAEMON_PIDS
sleep 2

echo %% url for proxy, stream
http_proxy=http://localhost:20060/ hg --config http_proxy.always=True clone http://localhost:20059/ b | \
  sed -e 's/[0-9][0-9.]*/XXX/g'
cd b
hg verify
cd ..

echo %% url for proxy, pull
http_proxy=http://localhost:20060/ hg --config http_proxy.always=True clone --pull http://localhost:20059/ b-pull
cd b-pull
hg verify
cd ..

echo %% host:port for proxy
http_proxy=localhost:20060 hg clone --pull --config http_proxy.always=True http://localhost:20059/ c

echo %% proxy url with user name and password
http_proxy=http://user:passwd@localhost:20060 hg clone --pull --config http_proxy.always=True http://localhost:20059/ d

echo %% url with user name and password
http_proxy=http://user:passwd@localhost:20060 hg clone --pull --config http_proxy.always=True http://user:passwd@localhost:20059/ e

echo %% bad host:port for proxy
http_proxy=localhost:20061 hg clone --config http_proxy.always=True http://localhost:20059/ f

exit 0