annotate tests/test-hgweb @ 7585:075b7ef0f84d

convert/gnuarch: follow continuation-of revisions Built on top of previous patches: - continuation-of parsing - registered archives retrieval - use of fully qualified revisions This allows the converter scanning for more source revisions following the tree versions 'leaked' through the continuation-of informations. Coupled with the registered archives retrieval, this makes possible to decide to follow such a hint or stop scanning for more revisions. This also implies some changes in the retrieval of some base-0 revisions when they're continuation-of other revisions, in that case a 'replay' will work where a simple 'get' fails because the dir exists already. I found the code dealing with 'replay' quite good as it has already a fallback to 'get' in the error path.
author Edouard Gomez <ed.gomez@free.fr>
date Sun, 04 Jan 2009 02:36:48 +0100
parents fdcde929ce4f
children 6c82beaaa11a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3942
8eccfce0ab5e hgweb: simple tests
Brendan Cully <brendan@kublai.com>
parents:
diff changeset
1 #!/bin/sh
5580
f429e0e067a8 Fix style nit and add some comments to tests.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 5564
diff changeset
2 # Some tests for hgweb. Tests static files, plain files and different 404's.
3942
8eccfce0ab5e hgweb: simple tests
Brendan Cully <brendan@kublai.com>
parents:
diff changeset
3
8eccfce0ab5e hgweb: simple tests
Brendan Cully <brendan@kublai.com>
parents:
diff changeset
4 hg init test
8eccfce0ab5e hgweb: simple tests
Brendan Cully <brendan@kublai.com>
parents:
diff changeset
5 cd test
8eccfce0ab5e hgweb: simple tests
Brendan Cully <brendan@kublai.com>
parents:
diff changeset
6 mkdir da
8eccfce0ab5e hgweb: simple tests
Brendan Cully <brendan@kublai.com>
parents:
diff changeset
7 echo foo > da/foo
8eccfce0ab5e hgweb: simple tests
Brendan Cully <brendan@kublai.com>
parents:
diff changeset
8 echo foo > foo
8eccfce0ab5e hgweb: simple tests
Brendan Cully <brendan@kublai.com>
parents:
diff changeset
9 hg ci -Ambase -d '0 0'
7341
6cb522c5d56a tests: fix test-hgweb to not leak directory name
Matt Mackall <mpm@selenic.com>
parents: 6368
diff changeset
10 hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
5561
22713dce19f6 hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents: 5384
diff changeset
11 cat hg.pid >> $DAEMON_PIDS
3942
8eccfce0ab5e hgweb: simple tests
Brendan Cully <brendan@kublai.com>
parents:
diff changeset
12 echo % manifest
5384
e3a0c092b4e2 Allow tests to run in parallel.
Bryan O'Sullivan <bos@serpentine.com>
parents: 3942
diff changeset
13 ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/?style=raw')
e3a0c092b4e2 Allow tests to run in parallel.
Bryan O'Sullivan <bos@serpentine.com>
parents: 3942
diff changeset
14 ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/da?style=raw')
5561
22713dce19f6 hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents: 5384
diff changeset
15
22713dce19f6 hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents: 5384
diff changeset
16 echo % plain file
22713dce19f6 hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents: 5384
diff changeset
17 "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/foo?style=raw'
22713dce19f6 hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents: 5384
diff changeset
18
22713dce19f6 hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents: 5384
diff changeset
19 echo % should give a 404 - static file that does not exist
22713dce19f6 hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents: 5384
diff changeset
20 "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/static/bogus'
22713dce19f6 hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents: 5384
diff changeset
21
22713dce19f6 hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents: 5384
diff changeset
22 echo % should give a 404 - bad revision
22713dce19f6 hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents: 5384
diff changeset
23 "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/spam/foo?style=raw'
22713dce19f6 hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents: 5384
diff changeset
24
22713dce19f6 hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents: 5384
diff changeset
25 echo % should give a 400 - bad command
5564
b4af2dd9868a hgweb: account for Python 2.4 in one test
Bryan O'Sullivan <bos@serpentine.com>
parents: 5561
diff changeset
26 "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/foo?cmd=spam&style=raw' | sed 's/400.*/400/'
5561
22713dce19f6 hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents: 5384
diff changeset
27
22713dce19f6 hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents: 5384
diff changeset
28 echo % should give a 404 - file does not exist
22713dce19f6 hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents: 5384
diff changeset
29 "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/bork?style=raw'
6368
2c370f08c486 hgweb: better error messages
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 5924
diff changeset
30 "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/bork'
2c370f08c486 hgweb: better error messages
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 5924
diff changeset
31 "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/diff/tip/bork?style=raw'
5561
22713dce19f6 hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents: 5384
diff changeset
32
5690
1b365c5723bc server: append to logfiles
Mirko Friedenhagen <mirko-lists@friedenhagen.de>
parents: 5580
diff changeset
33 echo % stop and restart
7428
fdcde929ce4f tests: use killdaemons in hgweb tests
Mads Kiilerich <mads@kiilerich.com>
parents: 7341
diff changeset
34 "$TESTDIR/killdaemons.py"
5690
1b365c5723bc server: append to logfiles
Mirko Friedenhagen <mirko-lists@friedenhagen.de>
parents: 5580
diff changeset
35 hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log
1b365c5723bc server: append to logfiles
Mirko Friedenhagen <mirko-lists@friedenhagen.de>
parents: 5580
diff changeset
36 cat hg.pid >> $DAEMON_PIDS
1b365c5723bc server: append to logfiles
Mirko Friedenhagen <mirko-lists@friedenhagen.de>
parents: 5580
diff changeset
37 # Test the access/error files are opened in append mode
1b365c5723bc server: append to logfiles
Mirko Friedenhagen <mirko-lists@friedenhagen.de>
parents: 5580
diff changeset
38 python -c "print len(file('access.log').readlines()), 'log lines written'"
1b365c5723bc server: append to logfiles
Mirko Friedenhagen <mirko-lists@friedenhagen.de>
parents: 5580
diff changeset
39
5561
22713dce19f6 hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents: 5384
diff changeset
40 echo % static file
22713dce19f6 hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents: 5384
diff changeset
41 "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/static/style-gitweb.css'
5924
b8009718a211 better error reporting for hg serve errors in tests
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 5690
diff changeset
42
b8009718a211 better error reporting for hg serve errors in tests
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 5690
diff changeset
43 echo % errors
b8009718a211 better error reporting for hg serve errors in tests
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 5690
diff changeset
44 cat errors.log