Mercurial > hg
view tests/test-archive @ 11628:68a30daead3f stable
inotify: make inotifydirstate.status() returns a tuple of lists.
This makes it consistent with dirstate.status(), which is important if
there are other extensions messing with the output of status(). Those
extensions can safely assume that dirstate.status() returns a tuple of
lists, because its docstring says it does. But
inotifystatus.dirstate() returns a list of lists, which can break
those other extensions.
author | Greg Ward <greg-hg@gerg.ca> |
---|---|
date | Tue, 20 Jul 2010 14:00:47 -0400 |
parents | 9ea7238ad935 |
children | 381f131220ad |
line wrap: on
line source
#!/bin/sh mkdir test cd test hg init echo foo>foo hg commit -Am 1 -d '1 0' echo bar>bar hg commit -Am 2 -d '2 0' mkdir baz echo bletch>baz/bletch hg commit -Am 3 -d '1000000000 0' echo "[web]" >> .hg/hgrc echo "name = test-archive" >> .hg/hgrc 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 "$TESTDIR/killdaemons.py" 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 hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log cat hg.pid >> $DAEMON_PIDS echo % invalid arch type should give 404 "$TESTDIR/get-with-headers.py" localhost:$HGPORT "/archive/tip.invalid" | head -n 1 echo TIP=`hg id -v | cut -f1 -d' '` QTIP=`hg id -q` cat > getarchive.py <<EOF import os, sys, urllib2 try: # Set stdout to binary mode for win32 platforms import msvcrt msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) except ImportError: pass node, archive = sys.argv[1:] f = urllib2.urlopen('http://127.0.0.1:%s/?cmd=archive;node=%s;type=%s' % (os.environ['HGPORT'], node, archive)) sys.stdout.write(f.read()) EOF python getarchive.py "$TIP" gz | gunzip | tar tf - 2>/dev/null | sed "s/$QTIP/TIP/" python getarchive.py "$TIP" bz2 | bunzip2 | tar tf - 2>/dev/null | sed "s/$QTIP/TIP/" python getarchive.py "$TIP" zip > archive.zip unzip -t archive.zip | sed "s/$QTIP/TIP/" "$TESTDIR/killdaemons.py" 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 - 2>/dev/null hg archive -t tgz -p %b-%h test-%h.tar.gz gzip -dc test-$QTIP.tar.gz | tar tf - 2>/dev/null | sed "s/$QTIP/TIP/" hg archive autodetected_test.tar tar tf autodetected_test.tar # The '-t' should override autodetection hg archive -t tar autodetect_override_test.zip tar tf autodetect_override_test.zip for ext in tar tar.gz tgz tar.bz2 tbz2 zip; do hg archive auto_test.$ext if [ -d auto_test.$ext ]; then echo "extension $ext was not autodetected." fi done cat > md5comp.py <<EOF try: from hashlib import md5 except ImportError: from md5 import md5 import sys f1, f2 = sys.argv[1:3] h1 = md5(file(f1, 'rb').read()).hexdigest() h2 = md5(file(f2, 'rb').read()).hexdigest() print h1 == h2 or "md5 differ: " + repr((h1, h2)) EOF # archive name is stored in the archive, so create similar # archives and rename them afterwards. hg archive -t tgz tip.tar.gz mv tip.tar.gz tip1.tar.gz sleep 1 hg archive -t tgz tip.tar.gz mv tip.tar.gz tip2.tar.gz python md5comp.py tip1.tar.gz tip2.tar.gz hg archive -t zip -p /illegal test.zip hg archive -t zip -p very/../bad test.zip hg archive --config ui.archivemeta=false -t zip -r 2 test.zip unzip -t test.zip hg archive -t tar - | tar tf - 2>/dev/null | sed "s/$QTIP/TIP/" hg archive -r 0 -t tar rev-%r.tar if [ -f rev-0.tar ]; then echo 'rev-0.tar created' fi echo '% test .hg_archival.txt' hg archive ../test-tags cat ../test-tags/.hg_archival.txt hg tag -r 2 mytag hg tag -r 2 anothertag hg archive -r 2 ../test-lasttag cat ../test-lasttag/.hg_archival.txt hg archive -t bogus test.bogus echo % server errors cat errors.log echo '% empty repo' hg init ../empty cd ../empty hg archive ../test-empty exit 0