test-archive
109 lines
| 2.9 KiB
| text/plain
|
TextLexer
/ tests / test-archive
Thomas Arendsen Hein
|
r1166 | #!/bin/sh | ||
mkdir test | ||||
cd test | ||||
hg init | ||||
echo foo>foo | ||||
Brendan Cully
|
r4653 | hg commit -Am 1 -d '1 0' | ||
Thomas Arendsen Hein
|
r1166 | echo bar>bar | ||
Brendan Cully
|
r4653 | hg commit -Am 2 -d '2 0' | ||
Thomas Arendsen Hein
|
r1166 | mkdir baz | ||
echo bletch>baz/bletch | ||||
Brendan Cully
|
r4653 | hg commit -Am 3 -d '1000000000 0' | ||
mpm@selenic.com
|
r1260 | echo "[web]" >> .hg/hgrc | ||
Thomas Arendsen Hein
|
r1166 | echo "name = test-archive" >> .hg/hgrc | ||
Rocco Rutte
|
r7029 | cp .hg/hgrc .hg/hgrc-base | ||
# check http return codes | ||||
test_archtype() { | ||||
echo "allow_archive = $1" >> .hg/hgrc | ||||
hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log | ||||
cat hg.pid >> $DAEMON_PIDS | ||||
echo % $1 allowed should give 200 | ||||
"$TESTDIR/get-with-headers.py" localhost:$HGPORT "/archive/tip.$2" | head -n 1 | ||||
echo % $3 and $4 disallowed should both give 403 | ||||
"$TESTDIR/get-with-headers.py" localhost:$HGPORT "/archive/tip.$3" | head -n 1 | ||||
"$TESTDIR/get-with-headers.py" localhost:$HGPORT "/archive/tip.$4" | head -n 1 | ||||
kill `cat hg.pid` | ||||
cat errors.log | ||||
cp .hg/hgrc-base .hg/hgrc | ||||
} | ||||
echo | ||||
test_archtype gz tar.gz tar.bz2 zip | ||||
test_archtype bz2 tar.bz2 zip tar.gz | ||||
test_archtype zip zip tar.gz tar.bz2 | ||||
echo "allow_archive = gz bz2 zip" >> .hg/hgrc | ||||
Dirkjan Ochtman
|
r5924 | hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log | ||
Vadim Gelfer
|
r2571 | cat hg.pid >> $DAEMON_PIDS | ||
Thomas Arendsen Hein
|
r1166 | |||
Rocco Rutte
|
r7029 | echo % invalid arch type should give 404 | ||
"$TESTDIR/get-with-headers.py" localhost:$HGPORT "/archive/tip.invalid" | head -n 1 | ||||
echo | ||||
Thomas Arendsen Hein
|
r1166 | TIP=`hg id -v | cut -f1 -d' '` | ||
QTIP=`hg id -q` | ||||
cat > getarchive.py <<EOF | ||||
Bryan O'Sullivan
|
r5384 | import os, sys, urllib2 | ||
Thomas Arendsen Hein
|
r1166 | node, archive = sys.argv[1:] | ||
Bryan O'Sullivan
|
r5384 | f = urllib2.urlopen('http://127.0.0.1:%s/?cmd=archive;node=%s;type=%s' | ||
% (os.environ['HGPORT'], node, archive)) | ||||
Thomas Arendsen Hein
|
r1166 | sys.stdout.write(f.read()) | ||
EOF | ||||
TK Soh
|
r2187 | http_proxy= python getarchive.py "$TIP" gz | gunzip | tar tf - | sed "s/$QTIP/TIP/" | ||
http_proxy= python getarchive.py "$TIP" bz2 | bunzip2 | tar tf - | sed "s/$QTIP/TIP/" | ||||
Thomas Arendsen Hein
|
r1166 | http_proxy= python getarchive.py "$TIP" zip > archive.zip | ||
unzip -t archive.zip | sed "s/$QTIP/TIP/" | ||||
Vadim Gelfer
|
r2114 | hg archive -t tar test.tar | ||
tar tf test.tar | ||||
hg archive -t tbz2 -X baz test.tar.bz2 | ||||
bunzip2 -dc test.tar.bz2 | tar tf - | ||||
hg archive -t tgz -p %b-%h test-%h.tar.gz | ||||
gzip -dc test-$QTIP.tar.gz | tar tf - | sed "s/$QTIP/TIP/" | ||||
Patrick Mezard
|
r4805 | cat > md5comp.py <<EOF | ||
Dirkjan Ochtman
|
r6496 | from mercurial.util import md5 | ||
import sys | ||||
Patrick Mezard
|
r4805 | f1, f2 = sys.argv[1:3] | ||
Dirkjan Ochtman
|
r6496 | h1 = md5(file(f1, 'rb').read()).hexdigest() | ||
h2 = md5(file(f2, 'rb').read()).hexdigest() | ||||
Patrick Mezard
|
r4805 | print h1 == h2 or "md5 differ: " + repr((h1, h2)) | ||
Brendan Cully
|
r4653 | EOF | ||
Patrick Mezard
|
r4805 | # archive name is stored in the archive, so create similar | ||
# archives and rename them afterwards. | ||||
Brendan Cully
|
r4653 | hg archive -t tgz tip.tar.gz | ||
Patrick Mezard
|
r4805 | mv tip.tar.gz tip1.tar.gz | ||
Brendan Cully
|
r4653 | sleep 1 | ||
hg archive -t tgz tip.tar.gz | ||||
Patrick Mezard
|
r4805 | mv tip.tar.gz tip2.tar.gz | ||
python md5comp.py tip1.tar.gz tip2.tar.gz | ||||
Brendan Cully
|
r4653 | |||
Vadim Gelfer
|
r2114 | hg archive -t zip -p /illegal test.zip | ||
hg archive -t zip -p very/../bad test.zip | ||||
Thomas Arendsen Hein
|
r6183 | hg archive --config ui.archivemeta=false -t zip -r 2 test.zip | ||
Vadim Gelfer
|
r2114 | unzip -t test.zip | ||
Vadim Gelfer
|
r2476 | |||
hg archive -t tar - | tar tf - | sed "s/$QTIP/TIP/" | ||||
Brendan Cully
|
r4863 | |||
Alexis S. L. Carvalho
|
r4836 | hg archive -r 0 -t tar rev-%r.tar | ||
if [ -f rev-0.tar ]; then | ||||
echo 'rev-0.tar created' | ||||
fi | ||||
Brendan Cully
|
r5061 | |||
Dirkjan Ochtman
|
r6019 | hg archive -t bogus test.bogus | ||
Dirkjan Ochtman
|
r5924 | echo % server errors | ||
cat errors.log | ||||
Brendan Cully
|
r5061 | echo '% empty repo' | ||
hg init ../empty | ||||
cd ../empty | ||||
hg archive ../test-empty | ||||
Dirkjan Ochtman
|
r5924 | |||
Brendan Cully
|
r5061 | exit 0 | ||