view tests/test-hgwebdir @ 7493:518afef5e350

Fix Bugzilla integration to work with new Bugzilla 3.2. Bugzilla 3.2 changes the type of all MySQL tables it uses from MyISAM to InnoDB. MyISAM does not support transactions, and performs an implied commit after each update. InnoDB does support transactions, and so exposes a bug where changes to the Bugzilla database were not committed, and so with 3.2 are lost when the database connection closes.
author Jim Hague <jim.hague@acm.org>
date Tue, 09 Dec 2008 09:58:13 +0000
parents 79d1bb737c16
children 85dc88630beb
line wrap: on
line source

#!/bin/sh
# Tests some basic hgwebdir functionality. Tests setting up paths and
# collection, different forms of 404s and the subdirectory support.

mkdir webdir
cd webdir

hg init a
echo a > a/a
hg --cwd a ci -Ama -d'1 0'

hg init b
echo b > b/b
hg --cwd b ci -Amb -d'2 0'

hg init c
echo c > c/c
hg --cwd c ci -Amc -d'3 0'

cd b
hg init d
echo d > d/d
hg --cwd d ci -Amd
cd ..

root=`pwd`
cd ..

cat > paths.conf <<EOF
[paths]
a=$root/a
b=$root/b
EOF

hg serve -p $HGPORT -d --pid-file=hg.pid --webdir-conf paths.conf \
    -A access-paths.log -E error-paths-1.log
cat hg.pid >> $DAEMON_PIDS

echo % should give a 404 - file does not exist
"$TESTDIR/get-with-headers.py" localhost:$HGPORT '/a/file/tip/bork?style=raw'

echo % should succeed
"$TESTDIR/get-with-headers.py" localhost:$HGPORT '/?style=raw'
"$TESTDIR/get-with-headers.py" localhost:$HGPORT '/a/file/tip/a?style=raw'
"$TESTDIR/get-with-headers.py" localhost:$HGPORT '/b/file/tip/b?style=raw'

echo % should give a 404 - repo is not published
"$TESTDIR/get-with-headers.py" localhost:$HGPORT '/c/file/tip/c?style=raw'

cat > paths.conf <<EOF
[paths]
t/a/=$root/a
b=$root/b
coll=$root/*
EOF

hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
    -A access-paths.log -E error-paths-2.log
cat hg.pid >> $DAEMON_PIDS

echo % should succeed, slashy names
"$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/?style=raw'
"$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t?style=raw'
"$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/?style=raw'
"$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/a?style=atom' \
	| sed "s/http:\/\/[^/]*\//http:\/\/127.0.0.1\//"
"$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/a/?style=atom' \
	| sed "s/http:\/\/[^/]*\//http:\/\/127.0.0.1\//"
"$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/a/file/tip/a?style=raw'
# Test [paths] '*' extension
"$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/coll/?style=raw'
"$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/coll/a/file/tip/a?style=raw'

cat > collections.conf <<EOF
[collections]
$root=$root
EOF

hg serve -p $HGPORT2 -d --pid-file=hg.pid --webdir-conf collections.conf \
    -A access-collections.log -E error-collections.log
cat hg.pid >> $DAEMON_PIDS

echo % should succeed
"$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/?style=raw'
"$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/a/file/tip/a?style=raw'
"$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/b/file/tip/b?style=raw'
"$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/c/file/tip/c?style=raw'
"$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/b/d/rev/tip/?style=raw'

echo % paths errors 1
cat error-paths-1.log
echo % paths errors 2
cat error-paths-2.log
echo % collections errors
cat error-collections.log