Mercurial > hg
view tests/test-patchbomb @ 9694:8269fe2d48f6
hgweb: send proper error messages to the client
Fixes a bug in protocol which caused an exception during exception handling in
some cases on Windows. Also makes sure the server error message is correctly
propagated to the client, instead of being thrown away.
author | Sune Foldager <cryo@cyanite.org> |
---|---|
date | Mon, 02 Nov 2009 10:20:04 +0100 |
parents | d051db8e9e44 |
children | f0e99a2eac76 |
line wrap: on
line source
#!/bin/sh fixheaders() { sed -e 's/\(Message-Id:.*@\).*/\1/' \ -e 's/\(In-Reply-To:.*@\).*/\1/' \ -e 's/\(References:.*@\).*/\1/' \ -e 's/\(User-Agent:.*\)\/.*/\1/' \ -e 's/===.*/===/' } echo "[extensions]" >> $HGRCPATH echo "patchbomb=" >> $HGRCPATH COLUMNS=80; export COLUMNS hg init t cd t echo a > a hg commit -Ama -d '1 0' hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -r tip | \ fixheaders echo b > b hg commit -Amb -d '2 0' hg email --date '1970-1-1 0:2' -n -f quux -t foo -c bar -s test -r 0:tip | \ fixheaders hg email -m test.mbox -f quux -t foo -c bar -s test 0:tip cd .. hg clone -q t t2 cd t2 echo c > c hg commit -Amc -d '3 0' cat > description <<EOF a multiline description EOF echo "% test bundle and description" hg email --date '1970-1-1 0:3' -n -f quux -t foo \ -c bar -s test -r tip -b --desc description | \ fixheaders echo "% utf-8 patch" python -c 'fp = open("utf", "wb"); fp.write("h\xC3\xB6mma!\n"); fp.close();' hg commit -A -d '4 0' -m 'charset=utf-8; content-transfer-encoding: base64' echo "% no mime encoding for email --test" hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -n | \ fixheaders > mailtest echo "% md5sum of 8-bit output" $TESTDIR/md5sum.py mailtest rm mailtest echo "% mime encoded mbox (base64)" hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -m mbox cat mbox | fixheaders rm mbox echo "% mime encoded mbox (quoted-printable)" python -c 'fp = open("qp", "wb"); fp.write("%s\nfoo\n\nbar\n" % \ ("x" * 1024)); fp.close();' hg commit -A -d '4 0' -m \ 'charset=utf-8; content-transfer-encoding: quoted-printable' echo "% no mime encoding for email --test" hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -n | \ fixheaders > mailtest echo "% md5sum of qp output" $TESTDIR/md5sum.py mailtest rm mailtest echo "% mime encoded mbox (quoted-printable)" hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -m mbox cat mbox | fixheaders rm mbox echo "% iso-8859-1 patch" python -c 'fp = open("isolatin", "wb"); fp.write("h\xF6mma!\n"); fp.close();' hg commit -A -d '5 0' -m 'charset=us-ascii; content-transfer-encoding: 8bit' echo "% fake ascii mbox" hg email --date '1970-1-1 0:5' -f quux -t foo -c bar -r tip -m mbox fixheaders < mbox > mboxfix echo "% md5sum of 8-bit output" $TESTDIR/md5sum.py mboxfix echo "% test diffstat for single patch" hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -d -y -r 2 | \ fixheaders echo "% test diffstat for multiple patches" hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -d -y \ -r 0:1 | fixheaders echo "% test inline for single patch" hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i -r 2 | \ fixheaders echo "% test inline for single patch (quoted-printable)" hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i -r 4 | \ fixheaders echo "% test inline for multiple patches" hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i \ -r 0:1 -r 4 | fixheaders echo "% test attach for single patch" hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -a -r 2 | \ fixheaders echo "% test attach for single patch (quoted-printable)" hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -a -r 4 | \ fixheaders echo "% test attach for multiple patches" hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -a \ -r 0:1 -r 4 | fixheaders echo "% test intro for single patch" hg email --date '1970-1-1 0:1' -n --intro -f quux -t foo -c bar -s test \ -r 2 | fixheaders echo "% test intro for multiple patches" hg email --date '1970-1-1 0:1' -n --intro -f quux -t foo -c bar -s test \ -r 0:1 | fixheaders echo "% tagging csets" hg tag -r0 zero zero.foo hg tag -r1 one one.patch hg tag -r2 two two.diff echo "% test inline for single named patch" hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i -r 2 | \ fixheaders echo "% test inline for multiple named/unnamed patches" hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i -r 0:1 | \ fixheaders echo "% test inreplyto" hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar --in-reply-to baz \ -r tip | fixheaders hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar --in-reply-to baz \ -r 0:1 | fixheaders hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar --in-reply-to baz \ -s test -r 0:1 | fixheaders echo "% test single flag for single patch" hg email --date '1970-1-1 0:1' -n --flag fooFlag -f quux -t foo -c bar -s test \ -r 2 | fixheaders echo "% test single flag for multiple patches" hg email --date '1970-1-1 0:1' -n --flag fooFlag -f quux -t foo -c bar -s test \ -r 0:1 | fixheaders echo "% test mutiple flags for single patch" hg email --date '1970-1-1 0:1' -n --flag fooFlag --flag barFlag -f quux -t foo \ -c bar -s test -r 2 | fixheaders echo "% test multiple flags for multiple patches" hg email --date '1970-1-1 0:1' -n --flag fooFlag --flag barFlag -f quux -t foo \ -c bar -s test -r 0:1 | fixheaders