http client: support persistent connections.
uses keepalive module from urlgrabber package. tested against "hg serve",
cgi server, and through http proxy. used ethereal to verify that only
one tcp connection used during entire "hg pull" sequence.
if server supports keepalive, this makes latency of "hg pull" much lower.
A simple testing framework
To run the tests, do:
cd tests/
python run-tests.py
This finds all scripts in the test directory named test-* and executes
them. The scripts can be either shell scripts or Python. Each test is
run in a temporary directory that is removed when the test is complete.
A test-<x> succeeds if the script returns success and its output
matches test-<x>.out. If the new output doesn't match, it is stored in
test-<x>.err.
There are some tricky points here that you should be aware of when
writing tests:
- hg commit and hg merge want user interaction
for commit use -m "text"
for hg merge, set HGMERGE to something noninteractive (like true or merge)
- changeset hashes will change based on user and date which make
things like hg history output change
use commit -m "test" -u test -d "1000000 0"
- diff will show the current time
use hg diff | sed "s/\(\(---\|+++\) [a-zA-Z0-9_/.-]*\).*/\1/" to strip
dates